資源描述:
《命令解釋程序.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;i7、==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è)。