操作系統(tǒng)命令接口設(shè)計_第1頁
操作系統(tǒng)命令接口設(shè)計_第2頁
操作系統(tǒng)命令接口設(shè)計_第3頁
操作系統(tǒng)命令接口設(shè)計_第4頁
操作系統(tǒng)命令接口設(shè)計_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、貴州工程應(yīng)用技術(shù)學(xué)院操作系統(tǒng)課程設(shè)計題目:操作系統(tǒng)命令接口設(shè)計學(xué)號:姓名:學(xué)院:專業(yè)班級:指導(dǎo)教師:完成時間:2016年4月14日信息工程學(xué)院計算機系制操作系統(tǒng)命令接口設(shè)計、實驗?zāi)康耐ㄟ^設(shè)計一些簡單的操作系統(tǒng)的命令接口,使學(xué)生掌握操作系統(tǒng)接口的設(shè)計方法。在熟悉操作系統(tǒng)的命令接口及程序接口的基礎(chǔ)上,利用C語言設(shè)計簡單的命令接口。命令接口基于DOS勺命令行接口、實驗功能利用C語言、DOS中斷中21H與屏幕顯示相關(guān)的中斷調(diào)用完成設(shè)計,如下:命令解釋器列目錄命令顯示時間命令顯示日期命令回顯字符串命令創(chuàng)建目錄命令刪除目錄命令更改路徑命令顯示當(dāng)前工作目錄命令刪除文件命令打印文本命令文件重新命名顯示文本命令

2、顯示版本命令顯示目錄結(jié)構(gòu)命令清除當(dāng)前顯示內(nèi)容命令三、實驗流程圖顯HE最玷憫泰丁顯墓岑*匚,顯“而清1-1執(zhí)彳相關(guān)探定Q程片造四、函數(shù)功能模塊:函數(shù)1:顯示系統(tǒng)當(dāng)前的時間函數(shù):void_TIME(void)函數(shù)2:顯示系統(tǒng)當(dāng)前的日期函數(shù):void_DATA(void)函數(shù)3:在當(dāng)前目錄下創(chuàng)建一個新的目錄函數(shù):void_CTREAT(void)函數(shù)4:刪除當(dāng)前目錄中的一個目錄函數(shù):void_DELDIR(void)函數(shù)5:更改當(dāng)前目錄的路徑函數(shù):void_ROUTE_(void)函數(shù)6:顯示當(dāng)前的目錄函數(shù):void_DIR(void)函數(shù)7:刪除當(dāng)前目錄中的文件函數(shù):void_DELETE(voi

3、d)函數(shù)8:打印目錄中的文本函數(shù):void_PRINT(void)函數(shù)9:給當(dāng)前目錄中的文件重新命名函數(shù):void_RENAME(void)函數(shù)10:以窗口的形式顯示文本函數(shù):void_SHOW(void)函數(shù)11:顯示當(dāng)前系統(tǒng)的版本號函數(shù):void_SNUM(void)函數(shù)12:以二叉樹的形式顯示系統(tǒng)的目錄文件結(jié)構(gòu)函數(shù):void_TREE(void)函數(shù)13:清屏函數(shù):void_CLS(void)函數(shù)14:輸入判斷函數(shù)檢查輸入命令函數(shù):Command_um(charCommand_name)參數(shù):charCommand_name口輸入的命令功能:將其轉(zhuǎn)換成相應(yīng)的case常量返回值:numin

4、tComnand_num(charCommand_name)五、核心算法1 .主要是使用API相關(guān)函數(shù),以及調(diào)用DO階令2 .使用strcmp()函數(shù)判斷輸入命令格式是否正確3 .使用清空緩沖區(qū),以免影響下一次命令的操作六、源程序#include<stdio.h># include<windows.h>#include<conio.h>#include<stdlib.h># include<string.h># include"Shellapi.h"/顯示系統(tǒng)時間函數(shù)void_TIME(void)?SYSTEM?I

5、MEst;GetLocalTime(&st);/獲取當(dāng)前系統(tǒng)時間,以本地時間格式?printf("Now:%d:%d:%d",st.wHour,st.wMinute,st.wSecond);printf("n");SetLocalTime(&st);/設(shè)置當(dāng)前系統(tǒng)時間)顯示系統(tǒng)日期函數(shù)void_DATE(void)(SYSTEMTIMEst;?GetLocalTime(&st);/獲取當(dāng)前系統(tǒng)時間,以本地時間格式?printf("Now:%d-%d-%d",st.wYear,st.wMonth,st.wDay)

6、;printf("n");SetL.ocalTime(&st);/設(shè)置當(dāng)前系統(tǒng)時間)創(chuàng)建目錄creatvoid_CTREAT(void)/在同文件中創(chuàng)建一個文件夾先創(chuàng)建C,D文件夾,C中創(chuàng)建文件夾123,格式C12?chardir_name256;gets(dir_name);?if(CreateDirectory(dir_name,NULL)printf("OK'n");?elseprintf("NOn");)/刪除目錄void_DELDIR(void)?charcmd256,dirname256;刪除?puts(&

7、quot;Inputthefileyoudelete:");/格式23文件3里的東向全部gets(dirname);strcpy(cmd,"rmdir/s/q");strcat(cmd,dirname);/連接兩個字符串system(cmd);調(diào)用DOS命令/更改路徑名void_ROUTE_C(void)?charoldname256,newname256;printf("Routetorename:");gets(oldname);/要修改的路徑名printf("NewRootname:");gets(newname);/

8、修改后的路徑名if(rename(o1dname,newname)=0)/修改成功printf("Renamed%sto%s.n",oldname,newname);else/修改失敗perror("rename");/顯示當(dāng)前目錄dirvoid_DIR(void)system("dir");/刪除文件deletevoid_DELETE(void)charfile80;1123.txtprintf("Filetode1ete:");gets(file);/輸入刪除的文件名輸入格式if(remove(file)=0)

9、/刪除成功printf("Removed%s.n",file);else/刪除失敗perror("remove");/打印文本printvoid_PRINT(void)FILE*fp;charch,file_name256;printf("pleaseinputlikeC1123.txtn");scanf("%s",fi1e_name);?if(fp=fopen(file_name,"rt+")=NULL)?printfnCannotopenfilestrikeanykeyexit!"

10、);?printf("orthisisNULL!");?ch=fgetc(fp);?whi1e(ch!=EOF)?putchar(ch);?ch=fgetc(fp);?printf("n");?fc1ose(fp);/重命名renamevoid_RENAME(void)charoldname256,newname256;?printf("Filetorename:");gets(oldname);/要重命名的文件名printf("Newname:");gets(newname);/新文件名?if(rename(ol

11、dname,newname)=0)printf("Renamed%sto%s.n",oldname,newname);?elseperror("rename");show/以窗口的形式顯示文本void_SHOW(void)charfile_name256;scanf("%s",file_name);/調(diào)用APIShellExecute()函數(shù)?Shel1Execute(NULL,"open",file_name,NULL,NULL,SWCSHOWNORMAL);/版本號snumvoid_SNUM(void)prin

12、tf("版本號:DIYoperatsystem1.0n");/*自己命名*/顯示目錄結(jié)構(gòu)treevoid_TREE(void)?charCommand256="tree/f|more"調(diào)用DOS命令?system(Command);/清屏clsvoid_CLS(void)system("cIs");/輸入判斷函數(shù)檢查輸入命令函數(shù):Command_num(charCommand_name口)參數(shù):charCommand_name口輸入的命令/功能:將其轉(zhuǎn)換成相應(yīng)的case常量intCommand_num(charCommand_name

13、)?intnum;/case常量if(stremp(Command_name,"exit")=0I|strcmp(Commandname,"EXIT")=0)?num=0;/退出elseif(strcmp(Command_name,"time")=0|strcmp(Command_name,"TIME")=0)?num=1;時間elseif(strcmp(Command_name,"date")=0|strcmp(Command_name,"DATE")=0)num=2;/日

14、期elseif(strcmp(Command_name,"creat")=0|strcmp(Command_name,"CREAT)=0)?num=3;/創(chuàng)建文件elseif(strcmp(C0mmand_name,"deldir")=0|strcmp(Command_name,"DELDIR")=0)num=4;/刪除目錄elseif(strcmp(Command_name,"croute")=0|strcmp(Command_name,"CROUTE")=0)?num=5;/修改路

15、徑elseif(strcmp(Command_name,"dir")=0|strcmp(Command_name,"DIR")=0)?num=6;顯示當(dāng)前目錄elseif(strcmp(Command_name,"delete")=0|DELETE")=0)?num=7;/刪除文件elseif(strcmp(Command_name,"print")=0|strcmp(Command_name,"strcmp(Command_name,"PRINT")=0)?num=8;/打

16、印文件=0|strcmpelseif(strcmp(Command_name,"rename")(Command_name,"RENAME")=0)?num=9;重命名文件elseif(strcmp(Command_name,"show")=0|")=0)num=10;elseif(strcmp(Command_name,"snum""SNUM")=0)?num=11;版本號strcmp(Command_name,"SHOW=0|strcmp(Command_name,=0|

17、strcmp(Command_naelseif(strcmp(Command_name,"tree"me,"TREE")=0)num=12;顯示目錄結(jié)構(gòu)?elseif(strcmp(Command_name,"c1s")=0|e,"CLSi)=0)num=13;/清除當(dāng)前顯示elseprintf("inputerrn");/*輸入錯誤*/?returnnum;/主函數(shù)intmain(void)?charCommand_name256;/命令名intCom_num;/命令轉(zhuǎn)換成常量的中間變量?/程序主界面p

18、rintf("操作系統(tǒng)接口設(shè)計printf("系統(tǒng)時間:n");printf("系統(tǒng)日期:n");?printf("創(chuàng)建目錄:n");?printf("刪除目錄:DIRn");printf("更改路徑名:TEn");?printf("顯示當(dāng)前目錄:strcmp(Command_namn");time/TIMEdate/DATEcreat/CREATdeldir/DELcroute/CROUdir/DIRn");printf("刪除文件:En&qu

19、ot;);?printf("打印文本:n");printf("重命名文件:n");printf("顯示文本:n");?printf("顯示版本:n");printf("顯示目錄結(jié)構(gòu):n");printf("清除屏幕:n");?printf("退出:n");?printf("n");printf("請輸入你要執(zhí)行的命令:");?while(scanf("%s",Command_name)&&

20、amp;Com_num!=0?(?fflush(stdin);/清除按鍵信息的緩存delete/DELETprint/PRINTrename/RENAMEshow/SHOWsnum/SNUMtree/TREEcls/CSLexit/EXIT?Com_num=Command_num(Command_name);?switch(Com_num)?case0:Com_num=0;printf("EXITTHESYSTEMn");returnCom_num=0;break;?case1:_TIME();break;/顯示時間?case2:_DATE();break;顯示日期?cas

21、e3:_CTREAT();break;/創(chuàng)建文件?case4:_DELDIR();break;刪除目錄?case5:_ROUTE_C();break;修改目錄?case6:_DIR();break;/顯示當(dāng)前目錄?case7:_DELETE()break;刪除文件?case8:_PRINT();break;打印文件?case9:_RENAME();break;/重命名文件?case10:_SHOW();break;/顯示文件?case11:_SNUM();break;/顯示版本號?case12:_TREE()break;/顯示目錄結(jié)構(gòu)?case13:CLS();break;/清除當(dāng)前顯示?re

22、turn0;七、程序結(jié)果圖"CpX'ObwgM.eK口演訐19iSe5iMitiinnzlinfdat-oDAIIEtIt?at-C崩EATdhbimmIitCu-C幣皿1"而也±1*皿HduldVODFUTTKiprlntPRTHTfenanEZ7JbNftE”»hcMdH®Ujp-nunSNUMt.«日-TREEclifZCSLmxiBXFT錄構(gòu)件結(jié)國wh,:p'I,,."卻時目身尋八支名統(tǒng)統(tǒng)H靜黑注不外累I,絡(luò)WHTa.Tkul-rLLtL4Tm汗7日¥KE1.pJl-fwPI:NF再<

23、DIH>Wild&理4星cmic"(HiMIhiBim1!Arif«<DLls>D«Ihuw<»«»><DIl»lucar»>UlLBrjF?<DLR>chs4011”Im<DLH>界胞寄物例租!&計<UIli>I-i<DEH?客性in.vji>”rj"量49«9411jp04.ML<4*-41314n211WMll40妙建H-zgBx字也»1、,£JilWaXwl

24、JL工11*二E&G與才才?5-4£A與與4I3-<141i-11i111Mlfdld吃*4I4-T434,llq/q<-&&&Hfi.Gfh必f.Kf.rkl.fh:;s;案RIttlnlttlMIttlMIEHlBlKBRhhtlwciKNIIamHdiU14Ma14ftali14H9014AZ3=3才wsnn*tt±44f2Z;H10二,i-aVIMMzeiifrcMtiaZ01fc«533Sha«±frei4-ife2t工也“04八£與,也7%51.心尸*!D*dAJL一g14中產(chǎn)ngMittIWFIle-youda-lete=i-t:Ml*t-*a*f1.ncli*A“etB乂*M,里程BDoirnlo«.dl>9Xh"MuClaliii1_Kmm61i好MRWE=han戶-,Nr*Fi*4t-rt-<PIH><DIR>CPIF><PIR><DIH>“IIO<BI.H><&lns<31、口勺口量否是網(wǎng),軸”三常:m二韶;r自t畬01產(chǎn)粉,工二£.仁丁X-心J-)411.d.v01n<'hi-4山r

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論