




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實用標(biāo)準(zhǔn)文案課程設(shè)計說明書設(shè)計名稱: 計算機操作系統(tǒng)課程設(shè)計 題 目: 操作系統(tǒng)命令接口設(shè)計 學(xué)生姓名: 張協(xié)鎏 專 業(yè): 計算機科學(xué)與技術(shù) 班 級: 13計算機科學(xué)與技術(shù)2班 學(xué) 號: 2013314209 指導(dǎo)教師: 任朝暉、曾凡智、黃營、周燕 日 期: 2015 年 9 月 20 日 計算機科學(xué)與技術(shù) 專業(yè) 2013 年級 2 班 張協(xié)鎏 一、 設(shè)計題目 操作系統(tǒng)命令接口設(shè)計二、 目的和要求(1)本設(shè)計的目的是通過設(shè)計一些簡單的操作系統(tǒng)的命令接口,使學(xué)生掌握操作系統(tǒng)接口的設(shè)計方法。(2)要求學(xué)生在熟悉操作系統(tǒng)的命令接口及程序接口的基礎(chǔ)上,利用C語言設(shè)計簡單的命令接口。命令接口基于DOS的
2、命令行接口。三、 設(shè)計內(nèi)容利用C語言、DOS中斷中21H與屏幕顯示相關(guān)的中斷調(diào)用完成設(shè)計,具體包括:1. 命令解釋器2. 列目錄命令3. 顯示時間命令4. 顯示日期命令5. 回顯字符串命令6. 創(chuàng)建目錄命令7. 刪除目錄命令8. 更改路徑命令9. 顯示當(dāng)前工作目錄命令10. 刪除文件命令11. 打印文本命令12. 文件重新命名13. 顯示文本命令14. 顯示版本命令15. 顯示目錄結(jié)構(gòu)命令16. 清除當(dāng)前顯示內(nèi)容命令上述內(nèi)容中,所有命令通過命令解釋器能夠執(zhí)行,即啟動命令解釋器以后,輸入相應(yīng)命令,按照輸入指令執(zhí)行相應(yīng)功能,并在屏幕上顯示相應(yīng)結(jié)果。四、 進度安排依照教學(xué)計劃,課程設(shè)計時間為:2周。
3、1. 要求講解、資料查找、系統(tǒng)分析,概要設(shè)計 (2天)2. 系統(tǒng)詳細設(shè)計、功能設(shè)計(2天)3. 算法實現(xiàn)、編程調(diào)試(5天)4. 功能演示、資料整理、課程設(shè)計說明書編寫。(1天)五、 完成后應(yīng)上交的資料課程設(shè)計的總結(jié)報告,主要包括以下內(nèi)容:1. 課程設(shè)計的題目、系統(tǒng)的總功能和各子模塊的功能;2. 源程序代碼;3. 課程設(shè)計中遇到的主要問題和解決方法;4. 設(shè)計中存在的不足及改進的設(shè)想;5. 本次課程設(shè)計的感想和心得體會。六、 總評成績指導(dǎo)教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日操作系統(tǒng)命令接口設(shè)計一、概念原理中斷:指當(dāng)出現(xiàn)需要時,CPU暫時停止當(dāng)前程序的執(zhí)行轉(zhuǎn)而執(zhí)行處理新情況的
4、程序和執(zhí)行過程。即在程序運行過程中,系統(tǒng)出現(xiàn)了一個必須由CPU立即處理的情況,此時,CPU暫時中止程序的執(zhí)行轉(zhuǎn)而處理這個新的情況的過程就叫做中斷。中斷是一種發(fā)生了一個外部的事件時調(diào)用相應(yīng)的處理程序的過程,通常,程序中斷是由外部設(shè)備通過CPU的中斷請求線向CPU提出的。在一定條件下,CPU響應(yīng)中斷后,暫停源程序的執(zhí)行,轉(zhuǎn)至為外設(shè)服務(wù)的中斷處理程序。中斷處理程序可以按照所要完成的任務(wù)編寫與過程類似的程序段。在程序段最后執(zhí)行一條中斷返回指令返回主程序,繼續(xù)按原順序執(zhí)行。操作系統(tǒng)命令接口:通過在用戶和操作系統(tǒng)之間提供高級通信來控制程序運行,用戶通過輸入設(shè)備發(fā)出一系列命令告訴操作系統(tǒng)執(zhí)行所需功能,它包括
5、了鍵盤操作命令和作業(yè)控制命令,稱為作業(yè)一級的用戶接口。命令接口的兩種最普遍和主要的方式是直接命令方式(命令行)和間接命令方式(命令文件)。二、程序設(shè)計實現(xiàn)過程程序通過選擇開關(guān)switch.case將用dos,bios調(diào)用編寫的函數(shù)組合起來供用戶做出選擇。在對應(yīng)處理用戶的選擇編寫的函數(shù)中,主要的核心是dos功能中斷調(diào)用函數(shù)的編寫,其中包括中斷類型號,中斷功能調(diào)用號等的設(shè)置,以及響應(yīng)用戶選擇后中斷服務(wù)程序的編寫。1、程序主要函數(shù)void menu():用戶功能選擇菜單;void time():顯示時間功能,輸出當(dāng)前電腦設(shè)置時間,能精確到毫秒;void day():顯示日期功能,輸出當(dāng)前電腦設(shè)置日期
6、,輸出格式為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)
7、:文件重新命名功能,調(diào)用DOS中斷21H的56H的文件改名命名命令;void showlist():顯示當(dāng)前工作目錄功能,調(diào)用DOS中斷21H的47H的顯示當(dāng)前工作目錄命令;void rewords():鍵盤輸入字符并回顯字符功能,調(diào)用DOS中斷21H的09回顯字符串的命令;clrscr():清除當(dāng)前顯示內(nèi)容功能。2、程序調(diào)試運行結(jié)果分析開始運行功能選擇界面輸入功能號1顯示當(dāng)前系統(tǒng)時間,輸入功能號2輸出當(dāng)前系統(tǒng)日期,輸入功能號3輸出當(dāng)前系統(tǒng)DOS版本,輸入功能號5創(chuàng)建目錄,工作目錄成功創(chuàng)建文件夾FILE輸入功能號7文件改名,改名為NEWFILE,工作目錄成功改名NEWFILE,輸入功能號6刪除
8、NEWFILE文件夾成功,運行調(diào)試結(jié)果滿足實驗要求,退出程序,完成設(shè)計內(nèi)容。三、程序設(shè)計總結(jié)體會通過連續(xù)兩個星期的上機編程,我體會了從事C語言課程設(shè)計工作需要特別謹慎認真地態(tài)度和作風(fēng),一點都不能馬虎。每個細微的細節(jié)都必須十分注意,如果不認真思考,就會出現(xiàn)或大或小的錯誤。如果把早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時會推倒很多前面做的工作。有時候,我自己覺得我寫的程序非常正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的不足,所以進展的速度非常的緩慢,往往幾天的時間沒有一點進展。這時候,我一般是先自己通過書本,手冊和資
9、料找解決辦法,實在沒轍才向老師同學(xué)請教。在開始編寫程序的時候,我還不清楚DOS中斷的知識,剛開始就在上網(wǎng)百度學(xué)習(xí)有關(guān)程序接口和中斷調(diào)用相關(guān)知識,慢慢的開始知道怎么去調(diào)用DOS21H的功能號?;仡櫞舜握n程設(shè)計,至今我仍然很多感想,的確,自從拿到題目到完成整個編程,從理論到實踐,這些日子里,可以學(xué)到很多很多的東西,同時不僅可以鞏固以前所學(xué)的知識,而且學(xué)到了很多在書本上所沒學(xué)到的知識,通過在這次課程設(shè)計使我懂得了理論知識與實踐動手能力組合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。通過一
10、段時間的課程設(shè)計,我明白了程序一定要要親手做過,不管它是否有結(jié)果。你要學(xué)的是知識,是解決問題的方法和思想,要端正學(xué)習(xí)態(tài)度,一時的成敗不足以論英雄,每一次突破都是一種收獲,就是在這樣的過程中我們才能不斷提高。在從開始接到課程設(shè)計,再到報告的完成,每走一步都滲透著努力和汗水。在收獲知識的同時收獲快樂。 對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示衷心的感謝!四、源代碼<在Turbo C 3.0環(huán)境>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<dos.h>#inc
11、lude<bios.h>#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 string
12、n10.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() u
13、nion 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
14、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 segreg
15、s;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);vo
16、id 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("s
17、uccess!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",filena
18、me);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
19、,&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(®, ®, &
20、amp;segreg);printf("The current working directory is:%sn", list);void rewords()union REGS reg,reg1;struct SREGS sreg;char word200;for(int i=0;i<200;i+)wordi='$'scanf("%s",&word);reg1.x.dx = FP_OFF(word);sreg.ds = FP_SEG(word);reg1.h.ah=0x09;int86x(INTER,®1,&
21、amp;reg1,&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 = ou
22、tregs.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 fi
23、le byte number: %dn",filename,outregs.x.ax);printf("%s contents is:",filename);for(int i=0;i<outregs.x.ax;i+)printf("%c",ReadContentsi); printf("n");int main()char DeleteFileName80;char ReadingFileName80;char file180,file280;int a;domenu();scanf("%d",&a);switch(a)case 1:time();break;case 2:day();break;case 3:dos();break;case 4:printf("nInput the name o
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合股賣水泥合同范本
- 勞務(wù)分包單位合同范本
- 勞務(wù)合同范本車輛
- 微信租房合同范本
- 與單位簽正式合同范本
- 廠內(nèi)車間出租合同范本
- 化肥生產(chǎn)合同范本
- 做建設(shè)合同范本
- 合同范本嬰兒車
- 分期付款機器買賣合同范本
- 保密法實施條例培訓(xùn)
- 鉗工工藝學(xué)(第6版)完整全套教學(xué)課件
- DB11T 1035-2013 城市軌道交通能源消耗評價方法
- 老年科護士進修匯報
- 2024新能源光伏電站運行規(guī)程和檢修規(guī)程
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 有機化學(xué)完整版本
- 銀行存管三方協(xié)議書
- 2024-2030年中國婦幼保健行業(yè)發(fā)展分析及發(fā)展前景與趨勢預(yù)測研究報告
- 2024年新人教版化學(xué)九年級上冊全冊課件(新版教材)
- 教科版 二年級科學(xué)上冊第一單元第6課《不同的季節(jié)》同步練習(xí)(附答案解析)
評論
0/150
提交評論