[計算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報告

上傳人:仙*** 文檔編號:27971167 上傳時間:2021-08-22 格式:DOC 頁數(shù):37 大?。?.69MB
收藏 版權(quán)申訴 舉報 下載
[計算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報告_第1頁
第1頁 / 共37頁
[計算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報告_第2頁
第2頁 / 共37頁
[計算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報告_第3頁
第3頁 / 共37頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《[計算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報告》由會員分享,可在線閱讀,更多相關(guān)《[計算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報告(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 操作系統(tǒng)課程設(shè)計報告 作者:半童 合肥工業(yè)大學(xué) 獨(dú)立之精神,自由之思想!Windows命令接口實(shí)驗(yàn)一實(shí)驗(yàn)題目: 第29題操作系統(tǒng)接口:Windows命令接口。(3人) 4分二實(shí)驗(yàn)任務(wù):1.設(shè)計要求:l 為Windows操作系統(tǒng)建立兼容的DOS命令接口,文件與目錄命令;l 具體命令:DIR, RD,CD,MD, DEL,MOVE,REN, COPY, XCOPY, TIME, DATE,SORT,重定向命令,.,|,MORE,TYPE ,CLS,EXIT命令格式可參照Windows的CMD.EXE或MS-DOS提供的命令;l 設(shè)計命令的名稱、參數(shù)等格式;l 可以字符形式接收命令,執(zhí)行命令,然后

2、顯示命令執(zhí)行結(jié)果.2設(shè)計目的:(1)DIR命令:能夠正確顯示一個目錄里面的子目錄和文件(2)RD命令:能夠刪除一個空目錄(3)CD命令:能夠打開一個存在的目錄(4)MD命令:能夠建立一個空目錄(5)DEL命令:能夠刪除一個文件(6)MOVE命令:能夠移動一個目錄或文件(7)REN命令:能夠重命名一個目錄或文件(8)XCOPY命令:能夠拷貝整個目錄(8)TIME命令:顯示系統(tǒng)的時間(8)DATE命令:顯示系統(tǒng)的日期(8)SORT命令:對文本內(nèi)容進(jìn)行分類(8)MORE命令:逐步分屏顯示(8)TYPE命令:顯示文本內(nèi)容(8)CLS命令:清楚屏幕顯示(8)EXIT命令:退出三:實(shí)驗(yàn)環(huán)境:1 PC機(jī)一臺

3、 386以上2 Microsoft Visual Studio2010 軟件3 實(shí)現(xiàn)語言:C語言四:原理及算法描述:1基本原理: 用戶利用聯(lián)機(jī)命令接口實(shí)現(xiàn)與機(jī)器的交互時,先在終端的鍵盤上打入所需的命令,由終端處理程序接受該命令,并將它顯示在終端屏幕上。當(dāng)一條命令輸入完后,由命令解釋程序?qū)γ钸M(jìn)行分析,然后執(zhí)行相應(yīng)命令的處理程序。2算法描述:(1)存貯輸入的各命令參數(shù)void store_parameter(char *buffer,char *parameter10,int *para_num)說明:將輸入的命令一條一條存儲parameter10中,最大允許的參數(shù)個數(shù)為10個。算法描述:為bu

4、ffer設(shè)置一個指針buffer_point,如果該指針向下移動,碰到空格,繼續(xù)向下移動,直到遇到字符,讀進(jìn)各存儲變量中parameter10,最后如果遇到0,則結(jié)束。(2)瀏覽一個路徑下的目錄和文件void my_dir(char *a,int *num)說明:該命令只能顯示當(dāng)前目錄中的文件和子目錄和當(dāng)前目錄中子目錄中的文件和子目錄。并無如Windows中命令參數(shù)如此豐富。主要是考慮其復(fù)雜性,予以簡化了。算法描述:如果只接受到mydir命令,后面并無其他參數(shù)時,顯示當(dāng)前目錄下文件和子目錄。如果接受到兩個參數(shù),如果第二個參數(shù)(表示當(dāng)前目錄中子目錄)存在,則顯示該目錄下文件和子目錄,如果不存在,

5、則報錯。(3)刪除一個存在的目錄,如果不存在,刪除失敗!void my_rd(char *a,int *num)算法描述:如果該目錄存在且為空目錄,則刪除,否則失敗。(4)打開一個存在的目錄,如果不存在,打開失敗! void my_cd(char *a,int *num)算法描述:如果接受到兩個參數(shù),第二個參數(shù)表示要打開的目錄。如果該目錄存在,則成功,否則失敗。(5)創(chuàng)建一個目錄void my_md(char *a,int *num)算法描述:如果接受到兩個參數(shù),第二個參數(shù)表示要建立的目錄。如果存在該目錄,失敗,否則成功。(6)刪除一個存在的文件,如果不存在,刪除文件失敗!void my_de

6、l(char *a,int *num)算法描述:如果接受到兩個參數(shù),第二個參數(shù)表示要刪除的文件。如果該文件存在,則刪除成功,否則失敗。(7)移動一個存在的文件,否則,移動失敗void my_move(char *a,int *num)算法描述:如果接受到三個參數(shù),其中第二個參數(shù)表示存在的文件或目錄,第三個參數(shù)表示將要移動到的參數(shù)。如果第二個參數(shù)不存在,則失敗,存在,成功。(8)重命名一個已經(jīng)存在的文件,否則,重命名失敗!void my_ren(char *a,int *num)算法描述:如果接受到三個參數(shù),其中第二個參數(shù)表示將要重命名的目錄或文件,第三個參數(shù)表示將要重命名的新的名字。(9)拷貝

7、文件void my_xcopy(char *a,int *num)算法描述:如果接受到三個參數(shù),其中第二個參數(shù)表示存在的目錄或文件,第三個表示將要拷貝成的目錄或文件。(10)顯示系統(tǒng)的時間void my_time(char *a,int *num)算法描述:如果接受到一個參數(shù),調(diào)用系統(tǒng)的時間函數(shù),參數(shù)正確則輸出系統(tǒng)時間。(11)顯示系統(tǒng)的日期void my_date(char *a,int *num)算法描述:如果接受到一個參數(shù),調(diào)用系統(tǒng)的日期函數(shù),參數(shù)正確則輸出當(dāng)時日期。(12)對文本內(nèi)容進(jìn)行分類void my_sort(char *a,int *num)算法描述:如果接受到兩個參數(shù),第二個

8、參數(shù)表示要分類的文本文檔。如果該文件存在,則分類成功,否則失敗。(13)逐步分屏顯示文本內(nèi)容void my_more(char *a,int *num)算法描述:如果接受到兩個參數(shù),第二個參數(shù)表示要分屏顯示的文本文檔。如果該文件存在,則分屏顯示成功,否則失敗。(14)顯示文本內(nèi)容void my_type(char *a,int *num)算法描述:如果接受到兩個參數(shù),第二個參數(shù)表示要顯示的文本文檔。如果該文件存在,則顯示成功,否則失敗。(15)清除屏幕顯示void my_cls(char *a,int *num)算法描述:如果接受到一個參數(shù),調(diào)用系統(tǒng)的清屏函數(shù),參數(shù)正確則清除屏幕的輸入輸出。(

9、16)退出,后面可帶退出參數(shù)void my_exit(char *a,int *num)算法描述:可以接受小于10個的參數(shù),其中第一個參數(shù)表示退出。后面幾個參數(shù)一起表示輸出的信息。五設(shè)計思路描述:1本課程設(shè)計調(diào)用到的API函數(shù)有:(1)typedef struct _WIN32_FIND_DATA DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD d

10、wOID; TCHAR cFileNameMAX_PATH; WIN32_FIND_DATA; 該結(jié)構(gòu)存放著所找到文件的詳細(xì)信息,通過第一個字段,我們可以判斷找到的文件是目錄還是文件,通過cFileName可以獲得該文件的文件名,繼而可以對找到的文件進(jìn)行操作。(2)HANDLE FindFirstFile(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData ); 根據(jù)文件名查找文件,如執(zhí)行成功,返回一個搜索句柄。如果出錯,返回一個INVALID_HANDLE_VALUE常數(shù)。應(yīng)該用FindClose函數(shù)關(guān)閉這個句柄。(3)BOOL Find

11、NextFile( HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData );該函數(shù)根據(jù)調(diào)用FindFirstFile函數(shù)返回的句柄查找下一個文件,返回值非零表示成功,零表示失敗。如不再有與指定條件相符的文件,會將GetLastError設(shè)置成ERROR_NO_MORE_FILES。(4)BOOL FindClose( HANDLE hFindFile );該函數(shù)用來關(guān)閉FindFirstFile函數(shù)創(chuàng)建的一個搜索句柄。 (5)HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess,

12、 DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORDdwCreationDispostion , DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); 該函數(shù)創(chuàng)建,打開,或截取一個文件。它返回一個對象訪問句柄。也可以返回和打開一個目錄句柄。(6)BOOL GetFileTime( HANDLE hFile, LPFILETIME lpCreationTime,LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteT

13、ime );該函數(shù)得到一個文件創(chuàng)建,最近訪問,最近修改日期,時間。(7)GetCurrentDirectory(DWORD nBufferLength,LPWSTR lpBuffer );該函數(shù)得到當(dāng)前目錄,存放在lpBuffer中。(8) BOOL RemoveDirectory(LPCTSTR lpPathName);該函數(shù)一個存在的空目錄。(9)BOOL SetCurrentDirectory(LPCWSTR lpPathName);該函數(shù)設(shè)置當(dāng)前目錄。(10BOOLCreateDirectory(LPCTSTRlpPathName,LPSECURITY_ATTRIBUTES lpSec

14、urityAttributes ); 該函數(shù)創(chuàng)建一個新目錄。如果該文件存在,創(chuàng)建失敗。(11)BOOL DeleteFile(LPCTSTR lpFileName);該函數(shù)刪除一個存在的文件。(12)BOOL MoveFile(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName);該函數(shù)移動或重命名一個文件或目錄(不管這個目錄里是否由子目錄或文件)。(13)BOOL CopyFile(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists );該函數(shù)拷貝一個存在的

15、文件或新文件。(14)BOOL TimeFile(LPCTSTR lpExistingFileName);該函數(shù)調(diào)用輸出系統(tǒng)地時間。(15)BOOL DateFile(LPCTSTR lpExistingFileName);該函數(shù)調(diào)用輸出系統(tǒng)地日期。(16)BOOL SortFile(LPCTSTR lpExistingFileName);該函數(shù)打開文本文檔,將內(nèi)容進(jìn)行分類。(17)BOOL MoreFile(LPCTSTR lpExistingFileName);該函數(shù)打開文本文檔,將內(nèi)容進(jìn)行分屏顯示。(18)BOOL TypeFile(LPCTSTR lpExistingFileName)

16、; 該函數(shù)打開文本文檔,將內(nèi)容進(jìn)行顯示。(19)BOOL ClsFile(LPCTSTR lpExistingFileName);該函數(shù)清除屏幕輸入輸出的全部內(nèi)容。2重要算法: 其實(shí)談不上重要算法,只是對上述API函數(shù)的活學(xué)活用而已。其中我的my_dir(char *a,int *num)函數(shù)要稍微復(fù)雜點(diǎn)。其中涉及到一個文件或目錄時間日期的獲取和轉(zhuǎn)換,這點(diǎn)是需要注意的。在源程序中,我已經(jīng)給出詳細(xì)的注解。還有,最后結(jié)束時得關(guān)閉創(chuàng)建文件的句柄和搜索句柄。這點(diǎn)非常重要。3 流程圖:開始輸入一個完整的命令parameter0=”mydir” or “MYDIR”執(zhí)行my_dir()函數(shù)paramete

17、r0=”myrd” or “MYRD”執(zhí)行my_rd()函數(shù)parameter0=”mycd” or”MYCD”執(zhí)行my_cd()函數(shù)parameter0=”mymd” or”MYMD”執(zhí)行my_md()函數(shù)parameter0=”mydel” or”MYDEL”執(zhí)行my_del()函數(shù)parameter0=”mymove” or”MYMOVE”執(zhí)行my_move()函數(shù)parameter0=”myren” or”MYREN”執(zhí)行my_ren()函數(shù)parameter0=”myxcopy” or”MYXCOPY”執(zhí)my_xcopy()函數(shù)parameter0=”myexit” or”MYEXI

18、T”執(zhí)行my_exit()函數(shù)返回當(dāng)前目錄存儲各命令參數(shù)parameter0=”mytime” or”MYTIME”parameter0=”mydate” or”MYDATE”parameter0=”mysort” or”MYSORT”parameter0=”mymore” or”MYMORE”parameter0=”myxtype” or”MYTYPE”parameter0=”mycls” or”MYCLS”執(zhí)my_time()函數(shù)執(zhí)my_date()函數(shù)執(zhí)my_sort()函數(shù)執(zhí)my_more()函數(shù)執(zhí)my_type()函數(shù)執(zhí)my_ mycls()函數(shù)七實(shí)驗(yàn)步驟:(1)測試源程序是否正常,

19、測試通過即可運(yùn)行Microsoft Visual Studio2010 軟件 讓源程序生成執(zhí)行operating_system.exe,如圖:(2)將生成的operating_system.exe文件放置于要操作的文件夾內(nèi),并打開準(zhǔn)備進(jìn)行操作,如圖:原目錄列表:(3)使用mydir命令正確顯示一個目錄里面的子目錄和文件,如圖:(4)使用myrd命令能夠刪除一個空目錄,如圖:(5)使用mycd能夠打開一個存在的目錄,如圖:(6)使用mymd命令能夠建立一個空目錄,如圖:(7)使用mydel命令能夠刪除一個文件,刪除后與前面的源目錄參照可知其刪除功能,如圖:(8)使用mymove命令能夠移動一個目

20、錄或文件,移動后與前面的源目錄參照可知其移動功能,如圖:(9)使用myren命令能夠重命名一個目錄或文件,命名后與前面的源目錄參照可知其命名功能,如圖:(10)使用myxcopy命令能夠拷貝整個目錄,拷貝后與前面的源目錄參照可知其拷貝功能 (11)使用mytime命令能夠顯示系統(tǒng)的時間,如圖:(12)使用mydate命令能夠顯示系統(tǒng)的日期,如圖:(13)使用mysort命令能夠?qū)ξ谋緝?nèi)容進(jìn)行分類,分類后與前面的源目錄參照可知其分類功能,該功能是以首字母順序的方式進(jìn)行重排,如圖:(14)使用mymore命令能夠?qū)ξ谋緝?nèi)容進(jìn)行分屏顯示,按Enter鍵可以逐步顯示文檔內(nèi)容,如圖:(15)使用myty

21、pe命令能夠顯示文本內(nèi)容,如圖:(16)使用CLS命令能夠清除屏幕的顯示內(nèi)容,如圖:(17)使用EXIT命令退出operating_system.exe六程序清單:(1)function.h 頭文件:/*/存貯輸入的各命令參數(shù)#include#include#includeusing namespace std;void store_parameter(char *buffer,char *parameter10,int *para_num)char *buffer_point = buffer;for(*para_num) = 0; *buffer_point != 0 & (*para_n

22、um) cFileName,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_DELETE |FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS, NULL); /API函數(shù)CreateFileif(GetFileTime(obj_dir,&lpCreationTime,&lpLastAccessTime,&lpLastWriteTime) /API函數(shù)GetFileTime FILETIME temp_time; FileTimeToLocalFileTime(&lpLastWrite

23、Time, &temp_time); / 轉(zhuǎn)換成本地時間 FileTimeToSystemTime(&temp_time, &systime); / 轉(zhuǎn)換成系統(tǒng)時間格式 printf(%d/%d/%d ,systime.wYear,systime.wMonth,systime.wDay);/年月日printf(%d:%d:%d ,systime.wHour,systime.wMinute,systime.wSecond);/時分秒printf(%sn,find_file-cFileName);/printf(%d ,find_file-dwFileAttributes);CloseHandle

24、(obj_dir);/API函數(shù)DWORD(1)FindClose(obj_handle); /API函數(shù)FindClose/瀏覽其中目錄文件else if(*num) = 2)HANDLEobj_handle;char *lpFileName = (char*)malloc(64*sizeof(char);char *next_dir = (char*)malloc(64*sizeof(char);WIN32_FIND_DATA* find_file = new WIN32_FIND_DATA(); /API函數(shù)WIN32_FIND_DATAFILETIME lpCreationTime,l

25、pLastAccessTime,lpLastWriteTime;/創(chuàng)建時間,最近訪問時間,最近修改時間SYSTEMTIME systime;/定義系統(tǒng)時間WIN32_FIND_DATA* fd = new WIN32_FIND_DATA(); /API函數(shù)WIN32_FIND_DATAGetCurrentDirectory(64,lpFileName); /API函數(shù)GetCurrentDirectory/打開其中的某一個目錄if(!SetCurrentDirectory(a1) /API函數(shù)SetCurrentDirectoryprintf(瀏覽目錄失敗,可能沒有此目錄!n); elseGe

26、tCurrentDirectory(64,next_dir); /API函數(shù)GetCurrentDirectorystrcat(next_dir,*.*);obj_handle = FindFirstFile(next_dir, fd);/obj_handle初始化 API函數(shù)FindFirstFile(2)if(FindFirstFile(next_dir, find_file) != INVALID_HANDLE_VALUE) /API函數(shù)FindFirstFile(2)while (FindNextFile(obj_handle, find_file) /API函數(shù)FindNextFil

27、eHANDLE obj_dir = CreateFile(find_file-cFileName,GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_DELETE |FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS, NULL); /API函數(shù)CreateFileif(GetFileTime(obj_dir,&lpCreationTime,&lpLastAccessTime,&lpLastWriteTime) /API函數(shù)GetFileTime FILETIME temp_time; /

28、臨時變量 FileTimeToLocalFileTime(&lpLastWriteTime,&temp_time); FileTimeToSystemTime(&temp_time, &systime); /轉(zhuǎn)換成系統(tǒng)時間 printf(%d/%d/%d ,systime.wYear,systime.wMonth,systime.wDay);/年月日printf(%d:%d:%d ,systime.wHour,systime.wMinute,systime.wSecond);/時分秒printf(%sn,find_file-cFileName);/CloseHandle(obj_dir);Fi

29、ndClose(obj_handle); /API函數(shù)FindClose/返回上一個目錄SetCurrentDirectory(lpFileName); /API函數(shù)SetCurrentDirectory/參數(shù)個數(shù)大于等于3,警告錯誤else if(*num) = 3)printf(語法格式不正確!n);/刪除一個存在的目錄,如果不存在,刪除失敗!void my_rd(char *a,int *num)if(*num) = 2)if(!RemoveDirectory(a1) /API函數(shù)RemoveDirectoryprintf(刪除目錄失敗,可能沒有此目錄!n); else printf(刪

30、除目錄成功!n); else if(*num) = 1)printf(正確語法格式為:n);printf(t myrd directoryn);elseprintf(語法格式不正確!n);/打開一個存在的目錄,如果不存在,打開失敗!void my_cd(char *a,int *num)if(*num) =2)if(!SetCurrentDirectory(a1) /API函數(shù)SetCurrentDirectoryprintf(打開目錄失敗,可能沒有此目錄!n); elseprintf(打開目錄成功!n); else if(*num) = 1)printf(正確語法格式為:n);printf(

31、t mycd directoryn);elseprintf(語法格式不正確!n);/創(chuàng)建一個目錄void my_md(char *a,int *num)if(*num) = 2)if(!CreateDirectory(a1,NULL) printf(創(chuàng)建新目錄失敗!);else printf(創(chuàng)建新目錄成功n); else if(*num) = 1)printf(正確語法格式為:n);printf(t mymd directoryn);else printf(語法格式不正確!n);/刪除一個存在的文件,如果不存在,刪除文件失敗!void my_del(char *a,int *num)if(*

32、num) = 2)if(!DeleteFile(a1) /API函數(shù)DeleteFileprintf(刪除文件失敗!n); else printf(刪除文件成功!n); else if(*num) = 1)printf(正確語法格式為:n);printf(t mydel filen);else printf(語法格式不正確!n);/移動一個存在的文件,否則,移動失敗void my_move(char *a,int *num)if(*num) = 3)if(!MoveFile(a1,a2) /API函數(shù)MoveFileprintf(移動文件失敗,文件可能不存在!n);elseprintf(文件移

33、動成功!n);else if(*num) = 1)printf(正確語法格式為:n);printf(t mymove filen);else printf(語法格式不正確!n);/重命名一個已經(jīng)存在的文件,否則,重命名失敗!void my_ren(char *a,int *num)if(*num) = 3) if(!MoveFile(a1,a2) /API函數(shù)MoveFileprintf(重命名文件失敗,文件可能不存在!n); else printf(重命名文件成功!n);else if(*num) = 1)printf(正確語法格式為:n);printf(t myren filen);els

34、e printf(語法格式不正確!n);/拷貝文件void my_xcopy(char *a,int *num)if(*num) = 3)if(!CopyFile(a1,a2,1) /API函數(shù)CopyFileprintf(拷貝文件失敗,文件可能不存在!n);else printf(拷貝文件成功!n);else if(*num) = 1)printf(正確語法格式為:n);printf(t myxcopy filen);else printf(語法格式不正確!n);/顯示日期void my_date()system( date);/顯示時間void my_time()system( time)

35、;void my_sort(char *a,int *num)int lnum=0,min;char line100100,tmp100;/行數(shù)、每行字符數(shù)string s100;ifstream infile(a1);if(!infile)cout無法打開文件a1endl;elsewhile(!infile.eof()infile.getline(linelnum,100,n);lnum+;/記錄總行數(shù)infile.close();for(int x=0;xlnum-1;x+)min=x;for(int y=x+1;ylnum;y+)if(strcmp(liney,linemin)0)min

36、=y;if(min!=x)for(int a=0;a100;a+)tmpa=linexa;linexa=linemina;linemina=tmpa;ofstream outfile(a1,ios:out);if(!outfile)cout文件寫入失敗endl;elsefor(int c=0;clnum;c+)outfilelinecendl;outfile.close();/屏顯void my_type(char *a,int *num)char ch1000;ifstream infile(a1);if(!infile)cout無法打開文件a1endl;elseinfile.getline

37、(ch,1000,EOF);coutchendl;infile.close();/分屏顯示void my_more(char *a,int *num)int quit=0;char ch1000;ifstream infile(a1);if(!infile)cout無法打開文件a1endl;elseint count1=0,count2=0,l;/count1用于顯示文件總行數(shù),count2用于顯示當(dāng)前讀到的文件行數(shù)while(!infile.eof()infile.getline(ch,1000,n);count1+;infile.clear();/不用clear,之前的文件狀態(tài)屬性不會變化

38、infile.seekg(0,ios:beg);/把流指針重新定位到文件頭if(count124)for(l=0;lcount1;l+)infile.getline(ch,1000,n);coutchendl;elsefor(l=0;l24;l+)infile.getline(ch,1000,n);coutchendl;count2+;cout-More-int(double)count2/count1*100)%;while(!infile.eof()&(quit!=113)quit=getchar();if(cin.get()=n)infile.getline(ch,1000,n);cou

39、tchendl;count2+;cout-More-int(double)count2/count1*100)0&(count1-count2)24)for(l=0;l(count1-count2);l+)infile.getline(ch,1000,n);coutch24)for(l=0;l24;l+)infile.getline(ch,1000,n);coutchendl;count2+;cout-More-int(double)count2/count1*100)%n;if(int(double)count2/count1*100)=100)coutendl;break;infile.c

40、lose();void my_cls()system( cls );/退出,后面可帶退出參數(shù)void my_exit(char *a,int *num)int i;for(i=1; i (*num);i+)printf(%s ,ai);printf(n);exit(1);(2)主函數(shù)程序:#include#include#include#include#include#includefunction.h/*/ 主程序/*int main()printf(t=n);/printf(t* 這是29題的文件和目錄操作系統(tǒng)課程設(shè)計! *n);/ printf(t* OPERATING ORDER *n

41、);/ printf(t* 瀏覽文件和目錄: mydir *n);/ printf(t* 刪除目錄 : myrd *n);/ printf(t* 打開目錄 : mycd *n);/ printf(t* 建立目錄 : mymd *n);/ printf(t* 刪除文件 : mydel *n);/ printf(t* 移動文件 : mymove *n);/ printf(t* 重命名文件 : myren *n);/ printf(t* 拷貝文件 : myxcopy *n);/printf(t* 時間查詢 : mytime *n);/printf(t* 日期查詢 : mydata *n);/prin

42、tf(t* 文本排序 : mysort *n);/printf(t* 分屏顯示 : mymore *n);/printf(t* 文本輸出 : mytype *n);/printf(t* 清除屏幕 : mycls *n);/printf(t* 退出 : myexit *n);/ printf(t=n);/printf(n);/獲取當(dāng)前路徑char *current_path = (char*)malloc(64*sizeof(char);GetCurrentDirectory(64,current_path); /API函數(shù)GetCurrentDirectoryprintf(%s-,curren

43、t_path);while(1)/定義一個輸入命令緩沖區(qū),存儲輸入的一個或多個命令參數(shù)char *buffer = (char*)malloc(1024*sizeof(char);/存放具體輸入的各命令參數(shù),參數(shù)最大數(shù)目為10char *parameter10;/存放參數(shù)個數(shù)int *para_num = (int*)malloc(sizeof(int);/輸入命令gets(buffer);/將buffer中各參數(shù)存儲到paremeter中store_parameter(buffer,parameter,para_num);/解釋各命令,并執(zhí)行!if(strcmp(parameter0,myd

44、ir)=0 | strcmp(parameter0,MYDIR)=0)my_dir(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,myrd)=0 | strcmp(parameter0,MYRD)=0 )my_rd(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,mycd)=0 | strcmp(parameter0,MYCD)=0 )my_cd(parameter,para_num);goto b

45、ack_currentdirectory;else if(strcmp(parameter0,mymd)=0 | strcmp(parameter0,MYMD)=0 )my_md(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,mydel)=0 | strcmp(parameter0,MYDEL)=0)my_del(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,mymove)=0 | strcmp(

46、parameter0,MYMOVE)=0)my_move(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,myren)=0 | strcmp(parameter0,MYREN)=0)my_ren(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,myxcopy)=0 | strcmp(parameter0,MYXCOPY)=0)my_xcopy(parameter,para_num);goto back_currentdirectory;else if(strcmp(parameter0,mydate)=0 | strcmp(parameter0,MYDATE)=0)

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!