[計(jì)算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報(bào)告
《[計(jì)算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報(bào)告》由會員分享,可在線閱讀,更多相關(guān)《[計(jì)算機(jī)軟件及應(yīng)用]Windows命令接口實(shí)驗(yàn)報(bào)告(37頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 操作系統(tǒng)課程設(shè)計(jì)報(bào)告 作者:半童 合肥工業(yè)大學(xué) 獨(dú)立之精神,自由之思想! Windows命令接口實(shí)驗(yàn) 一.實(shí)驗(yàn)題目: 第29題——操作系統(tǒng)接口:Windows命令接口。(3人) 4分 二.實(shí)驗(yàn)任務(wù): 1.設(shè)計(jì)要求: l 為Windows操作系統(tǒng)建立兼容的DOS命令接口,文件與目錄命令; l 具體命令:DIR, RD,CD,MD, DEL,MOVE,REN, COPY, XCOPY, TIME, DATE,SORT,重定向命令>,<.,|,MORE,TY
2、PE ,CLS,EXIT命令格式可參照Windows的CMD.EXE或MS-DOS提供的命令; l 設(shè)計(jì)命令的名稱、參數(shù)等格式; l 可以字符形式接收命令,執(zhí)行命令,然后顯示命令執(zhí)行結(jié)果. 2.設(shè)計(jì)目的: (1)DIR命令:能夠正確顯示一個(gè)目錄里面的子目錄和文件 (2)RD命令:能夠刪除一個(gè)空目錄 (3)CD命令:能夠打開一個(gè)存在的目錄 (4)MD命令:能夠建立一個(gè)空目錄 (5)DEL命令:能夠刪除一個(gè)文件 (6)MOVE命令:能夠移動(dòng)一個(gè)目錄或文件 (7)REN命令:能夠重命名一個(gè)目錄或文件 (8)XCOPY命令:能夠拷貝整個(gè)目錄 (8)TIME命令:顯示系統(tǒng)的時(shí)
3、間 (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ī)一臺 386以上 2. Microsoft Visual Studio2010 軟件 3. 實(shí)現(xiàn)語言:C語言 四:原理及算法描述: 1.基本原理: 用戶利用聯(lián)機(jī)命令接口實(shí)現(xiàn)與機(jī)器的交互時(shí),先在終端的鍵盤上打入所需的命令,由終端處理程序接受該命令,并將它顯示在終端屏幕上。當(dāng)一條命令輸入完后,由命令解釋程序?qū)γ钸M(jìn)行分析,然后執(zhí)行
4、相應(yīng)命令的處理程序。 2.算法描述: (1)存貯輸入的各命令參數(shù) void store_parameter(char *buffer,char *parameter[10],int *para_num) 說明:將輸入的命令一條一條存儲parameter[10]中,最大允許的參數(shù)個(gè)數(shù)為10個(gè)。 算法描述:為buffer設(shè)置一個(gè)指針buffer_point,如果該指針向下移動(dòng),碰到空格,繼續(xù)向下移動(dòng),直到遇到字符,讀進(jìn)各存儲變量中parameter[10],最后如果遇到’\0’,則結(jié)束。 (2)瀏覽一個(gè)路徑下的目錄和文件 void my_dir(char *a[],int *
5、num) 說明:該命令只能顯示當(dāng)前目錄中的文件和子目錄和當(dāng)前目錄中子目錄中的文件和子目錄。并無如Windows中命令參數(shù)如此豐富。主要是考慮其復(fù)雜性,予以簡化了。 算法描述:如果只接受到mydir命令,后面并無其他參數(shù)時(shí),顯示當(dāng)前目錄下文件和子目錄。如果接受到兩個(gè)參數(shù),如果第二個(gè)參數(shù)(表示當(dāng)前目錄中子目錄)存在,則顯示該目錄下文件和子目錄,如果不存在,則報(bào)錯(cuò)。 (3)刪除一個(gè)存在的目錄,如果不存在,刪除失敗! void my_rd(char *a[],int *num) 算法描述:如果該目錄存在且為空目錄,則刪除,否則失敗。 (4)打開一個(gè)存在的目錄,如果不存在,打開失敗!
6、 void my_cd(char *a[],int *num) 算法描述:如果接受到兩個(gè)參數(shù),第二個(gè)參數(shù)表示要打開的目錄。如果該目錄存在,則成功,否則失敗。 (5)創(chuàng)建一個(gè)目錄 void my_md(char *a[],int *num) 算法描述:如果接受到兩個(gè)參數(shù),第二個(gè)參數(shù)表示要建立的目錄。如果存在該目錄,失敗,否則成功。 (6)刪除一個(gè)存在的文件,如果不存在,刪除文件失敗! void my_del(char *a[],int *num) 算法描述:如果接受到兩個(gè)參數(shù),第二個(gè)參數(shù)表示要?jiǎng)h除的文件。如果該文件存在,則刪除成功,否則失敗。 (7)移動(dòng)一個(gè)存在的文件,否則,移
7、動(dòng)失敗 void my_move(char *a[],int *num) 算法描述:如果接受到三個(gè)參數(shù),其中第二個(gè)參數(shù)表示存在的文件或目錄,第三個(gè)參數(shù)表示將要移動(dòng)到的參數(shù)。如果第二個(gè)參數(shù)不存在,則失敗,存在,成功。 (8)重命名一個(gè)已經(jīng)存在的文件,否則,重命名失敗! void my_ren(char *a[],int *num) 算法描述:如果接受到三個(gè)參數(shù),其中第二個(gè)參數(shù)表示將要重命名的目錄或文件,第三個(gè)參數(shù)表示將要重命名的新的名字。 (9)拷貝文件 void my_xcopy(char *a[],int *num) 算法描述:如果接受到三個(gè)參數(shù),其中第二個(gè)參數(shù)表示存在的目錄
8、或文件,第三個(gè)表示將要拷貝成的目錄或文件。 (10)顯示系統(tǒng)的時(shí)間 void my_time(char *a[],int *num) 算法描述:如果接受到一個(gè)參數(shù),調(diào)用系統(tǒng)的時(shí)間函數(shù),參數(shù)正確則輸出系統(tǒng)時(shí)間。 (11)顯示系統(tǒng)的日期 void my_date(char *a[],int *num) 算法描述:如果接受到一個(gè)參數(shù),調(diào)用系統(tǒng)的日期函數(shù),參數(shù)正確則輸出當(dāng)時(shí)日期。 (12)對文本內(nèi)容進(jìn)行分類 void my_sort(char *a[],int *num) 算法描述:如果接受到兩個(gè)參數(shù),第二個(gè)參數(shù)表示要分類的文本文檔。如果該文件存在,則分類成功,否則失敗。 (13)
9、逐步分屏顯示文本內(nèi)容 void my_more(char *a[],int *num) 算法描述:如果接受到兩個(gè)參數(shù),第二個(gè)參數(shù)表示要分屏顯示的文本文檔。如果該文件存在,則分屏顯示成功,否則失敗。 (14)顯示文本內(nèi)容 void my_type(char *a[],int *num) 算法描述:如果接受到兩個(gè)參數(shù),第二個(gè)參數(shù)表示要顯示的文本文檔。如果該文件存在,則顯示成功,否則失敗。 (15)清除屏幕顯示 void my_cls(char *a[],int *num) 算法描述:如果接受到一個(gè)參數(shù),調(diào)用系統(tǒng)的清屏函數(shù),參數(shù)正確則清除屏幕的輸入輸出。 (16)退出,后面可帶退出
10、參數(shù) void my_exit(char *a[],int *num) 算法描述:可以接受小于10個(gè)的參數(shù),其中第一個(gè)參數(shù)表示退出。后面幾個(gè)參數(shù)一起表示輸出的信息。 五.設(shè)計(jì)思路描述: 1.本課程設(shè)計(jì)調(diào)用到的API函數(shù)有: (1)typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DW
11、ORD nFileSizeLow; DWORD dwOID; TCHAR cFileName[MAX_PATH]; } WIN32_FIND_DATA; 該結(jié)構(gòu)存放著所找到文件的詳細(xì)信息,通過第一個(gè)字段,我們可以判斷找到的文件是目錄還是文件,通過cFileName可以獲得該文件的文件名,繼而可以對找到的文件進(jìn)行操作。 (2)HANDLE FindFirstFile(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData ); 根據(jù)文件名查找文件,如執(zhí)行成功,返回一個(gè)搜索句柄。如果出錯(cuò),返回一個(gè)INVALID_HANDLE
12、_VALUE常數(shù)。應(yīng)該用FindClose函數(shù)關(guān)閉這個(gè)句柄。 (3)BOOL FindNextFile( HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData );該函數(shù)根據(jù)調(diào)用FindFirstFile函數(shù)返回的句柄查找下一個(gè)文件,返回值非零表示成功,零表示失敗。如不再有與指定條件相符的文件,會將GetLastError設(shè)置成ERROR_NO_MORE_FILES。 (4)BOOL FindClose( HANDLE hFindFile );該函數(shù)用來關(guān)閉FindFirstFile函數(shù)創(chuàng)建的一個(gè)搜索句柄。 (5)HANDLE Creat
13、eFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORDdwCreationDispostion , DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); 該函數(shù)創(chuàng)建,打開,或截取一個(gè)文件。它返回一個(gè)對象訪問句柄。也可以返回和打開一個(gè)目錄句柄。 (6)BOOL GetFileTime( HANDLE hFile, LPFILETIME lpCreationTime,
14、 LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime );該函數(shù)得到一個(gè)文件創(chuàng)建,最近訪問,最近修改日期,時(shí)間。 (7)GetCurrentDirectory(DWORD nBufferLength,LPWSTR lpBuffer );該函數(shù)得到當(dāng)前目錄,存放在lpBuffer中。 (8) BOOL RemoveDirectory(LPCTSTR lpPathName);該函數(shù)一個(gè)存在的空目錄。 (9)BOOL SetCurrentDirectory(LPCWSTR lpPathName);該函數(shù)設(shè)置當(dāng)前目錄。 (10BOOL
15、CreateDirectory(LPCTSTRlpPathName,LPSECURITY_ATTRIBUTES lpSecurityAttributes ); 該函數(shù)創(chuàng)建一個(gè)新目錄。如果該文件存在,創(chuàng)建失敗。 (11)BOOL DeleteFile(LPCTSTR lpFileName);該函數(shù)刪除一個(gè)存在的文件。 (12)BOOL MoveFile(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName);該函數(shù)移動(dòng)或重命名一個(gè)文件或目錄(不管這個(gè)目錄里是否由子目錄或文件)。 (13)BOOL CopyFile(LPCTSTR lpExist
16、ingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists );該函數(shù)拷貝一個(gè)存在的文件或新文件。 (14)BOOL TimeFile(LPCTSTR lpExistingFileName);該函數(shù)調(diào)用輸出系統(tǒng)地時(shí)間。 (15)BOOL DateFile(LPCTSTR lpExistingFileName);該函數(shù)調(diào)用輸出系統(tǒng)地日期。 (16)BOOL SortFile(LPCTSTR lpExistingFileName);該函數(shù)打開文本文檔,將內(nèi)容進(jìn)行分類。 (17)BOOL MoreFile(LPCTSTR lpExisting
17、FileName);該函數(shù)打開文本文檔,將內(nèi)容進(jìn)行分屏顯示。 (18)BOOL TypeFile(LPCTSTR lpExistingFileName); 該函數(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)。其中涉及到一個(gè)文件或目錄時(shí)間日期的獲取和轉(zhuǎn)換,這點(diǎn)是需要注意的。在源程序中,我已經(jīng)給出詳細(xì)的注解。
18、還有,最后結(jié)束時(shí)得關(guān)閉創(chuàng)建文件的句柄和搜索句柄。這點(diǎn)非常重要。 3. 流程圖: 開始 輸入一個(gè)完整的命令 parameter[0]==”mydir” or “MYDIR” 執(zhí)行my_dir()函數(shù) parameter[0]==”myrd” or “MYRD” 執(zhí)行my_rd()函數(shù) parameter[0]==”mycd” or”MYCD” 執(zhí)行my_cd()函數(shù) parameter[0]==”mymd” or”MYMD” 執(zhí)行my_md()函數(shù) parameter[0]==”mydel” or”MYDEL” 執(zhí)行my_del()函數(shù) parameter[0
19、]==”mymove” or”MYMOVE” 執(zhí)行my_move()函數(shù) parameter[0]==”myren” or”MYREN” 執(zhí)行my_ren()函數(shù) parameter[0]==”myxcopy” or”MYXCOPY” 執(zhí)my_xcopy()函數(shù) parameter[0]==”myexit” or”MYEXIT” 執(zhí)行my_exit()函數(shù) 返回當(dāng)前目錄 存儲各命 令參數(shù) parameter[0]==”mytime” or”MYTIME” parameter[0]==”mydate” or”MYDATE” par
20、ameter[0]==”mysort” or”MYSORT” parameter[0]==”mymore” or”MYMORE” parameter[0]==”myxtype” or”MYTYPE” parameter[0]==”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)測試源程序是否正常,測試通過即可運(yùn)行Microsoft Visual Studio201
21、0 軟件 讓源程序生成執(zhí)行operating_system.exe,如圖: (2)將生成的operating_system.exe文件放置于要操作的文件夾內(nèi),并打開準(zhǔn)備進(jìn)行操作,如圖: 原目錄列表: (3)使用mydir命令正確顯示一個(gè)目錄里面的子目錄和文件,如圖: (4)使用myrd命令能夠刪除一個(gè)空目錄,如圖: (5)使用mycd能夠打開一個(gè)存在的目錄,如圖: (6)使用mymd命令能夠建立一個(gè)空目錄,如圖: (7)使用mydel命令能夠刪除一個(gè)文件,刪除后與前面的源目錄參照可知其刪除功能,如圖: (8)使用mymove命令能夠移動(dòng)一
22、個(gè)目錄或文件,移動(dòng)后與前面的源目錄參照可知其移動(dòng)功能,如圖: (9)使用myren命令能夠重命名一個(gè)目錄或文件,命名后與前面的源目錄參照可知其命名功能,如圖: (10)使用myxcopy命令能夠拷貝整個(gè)目錄,拷貝后與前面的源目錄參照可知其拷貝功能 (11)使用mytime命令能夠顯示系統(tǒng)的時(shí)間,如圖: (12)使用mydate命令能夠顯示系統(tǒng)的日期,如圖: (13)使用mysort命令能夠?qū)ξ谋緝?nèi)容進(jìn)行分類,分類后與前面的源目錄參照可知其分類功能,該功能是以首字母順序的方式進(jìn)行重排,如圖: (14)使用mymore命令能夠?qū)ξ谋緝?nèi)容進(jìn)行分屏顯示
23、,按Enter鍵可以逐步顯示文檔內(nèi)容,如圖:
(15)使用mytype命令能夠顯示文本內(nèi)容,如圖:
(16)使用CLS命令能夠清除屏幕的顯示內(nèi)容,如圖:
(17)使用EXIT命令退出operating_system.exe
六.程序清單:
(1)function.h 頭文件:
//****************************************************************************************
//存貯輸入的各命令參數(shù)
#include
24、nclude
25、 //如果為空格,指針繼續(xù)移進(jìn) while(*buffer_point == ) { buffer_point++; } //如果不是空格,讀進(jìn)變量存儲區(qū) while(*buffer_point != && *buffer_point != \0) { *(parameter[(*para_num)]+j) = *buffer_point; buffer_point++; j++; } *(parameter[(*para_num)]+j) = \0; } } //**************
26、*********************************************************************** //瀏覽一個(gè)路徑下的目錄和文件 void my_dir(char *a[],int *num) { //瀏覽當(dāng)前目錄文件 if( (*num) == 1) { HANDLE obj_handle; char *lpFileName = (char*)malloc(64*sizeof(char)); WIN32_FIND_DATA* find_file = new WIN32_FIND_DATA(); //API函
27、數(shù)WIN32_FIND_DATA FILETIME lpCreationTime,lpLastAccessTime,lpLastWriteTime;//創(chuàng)建時(shí)間,最近訪問時(shí)間,最近修改時(shí)間 SYSTEMTIME systime;//定義系統(tǒng)時(shí)間 //獲取當(dāng)前目錄 GetCurrentDirectory(64,lpFileName); //API函數(shù)GetCurrentDirectory strcat(lpFileName,"\\*.*"); obj_handle = FindFirstFile(lpFileName,find_file);
28、//obj_handle初始化 API函數(shù)FindFirstFile(2) if(FindFirstFile(lpFileName, find_file) != INVALID_HANDLE_VALUE) //API函數(shù)FindFirstFile(2) { while (FindNextFile(obj_handle, find_file)) //API函數(shù)FindNextFile { HANDLE obj_dir = CreateFile(find_file->cFileName,GENERIC_READ,FILE_SHARE_REA
29、D | FILE_SHARE_DELETE \ |FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS, NULL); //API函數(shù)CreateFile if(GetFileTime(obj_dir,&lpCreationTime,&lpLastAccessTime,&lpLastWriteTime)) //API函數(shù)GetFileTime { FILETIME temp_time; FileTimeToLocalFil
30、eTime(&lpLastWriteTime, &temp_time); // 轉(zhuǎn)換成本地時(shí)間 FileTimeToSystemTime(&temp_time, &systime); // 轉(zhuǎn)換成系統(tǒng)時(shí)間格式 } printf("%d/%d/%d ",systime.wYear,systime.wMonth,systime.wDay);//年月日 printf("%d:%d:%d ",systime.wHour,systime.wMinute,systime.wSecond);//時(shí)分秒 printf("%s\n",fin
31、d_file->cFileName);// //printf("%d ",find_file->dwFileAttributes); CloseHandle(obj_dir);//API函數(shù)DWORD(1) } } FindClose(obj_handle); //API函數(shù)FindClose } //瀏覽其中目錄文件 else if((*num) == 2) { HANDLE obj_handle; char *lpFileName = (char*)malloc(64*sizeof(char)); cha
32、r *next_dir = (char*)malloc(64*sizeof(char)); WIN32_FIND_DATA* find_file = new WIN32_FIND_DATA(); //API函數(shù)WIN32_FIND_DATA FILETIME lpCreationTime,lpLastAccessTime,lpLastWriteTime;//創(chuàng)建時(shí)間,最近訪問時(shí)間,最近修改時(shí)間 SYSTEMTIME systime;//定義系統(tǒng)時(shí)間 WIN32_FIND_DATA* fd = new WIN32_FIND_DATA(); //API函數(shù)WIN3
33、2_FIND_DATA GetCurrentDirectory(64,lpFileName); //API函數(shù)GetCurrentDirectory //打開其中的某一個(gè)目錄 if(!SetCurrentDirectory(a[1])) //API函數(shù)SetCurrentDirectory printf("瀏覽目錄失敗,可能沒有此目錄!\n"); else { GetCurrentDirectory(64,next_dir); //API函數(shù)GetCurrentDirectory strcat(next
34、_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ù)FindNextFile { HANDLE obj_dir
35、 = 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ù)CreateFile if(GetFileTime(obj_dir,&lpCreationTime,&lpLastAccessTime,&lpLastWriteTime)) //API函數(shù)GetFileTime
36、 { FILETIME temp_time; //臨時(shí)變量 FileTimeToLocalFileTime(&lpLastWriteTime,&temp_time); FileTimeToSystemTime(&temp_time, &systime); //轉(zhuǎn)換成系統(tǒng)時(shí)間 } printf("%d/%d/%d ",systime.wYear,systime.wMonth,systime.wDay);//年月日 printf("%d:%d:%d ",systime.wHour,systime.wMin
37、ute,systime.wSecond);//時(shí)分秒 printf("%s\n",find_file->cFileName);// CloseHandle(obj_dir); } } FindClose(obj_handle); //API函數(shù)FindClose //返回上一個(gè)目錄 SetCurrentDirectory(lpFileName); //API函數(shù)SetCurrentDirectory } //參數(shù)個(gè)數(shù)大于等于3,警告錯(cuò)誤 else if((*num) >= 3) printf("語法格式
38、不正確!\n"); } //刪除一個(gè)存在的目錄,如果不存在,刪除失敗! void my_rd(char *a[],int *num) { if((*num) == 2) { if(!RemoveDirectory(a[1])) //API函數(shù)RemoveDirectory printf("刪除目錄失敗,可能沒有此目錄!\n"); else printf("刪除目錄成功!\n"); } else if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t
39、 myrd directory\n"); } else printf("語法格式不正確!\n"); } //打開一個(gè)存在的目錄,如果不存在,打開失敗! void my_cd(char *a[],int *num) { if((*num) ==2) { if(!SetCurrentDirectory(a[1])) //API函數(shù)SetCurrentDirectory printf("打開目錄失敗,可能沒有此目錄!\n"); else printf("打開目錄成功!\n"); } else
40、if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t mycd directory\n"); } else printf("語法格式不正確!\n"); } //創(chuàng)建一個(gè)目錄 void my_md(char *a[],int *num) { if((*num) == 2) { if(!CreateDirectory(a[1],NULL)) printf("創(chuàng)建新目錄失敗!"); else printf("創(chuàng)建新目錄成功\n"); } else
41、 if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t mymd directory\n"); } else printf("語法格式不正確!\n"); } //刪除一個(gè)存在的文件,如果不存在,刪除文件失敗! void my_del(char *a[],int *num) { if((*num) == 2) { if(!DeleteFile(a[1])) //API函數(shù)DeleteFile printf("刪除文件失敗!\n"); else p
42、rintf("刪除文件成功!\n"); } else if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t mydel file\n"); } else printf("語法格式不正確!\n"); } //移動(dòng)一個(gè)存在的文件,否則,移動(dòng)失敗 void my_move(char *a[],int *num) { if((*num) == 3) { if(!MoveFile(a[1],a[2])) //API函數(shù)MoveFile printf("移動(dòng)文件失敗,文件可
43、能不存在!\n"); else printf("文件移動(dòng)成功!\n"); } else if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t mymove file\n"); } else printf("語法格式不正確!\n"); } //重命名一個(gè)已經(jīng)存在的文件,否則,重命名失敗! void my_ren(char *a[],int *num) { if((*num) == 3)
44、 { if(!MoveFile(a[1],a[2])) //API函數(shù)MoveFile printf("重命名文件失敗,文件可能不存在!\n"); else printf("重命名文件成功!\n"); } else if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t myren file\n"); } else printf("語法格式不
45、正確!\n"); } //拷貝文件 void my_xcopy(char *a[],int *num) { if((*num) == 3) { if(!CopyFile(a[1],a[2],1)) //API函數(shù)CopyFile printf("拷貝文件失敗,文件可能不存在!\n"); else printf("拷貝文件成功!\n"); } else if((*num) == 1) { printf("正確語法格式為:\n"); printf("\t myxcopy file\n"); } else pri
46、ntf("語法格式不正確!\n"); } //顯示日期 void my_date() { system( "date"); } //顯示時(shí)間 void my_time() { system( "time"); } void my_sort(char *a[],int *num) { int lnum=0,min; char line[100][100],tmp[100];//行數(shù)、每行字符數(shù) string s[100]; ifstream infile(a[1]); if(!infile) { cout<<"無法打開文件"
47、<
48、t a=0;a<100;a++)
{
tmp[a]=line[x][a];
line[x][a]=line[min][a];
line[min][a]=tmp[a];
}
}
}
ofstream outfile(a[1],ios::out);
if(!outfile)
{
cout<<"文件寫入失敗"< 49、.close();
}
}
}
//屏顯
void my_type(char *a[],int *num)
{
char ch[1000];
ifstream infile(a[1]);
if(!infile)
{
cout<<"無法打開文件"<
- 溫馨提示:
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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案