命令解釋程序.doc

命令解釋程序.doc

ID:57700222

大小:521.83 KB

頁(yè)數(shù):10頁(yè)

時(shí)間:2020-09-01

命令解釋程序.doc_第1頁(yè)
命令解釋程序.doc_第2頁(yè)
命令解釋程序.doc_第3頁(yè)
命令解釋程序.doc_第4頁(yè)
命令解釋程序.doc_第5頁(yè)
資源描述:

《命令解釋程序.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、實(shí)驗(yàn)一、命令解釋程序?qū)嶒?yàn)專業(yè):軟件工程姓名:陳朝杰學(xué)號(hào):201206014147一、實(shí)驗(yàn)?zāi)康模?)掌握命令解釋程序的原理;(2)掌握簡(jiǎn)單的DOS調(diào)用方法;(3)掌握C語(yǔ)言編程初步。二、實(shí)驗(yàn)內(nèi)容和要求編寫類似于DOS,UNIX的命令行解釋程序(1)自行定義系統(tǒng)提示符(2)自定義命令集(8-10個(gè))(3)用戶輸入HELP以查找命令的幫助(4)列出命令的功能,區(qū)分內(nèi)部還是外部命令(5)用戶輸入QUIT退出(6)內(nèi)部命令有dir,cd,md,rd,cls,date,time,ren,copy等。三、實(shí)驗(yàn)方法、步驟及結(jié)果測(cè)試1.源程序名:cmd.cpp可

2、執(zhí)行程序名:cmd.exe命令及其說(shuō)明文件:cmd.txtI-101.原理分析及流程圖開始讀取文件將文件中的奇數(shù)行存儲(chǔ)到cmd字符數(shù)組中,偶數(shù)行存儲(chǔ)到fun字符數(shù)組中讀取用戶輸入的字符流,并存儲(chǔ)到str字符數(shù)組中str是否為quit是否Str是否為help是輸出所有cmd[][]和fun[][]否否與cmd[i]匹配輸出非操作命令是輸出fun[i]結(jié)束I-101.主要程序段及其解釋:實(shí)現(xiàn)主要功能的程序段,重要的是程序的注釋解釋。{/*==定義變量====================*/inti=0,j=0,n;//定義變量charstr[1

3、0];//用于存儲(chǔ)用戶輸入的命令(字符串流)charstrsd[100];//用于存儲(chǔ)獲取的當(dāng)前目錄charcmd[20][10];//用于存儲(chǔ)從文件中讀取的命令charfun[20][50];//用于讀取從文件中讀取的命令的功能說(shuō)明/*=========文件讀取============\=========*/charfilename[]="D:\cmd.txt";//命令及其功能說(shuō)明的文件的路徑及其文件名FILE*fp;//文件指針charStrLine[50];//每行最大讀取的字符數(shù)if((fp=fopen(filename,"r"

4、))==NULL)//判斷文件是否存在及可讀{printf("error!");return-1;}/*========讀取文件并存儲(chǔ)到cmd[][]和fun[][]中=====*/while(!feof(fp)){if(i%2==0){//如果是單行,則存到cmd【】(命令)中fgets(StrLine,10,fp);strcpy(cmd[i/2],StrLine);cmd[i/2][strlen(cmd[i/2])-1]=0;//消除從文件讀入字符串時(shí)的換行符}else//如果是偶數(shù)行,則存到fun【】(功能說(shuō)明)中I-10{fgets(S

5、trLine,50,fp);strcpy(fun[i/2],StrLine);fun[i/2][strlen(fun[i/2])-1]=0;//消除從文件讀入字符串時(shí)的換行符}n=i/2+1;//n為命令的個(gè)數(shù)i++;}for(i=strlen(fun[n-1])-1;i<=50;i++)//消除文件最后讀入的結(jié)束符(?)fun[n-1][i]=0;//printf("%d",n);fclose(fp);//關(guān)閉文件/*===判斷用戶輸入的命令并作出相應(yīng)的回應(yīng)======*/while(strcmp(str,"quit")!=0)//判斷用

6、戶輸入的是否為quit,是則跳出循環(huán)結(jié)束程序{if(strcmp(str,"help")==0)//判斷用戶輸入的是否為help,是則輸出所有的cmd【】,fun【】{for(i=0;i

7、==n)printf("%s不是內(nèi)部操作命令!",str);}//若不能配對(duì)到相同命令,則輸出該命令不是操作命令printf("%s>",strsd);gets(str);//進(jìn)行循環(huán)}I-104.運(yùn)行結(jié)果及分析1.輸入help命令:分析:程序輸出所有命令及其功能2.輸入cls命令:分析:程序能正確輸出其功能I-103.輸入quit:分析:程序能正常退出1.輸入time分析:文件中并沒(méi)有time這個(gè)命令(沒(méi)加入),故提示不是操作命令I(lǐng)-101.輸入time分析:此時(shí)已在文件中加入了time命令,故可以輸出其功能說(shuō)明一、實(shí)驗(yàn)總結(jié)通過(guò)這次的實(shí)驗(yàn)

8、,復(fù)習(xí)了c語(yǔ)言。許多忘記或從未記住過(guò)的知識(shí)重新看了一遍。字符串配對(duì)部分在同學(xué)的幫助下認(rèn)識(shí)到了錯(cuò)誤的所在,通過(guò)查找資料找到了具體的解決方法,完成了作業(yè)。

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。