




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
實用標準文案課程設計說明書設計名稱: 計算機操作系統(tǒng)課程設計 題 目: 操作系統(tǒng)命令接口設計 學生姓名: 張協(xié)鎏 專 業(yè): 計算機科學與技術 班 級: 13計算機科學與技術2班 學 號: 2013314209 指導教師: 任朝暉、曾凡智、黃營、周燕 日 期: 2015 年 9 月 20 日 計算機科學與技術 專業(yè) 2013 年級 2 班 張協(xié)鎏 一、 設計題目 操作系統(tǒng)命令接口設計二、 目的和要求(1)本設計的目的是通過設計一些簡單的操作系統(tǒng)的命令接口,使學生掌握操作系統(tǒng)接口的設計方法。(2)要求學生在熟悉操作系統(tǒng)的命令接口及程序接口的基礎上,利用C語言設計簡單的命令接口。命令接口基于DOS的命令行接口。三、 設計內(nèi)容利用C語言、DOS中斷中21H與屏幕顯示相關的中斷調(diào)用完成設計,具體包括:1. 命令解釋器2. 列目錄命令3. 顯示時間命令4. 顯示日期命令5. 回顯字符串命令6. 創(chuàng)建目錄命令7. 刪除目錄命令8. 更改路徑命令9. 顯示當前工作目錄命令10. 刪除文件命令11. 打印文本命令12. 文件重新命名13. 顯示文本命令14. 顯示版本命令15. 顯示目錄結(jié)構(gòu)命令16. 清除當前顯示內(nèi)容命令上述內(nèi)容中,所有命令通過命令解釋器能夠執(zhí)行,即啟動命令解釋器以后,輸入相應命令,按照輸入指令執(zhí)行相應功能,并在屏幕上顯示相應結(jié)果。四、 進度安排依照教學計劃,課程設計時間為:2周。1. 要求講解、資料查找、系統(tǒng)分析,概要設計 (2天)2. 系統(tǒng)詳細設計、功能設計(2天)3. 算法實現(xiàn)、編程調(diào)試(5天)4. 功能演示、資料整理、課程設計說明書編寫。(1天)五、 完成后應上交的資料課程設計的總結(jié)報告,主要包括以下內(nèi)容:1. 課程設計的題目、系統(tǒng)的總功能和各子模塊的功能;2. 源程序代碼;3. 課程設計中遇到的主要問題和解決方法;4. 設計中存在的不足及改進的設想;5. 本次課程設計的感想和心得體會。六、 總評成績指導教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日操作系統(tǒng)命令接口設計一、概念原理中斷:指當出現(xiàn)需要時,CPU暫時停止當前程序的執(zhí)行轉(zhuǎn)而執(zhí)行處理新情況的程序和執(zhí)行過程。即在程序運行過程中,系統(tǒng)出現(xiàn)了一個必須由CPU立即處理的情況,此時,CPU暫時中止程序的執(zhí)行轉(zhuǎn)而處理這個新的情況的過程就叫做中斷。中斷是一種發(fā)生了一個外部的事件時調(diào)用相應的處理程序的過程,通常,程序中斷是由外部設備通過CPU的中斷請求線向CPU提出的。在一定條件下,CPU響應中斷后,暫停源程序的執(zhí)行,轉(zhuǎn)至為外設服務的中斷處理程序。中斷處理程序可以按照所要完成的任務編寫與過程類似的程序段。在程序段最后執(zhí)行一條中斷返回指令返回主程序,繼續(xù)按原順序執(zhí)行。操作系統(tǒng)命令接口:通過在用戶和操作系統(tǒng)之間提供高級通信來控制程序運行,用戶通過輸入設備發(fā)出一系列命令告訴操作系統(tǒng)執(zhí)行所需功能,它包括了鍵盤操作命令和作業(yè)控制命令,稱為作業(yè)一級的用戶接口。命令接口的兩種最普遍和主要的方式是直接命令方式(命令行)和間接命令方式(命令文件)。二、程序設計實現(xiàn)過程程序通過選擇開關switch.case將用dos,bios調(diào)用編寫的函數(shù)組合起來供用戶做出選擇。在對應處理用戶的選擇編寫的函數(shù)中,主要的核心是dos功能中斷調(diào)用函數(shù)的編寫,其中包括中斷類型號,中斷功能調(diào)用號等的設置,以及響應用戶選擇后中斷服務程序的編寫。1、程序主要函數(shù)void menu():用戶功能選擇菜單;void time():顯示時間功能,輸出當前電腦設置時間,能精確到毫秒;void day():顯示日期功能,輸出當前電腦設置日期,輸出格式為2015.9.20,week:0;void dos():顯示電腦DOS版本號功能,輸出DOS版本號,格式為5.0.16.0.0;void DeleteFile(char filename80):刪除文件功能,調(diào)用DOS中斷21H的41H的刪除文件命令;void Createfile(char filename80):創(chuàng)建目錄功能,調(diào)用DOS中斷21H的39H的創(chuàng)建目錄命令;void Deletefile(char filename80):刪除目錄功能,調(diào)用DOS中斷21H的3AH的刪除目錄命令;void file(char filename180,char filename280):文件重新命名功能,調(diào)用DOS中斷21H的56H的文件改名命名命令;void showlist():顯示當前工作目錄功能,調(diào)用DOS中斷21H的47H的顯示當前工作目錄命令;void rewords():鍵盤輸入字符并回顯字符功能,調(diào)用DOS中斷21H的09回顯字符串的命令;clrscr():清除當前顯示內(nèi)容功能。2、程序調(diào)試運行結(jié)果分析開始運行功能選擇界面輸入功能號1顯示當前系統(tǒng)時間,輸入功能號2輸出當前系統(tǒng)日期,輸入功能號3輸出當前系統(tǒng)DOS版本,輸入功能號5創(chuàng)建目錄,工作目錄成功創(chuàng)建文件夾FILE輸入功能號7文件改名,改名為NEWFILE,工作目錄成功改名NEWFILE,輸入功能號6刪除NEWFILE文件夾成功,運行調(diào)試結(jié)果滿足實驗要求,退出程序,完成設計內(nèi)容。三、程序設計總結(jié)體會通過連續(xù)兩個星期的上機編程,我體會了從事C語言課程設計工作需要特別謹慎認真地態(tài)度和作風,一點都不能馬虎。每個細微的細節(jié)都必須十分注意,如果不認真思考,就會出現(xiàn)或大或小的錯誤。如果把早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時會推倒很多前面做的工作。有時候,我自己覺得我寫的程序非常正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的不足,所以進展的速度非常的緩慢,往往幾天的時間沒有一點進展。這時候,我一般是先自己通過書本,手冊和資料找解決辦法,實在沒轍才向老師同學請教。在開始編寫程序的時候,我還不清楚DOS中斷的知識,剛開始就在上網(wǎng)百度學習有關程序接口和中斷調(diào)用相關知識,慢慢的開始知道怎么去調(diào)用DOS21H的功能號?;仡櫞舜握n程設計,至今我仍然很多感想,的確,自從拿到題目到完成整個編程,從理論到實踐,這些日子里,可以學到很多很多的東西,同時不僅可以鞏固以前所學的知識,而且學到了很多在書本上所沒學到的知識,通過在這次課程設計使我懂得了理論知識與實踐動手能力組合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。通過一段時間的課程設計,我明白了程序一定要要親手做過,不管它是否有結(jié)果。你要學的是知識,是解決問題的方法和思想,要端正學習態(tài)度,一時的成敗不足以論英雄,每一次突破都是一種收獲,就是在這樣的過程中我們才能不斷提高。在從開始接到課程設計,再到報告的完成,每走一步都滲透著努力和汗水。在收獲知識的同時收獲快樂。 對給過我?guī)椭乃型瑢W和各位指導老師再次表示衷心的感謝!四、源代碼#include#include#include#include#include#define INTER 0x21void menu()printf(0.Exitn1.Display currrent timen2.Display currrent dayn);printf(3.Display currrent Mos-dosn4.Deletefilen5.Createcontentsn); printf(6.Deletecontentsn7.Filenamen8.Display currrent listn);printf(9.Echo stringn10.ReadingFilen11.Clear screenn);void time()union REGS inregs,outregs;/定義中斷信息結(jié)構(gòu)體struct SREGS segregs;inregs.h.ah=0x2C;int86x(INTER,&inregs,&outregs,&segregs);printf(Now the time is:%d:%d,%d:%dn,outregs.h.ch,outregs.h.cl,outregs.h.dh,outregs.h.dl);getchar();void day() union REGS inregs,outregs;/定義中斷信息結(jié)構(gòu)體struct SREGS segregs;inregs.h.ah=0x2a;int86x(INTER,&inregs,&outregs,&segregs);printf(Now the day is:%d,%d,%d,Week:%dn,outregs.x.cx,outregs.h.dh,outregs.h.dl,outregs.h.al);getchar();void dos() union REGS inregs,outregs;/定義中斷信息結(jié)構(gòu)體struct SREGS segregs;inregs.h.ah=0x30;int86x(INTER,&inregs,&outregs,&segregs);printf(The DOS version of this machine is:%d,%d,%d,%d:%dn,outregs.h.al,outregs.h.ah,outregs.h.bh,outregs.h.ah,outregs.x.cx);getchar();void DeleteFile(char filename80)union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x41;/DOS中斷號41是刪除文件inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);int86x(INTER,&inregs,&outregs,&segregs); if(02=outregs.x.ax)/02表示文件未找到printf(nFILE %s is not exist!n,filename);printf(nThe File: %s has been delete successfullyn,filename);void Createfile(char filename80) union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x39;inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);int86x(INTER,&inregs,&outregs,&segregs);if(02=outregs.x.ax)/02表示文件為找到printf(nFILE %s is not exist!n,filename);printf(success!n);void Deletefile(char filename80) union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x3A;inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);int86x(INTER,&inregs,&outregs,&segregs);if(02=outregs.x.ax)/02表示文件為找到printf(nFILE %s is not exist!n,filename);printf(success!n);void file(char filename180,char filename280) union REGS inregs,outregs;struct SREGS segregs;inregs.h.ah=0x56;/DOS中斷號56是重命名文件inregs.x.dx=FP_OFF(filename1);segregs.ds=FP_SEG(filename1);inregs.x.di=FP_OFF(filename2);segregs.es=FP_SEG(filename2);int86x(INTER,&inregs,&outregs,&segregs);if(outregs.x.ax=02)printf(nFILE %s is not exist!n,filename1);printf(success!n);void showlist()char list80;union REGS reg;struct SREGS segreg;reg.h.ah = 0x47;reg.h.dl = 0;reg.x.si = FP_OFF(list);segreg.ds = FP_SEG(list);intdosx(®, ®, &segreg);printf(The current working directory is:%sn, list);void rewords()union REGS reg,reg1;struct SREGS sreg;char word200;for(int i=0;i200;i+)wordi=$;scanf(%s,&word);reg1.x.dx = FP_OFF(word);sreg.ds = FP_SEG(word);reg1.h.ah=0x09;int86x(INTER,®1,®1,&sreg);printf(n);void ReadFromFile(char filename80)union REGS inregs,outregs;struct SREGS segregs;int result;char ReadContents20;inregs.h.ah=0x3D;inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);inregs.h.al=2;intdosx(&inregs,&outregs,&segregs);result = outregs.x.ax;if(2=result)printf(nCan not read contents from file: %s ! The file may not existn,filename);elseinregs.x.bx=result;inregs.h.ah=0x3F;inregs.x.dx=FP_OFF(ReadContents);segregs.ds=FP_SEG(ReadContents);inregs.x.cx=20;intdosx(&inregs,&outregs,&segregs);printf(%s file byte number: %dn,filename,outregs.x.ax);printf(%s contents is:,filename);for(int i=0;ioutregs.x.ax;i+)printf(%c,ReadContentsi); printf(n);int main()char DeleteFileName80;char ReadingFileName80;char file180,file280;int a;domenu();scanf(%d,&a);switch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《 離騷節(jié)選 》課件
- 湖南省永州市新田縣2024屆九年級上學期期末學業(yè)質(zhì)量監(jiān)測數(shù)學試卷含解析
- 中心醫(yī)院“患者就醫(yī)體驗改善提升年”活動上半年開展情況
- 三國司法考試題及答案
- 員工調(diào)休申請單
- excel函數(shù)考試題及答案1店
- 2025年黑龍江省婦聯(lián)所屬事業(yè)單位招聘考試筆試試題(含答案)
- 2025年電子電氣工程能力測試試卷及答案
- 2025年保險精算師考試試卷及答案的備考資料
- 汽修廠稅負波動原因分析報告制度
- 2025安全生產(chǎn)法律法規(guī)專題知識培訓
- 2025年全民反詐知識競賽題庫及答案(共50題)
- 2025年江西省三支一扶考試真題
- 超市安全管理
- 2025年四川省安全員《A證》考試題庫
- 2024年山東省夏季普通高中學業(yè)水平合格考試歷史試卷
- 月子中心員工手冊管理制度
- 2025中考數(shù)學專項復習:最值問題之瓜豆原理模型(含答案)
- 醫(yī)藥制造與流通行業(yè)2024年信用回顧與2025年展望-新世紀評級
- 2025年浙江寧波北侖熱力有限公司招聘筆試參考題庫含答案解析
- 2025年浙江麗水景寧畬族自治縣交通發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論