

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</b></p><p> 課程名稱____操作系統(tǒng) ________</p><p> 題目名稱___文件管理系統(tǒng)___ _ </p><p> 學(xué)生學(xué)院____計算機學(xué)院________</p><p> 專業(yè)班級_10級計算機科學(xué)與技術(shù)5班</p>
2、;<p> 學(xué) 號_ __________</p><p> 學(xué)生姓名____ ___________</p><p> 指導(dǎo)教師_ _ ______ _</p><p> 2013年 1 月 10 日</p><p> 一、課程設(shè)計題目和目的</p><p>
3、通過模擬文件系統(tǒng)的實現(xiàn),深入理解操作系統(tǒng)中文件系統(tǒng)的理論知識, 加深對教材中的重要算法的理解。同時通過編程實現(xiàn)這些算法,更好地掌握操作系統(tǒng)的原理及實現(xiàn)方法,提高綜合運用各專業(yè)課知識的能力。</p><p><b> 二、課程設(shè)計要求</b></p><p> 通過課程設(shè)計,要求學(xué)生主要掌握如下內(nèi)容:</p><p> (1)設(shè)計多用戶文件
4、系統(tǒng),采用多級文件目錄。</p><p> (2)至少要有十個以上的實用命令,應(yīng)設(shè)置文件保護措施。</p><p> (3)設(shè)計一個較實用的用戶界面,方便用戶使用,界面要為用戶提供足夠的選擇信息,不需用戶打入打入冗長的命令。</p><p><b> 三、程序設(shè)計思想</b></p><p> 閱讀操作系統(tǒng)方面的
5、書籍,了解操作系統(tǒng)的文件系統(tǒng)原理。結(jié)合分析課程設(shè)計要求,確定實體以及它們之間的關(guān)系。實體關(guān)系有三張表(磁盤空間分配表、文件表、打開文件表)、一個模擬磁盤的數(shù)組、命令服務(wù)和用戶構(gòu)成。用戶負(fù)責(zé)輸入命令。命令服務(wù)實現(xiàn)命令的解釋、命令檢查、命令幫助以及調(diào)用相關(guān)模塊執(zhí)行相應(yīng)的命令功能。</p><p> 此課程設(shè)計把TXT文本作來研究對象來模擬操作系統(tǒng)的文件系統(tǒng)工作過程。所以用一個字符串?dāng)?shù)組來模擬磁盤空間,顧名思義,模擬
6、磁盤提供字符的存儲服務(wù)。</p><p> 磁盤空間分配表,采用鏈表結(jié)構(gòu),每個節(jié)點保存模擬磁盤的一個邏輯塊的信息,包括塊的最大長度,文件占用長度,占用標(biāo)志。如果占用標(biāo)志為0,即該空間可分配給文件。初始化磁盤空間分配表鏈表,首先把整個模擬磁盤作來一塊,并置占用位為0.當(dāng)有進(jìn)程申請磁盤空間時,從頭開始遍歷,檢查占用位,如果該塊為可分配,則檢查塊大小,若塊長度大于或等于申請空間大小,則把塊的前一部分(等于申請大小)分
7、配給文件,并置標(biāo)志位為占用。剩下的大小作來一個新塊,作來一個新節(jié)點插入到原節(jié)點的后邊,標(biāo)志位為可用。這樣就實現(xiàn)了模擬磁盤的線性分配。</p><p> 文件表,由于模擬文件系統(tǒng)的文件數(shù)量不多,故文件表采用線性表來存儲。線性表每個結(jié)點存儲一個文件的信息。</p><p> 打開文件表,采用數(shù)組形式存儲打開的文件,數(shù)組每個元素保存一個打開文件的信息。文件信息和文件表中的文件信息類似。<
8、;/p><p> 構(gòu)造這些實體的關(guān)系圖,數(shù)據(jù)流圖、程序流程圖來進(jìn)行具體的設(shè)計。</p><p><b> 四、文件系統(tǒng)的實現(xiàn)</b></p><p><b> 1.數(shù)據(jù)結(jié)構(gòu)設(shè)計</b></p><p> 通過分析課程設(shè)計要求,具體設(shè)計出如下數(shù)據(jù)結(jié)構(gòu):</p><p>
9、char disk[10000]; //模擬磁盤空間</p><p> 通過一個字符串?dāng)?shù)組來模擬磁盤空間,數(shù)組最大長度設(shè)置為10000,即磁盤空間最大容量為10000字節(jié)。作為模擬文件系統(tǒng),主要理解文件系統(tǒng)的原理,可以把文本文件作為對象來研究。故磁盤空間用一個字符串?dāng)?shù)組來模擬.</p><p> struct freeDiskTable //碰盤空間分配表</p>&l
10、t;p><b> {</b></p><p> int start; //開始位置</p><p> int length; //占用長度</p><p> int maxLength; //最大長度</p><p> int useFlag; //使用標(biāo)志,1為占用,0為空閑</p&
11、gt;<p><b> };</b></p><p> 通過結(jié)構(gòu)體,將磁盤空間使用情況(文件開始位置、占用長度、最大長度、使用標(biāo)志)結(jié)合在一體。一個結(jié)構(gòu)體變量記錄磁盤一個塊的信息。結(jié)構(gòu)體作為鏈表的一個節(jié)點,設(shè)置一個鏈表將節(jié)點連接起來,構(gòu)成一個磁盤空間分配表。</p><p> struct fileTable //文件表</p>
12、<p><b> {</b></p><p> char fileName[20]; //文件名字</p><p> int start; //開始位置</p><p> int length; //文件長度</p><p> int maxLength;
13、 //最大長度</p><p> char fileKind[8]; //文件種類,此默認(rèn)為txt</p><p> struct tm *timeinfo; //文件創(chuàng)建時間</p><p><b> };</b></p><p> 通過結(jié)構(gòu)體,將文件名字、文件在磁盤的開始位置、文件長度、文件最大長度、
14、文件類型、創(chuàng)建時間結(jié)合在一起。文件類型,本模擬程序使用txt類型。設(shè)置一個線性表來存儲文件。</p><p> struct openFileTable // 打開文件表</p><p><b> {</b></p><p> char fileName[20]; //文件名字</p><p> char
15、fileKind[8]; //文件類型</p><p> int start; //文件開始位置</p><p> int length; //文件長度</p><p> int maxLength; //最大長度</p><p> int openCount; //
16、打開文件的進(jìn)程數(shù)</p><p> struct tm *timeinfo; //文件創(chuàng)建時間</p><p><b> };</b></p><p> 通過結(jié)構(gòu)體存儲打開的文件信息,包括文件名字、文件類型、文件開始位置、文件長度、最大長度、文件打開數(shù)和文件創(chuàng)建時間。通過結(jié)構(gòu)體數(shù)組存儲所有打開文件信息。</p><p&
17、gt;<b> 2.程序功能圖</b></p><p> 文件系統(tǒng)提供的文件操作有建立文件(create)、刪除文件(delete)、條件讀取文件(read)、寫入文件(write)、查詢文件的屬性(ask)、顯示文件所有內(nèi)容(type)、重命名文件(ren)、關(guān)閉文件(close)??梢酝ㄟ^鍵盤輸入命令來模擬文件的操作。通過exit命令退出程序。</p><p>
18、;<b> 3.實體關(guān)系圖</b></p><p> 命令服務(wù)使得用戶能夠輸入命令,在需要時提供命令的幫助。同時能夠分析命令,調(diào)用相應(yīng)的命令模塊對模擬磁盤、磁盤空間分配表、文件表、打開文件表進(jìn)行操作。磁盤空間分配表記錄模擬磁盤的使用情況。文件表記錄文件的信息和在磁盤里的位置等信息。打開文件表記錄已打開的文件,對應(yīng)文件表中的文件信息,和文件表里的文件節(jié)點類似,記錄了文件在模擬磁盤中的信息。
19、</p><p><b> 4.數(shù)據(jù)流圖</b></p><p><b> 5.程序流程圖</b></p><p> 模擬文件系統(tǒng)提供的文件操作有建立(create),讀取(read),顯示(type),刪除(detele),寫入(write),關(guān)閉(close),重命名(ren)和查詢(ask)。在模擬程序中可從鍵
20、盤上輸入文件操作命令來模擬各用戶程序中所調(diào)用的各種文件操作結(jié)束命令(exit)停止程序的執(zhí)行。</p><p><b> 五:程序運行界面</b></p><p> 用戶可以通過數(shù)字選擇進(jìn)入相應(yīng)的操作</p><p> 從1-10功能分別是:</p><p><b> 創(chuàng)建文件</b><
21、;/p><p><b> 刪除文件</b></p><p><b> 打開文件</b></p><p><b> 寫文件</b></p><p><b> 定位文件</b></p><p><b> 修改文件屬性&l
22、t;/b></p><p><b> 復(fù)制文件</b></p><p><b> 目錄管理</b></p><p><b> 退出系統(tǒng)</b></p><p> 以下是對系統(tǒng)功能進(jìn)行逐項說明</p><p><b> 1 創(chuàng)建文
23、件</b></p><p> 從圖中可以看出,當(dāng)輸入要創(chuàng)建的文件名和路徑后,盤中出現(xiàn)了這個這個文件。</p><p> 然后系統(tǒng)詢問是否輸入內(nèi)容,選擇是后輸入內(nèi)容+#號結(jié)束。</p><p> 輸入完畢后用記事本打開剛才創(chuàng)建的文件,顯示的就是剛才在文件系統(tǒng)中輸入的內(nèi)容。也可以通過OPEN操作來打開,后面有說明。</p><p&g
24、t;<b> 2 刪除文件</b></p><p> 從圖中可以看出,剛才創(chuàng)建的文件已經(jīng)被刪除。為防止誤操作,刪除前必須先確認(rèn)。</p><p><b> 3 打開文件</b></p><p><b> 4 寫文件</b></p><p> 這個就是往里面寫內(nèi)容。寫入
25、后會覆蓋掉以前的內(nèi)容。</p><p><b> 5 定位文件</b></p><p> 定位文件,也就是設(shè)置文件狀態(tài),1為只讀,2為只寫。</p><p><b> 6 修改文件屬性</b></p><p> 延續(xù)定位操作,可讀的改成可寫,可寫的改成可讀,隨你喜歡。但是只能2選1。<
26、/p><p><b> 7 復(fù)制文件</b></p><p><b> 8 移動文件</b></p><p> 和復(fù)制文件基本一樣,只不過這個是剪切:)</p><p><b> 9 文件目錄管理</b></p><p> 目錄管理里又分多個選項:
27、</p><p><b> 列出目錄</b></p><p><b> 創(chuàng)建目錄</b></p><p><b> 刪除目錄</b></p><p><b> 復(fù)制目錄</b></p><p><b> 移動目錄
28、</b></p><p> 與文件操作形式一樣,只不過操作對象變成了目錄而已,所以不再詳細(xì)說明。</p><p><b> 10 退出系統(tǒng)</b></p><p><b> 心得體會</b></p><p> 通過本次的課程設(shè)計,使我能夠正確運用操作系統(tǒng)課程中所學(xué)的基本理論和知識
29、,加深了對文件系統(tǒng)基本概念的理解,以及磁盤文件系統(tǒng)的文件操作。還有讓我感受挺深的是對軟件工程方法的應(yīng)用。設(shè)計一個軟件,先要做好需求分析,這一點很重要,如果沒有分析好需求,到軟件設(shè)計的最后,發(fā)現(xiàn)所做的功能不符合要求,那么一切都得重做,前面所有的努力都付諸東流。還有比較重要的是,寫好E-R圖,至少畫出語境級的數(shù)據(jù)流圖,以及仔細(xì)畫好程流程圖。在程序設(shè)計的開始,由于分析工作做得不夠深入和細(xì)致,吃了點小苦頭。對于這樣一個小設(shè)計來說,都會吃苦頭,要
30、是大工程更是無法想像,有可能會項目失敗。以后得加強對軟件工程的學(xué)習(xí)。另外在運用C語言的時候,感覺有點生疏,在組織語言時時而出錯,在編程和調(diào)試的過程中,經(jīng)常會出現(xiàn)意想不到的問題,并非每個問題都可以從相關(guān)資料中找到解決方法,有些問題是無法預(yù)料到的,這就需要通過自己理性的分析得出問題的解決方案。</p><p> 在設(shè)計過程中,查詢了不少相關(guān)資料,不斷的發(fā)現(xiàn)問題、提出問題、解決問題。在對自己所編寫的源程序段的糾錯的過
31、程中,使我更好的理解了操作系統(tǒng)中文件系統(tǒng)的理論知識,同時在編程時用到了模塊化的設(shè)計思想,這種編程方法可以使我們的編程變的更簡單,可以使我們的查錯與糾錯變的更方便??偟膩碚f通過這次的設(shè)計的學(xué)習(xí)使我學(xué)到了很多在平時的學(xué)習(xí)中學(xué)不到的很多東西,通過這次課程設(shè)計,使我對操作系統(tǒng)和編程產(chǎn)生興趣,我想我會在這條路上繼續(xù)前進(jìn)下去。我相信,只要不斷的嚴(yán)格要求自己,注意培養(yǎng)自己的思維能力,就一定會有更大更輝煌的發(fā)展和提高。</p><p
32、><b> 附程序源代碼</b></p><p> /***********文 件 管 理 系 統(tǒng)***********/</p><p> #include <stdio.h></p><p> #include <stdlib.h> /*不容易歸類的標(biāo)準(zhǔn)函數(shù)庫*/</
33、p><p> #include <conio.h></p><p> #include <string.h></p><p> #include <sys\stat.h> </p><p> #include <fcntl.h> /*非標(biāo)準(zhǔn)文
34、件輸入輸出操作的代碼符號屬性*/</p><p> #include <dos.h></p><p> #include <io.h></p><p> int init() /*初始化操作界面函數(shù)*/</p><p><b> {int i;</
35、b></p><p><b> clrscr();</b></p><p> gotoxy(23,3);printf("* * * * * * * * * * * * * *");</p><p> gotoxy(27,4);printf("FILE MANAGE SYSTEM");</
36、p><p> gotoxy(23,5);printf("* * * * * * * * * * * * * *");</p><p> gotoxy(23,7);printf("丹灰-3210006071-10級計算機科學(xué)與技術(shù)5班");</p><p> gotoxy(28,9);printf("1--Creat
37、 File");</p><p> gotoxy(28,10);printf("2--Delete File");</p><p> gotoxy(28,11);printf("3--OPen File");</p><p> gotoxy(28,12);printf("4--Wri
38、te File");</p><p> gotoxy(28,13);printf("5--Locate File");</p><p> gotoxy(28,14);printf("6--Modify File");</p><p> gotoxy(28,15);printf("7--C
39、opy File");</p><p> gotoxy(28,16);printf("8--Move File");</p><p> gotoxy(28,17);printf("9--Cataloge Manage");</p><p> gotoxy(28,18);printf("
40、10--Exit File");</p><p> gotoxy(25,21);</p><p> printf("Please Choice:");</p><p> scanf("%d",&i);</p><p> return(i);
41、 /*選擇相應(yīng)的序號,執(zhí)行相應(yīng)的操作*/</p><p><b> }</b></p><p><b> main()</b></p><p> {int x,i,j,flag=1;</p><p> char name[15],name1[15],name2[40];<
42、/p><p> char choice,ch;</p><p> int handle,status; /*定義文件的指針和狀態(tài)*/</p><p><b> FILE *fp;</b></p><p> while(flag) /*初始化系統(tǒng)
43、界面*/</p><p> {i=init();</p><p> getchar();</p><p><b> switch(i)</b></p><p> { case 1:label1: /*創(chuàng)建文件操作*/</p><p><b> c
44、lrscr();</b></p><p> gotoxy(27,5);printf("CREAT FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p> printf("\n\nP
45、lease input the creating file name and routine:\n");</p><p> scanf("%s",name);</p><p> getchar();</p><p> handle=creatnew(name,0);/*按指定的文件方式創(chuàng)建文件,若有同名文件返回錯誤代碼*/<
46、/p><p> if(handle==-1)</p><p> { printf("\nSorry,the file already exists.");</p><p> getchar();</p><p> printf("\nInput again?(Y or N)");</p>
47、<p> scanf("%c",&choice);getchar();</p><p> if(choice=='Y'||choice=='y')</p><p> goto label1;</p><p><b> }</b></p><p&
48、gt; else { printf("\nThe file is created.");</p><p> printf("Do you now input contentof the file?(Y or N):");</p><p> while(1) /*輸入創(chuàng)建文件的內(nèi)容*/</p><p>
49、{ scanf("%c",&choice);</p><p> if(choice=='y'||choice=='n'||choice=='Y'||choice=='N')</p><p><b> break;</b></p><p><b&
50、gt; else</b></p><p> printf("\nError!Please input again!");</p><p><b> }</b></p><p> if(choice=='y'||choice=='Y')</p><p>
51、; { printf("\nNow input content to the file(End with '#'):\n\n");</p><p> fp=fopen(name,"w");/*把內(nèi)容存放到fp指向的文件中去*/</p><p> ch=getchar();</p><p> while(
52、ch!='#')</p><p> { fputc(ch,fp);</p><p> ch=getchar();</p><p><b> }</b></p><p> fclose(fp);getchar();/*關(guān)閉文件*/</p><p><b> }&l
53、t;/b></p><p> getchar();</p><p><b> break;</b></p><p> case 2:label2: /*刪除文件的操作*/</p><p><b> clrscr();</b></p><
54、;p> gotoxy(25,5);printf("DELETE FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p> printf("\n\nPlease input the deleting file na
55、me and routine:\n");</p><p> scanf("%s",name); /*輸入要刪除的文件名*/</p><p> getchar();</p><p> printf("\n Are you sure?(Y or N):");</p><p><
56、b> while(1)</b></p><p> { scanf("%c",&choice);</p><p> if(choice=='y'||choice=='n'||choice=='Y'||choice=='N')</p><p><b&
57、gt; break;</b></p><p><b> else</b></p><p> printf("\nError!Please input again!");</p><p><b> }</b></p><p> if(choice=='
58、y'||choice=='Y')</p><p> {status=access(name,0);/*獲取文件的狀態(tài),是否存在*/</p><p> if(status!=0)</p><p> {printf("\nSorry the file doesn't exist!");</p>&l
59、t;p> getchar();</p><p> printf("\n\nInput again?(Y or N)");</p><p> scanf("%c",&choice);getchar();</p><p> if(choice=='Y'||choice=='y'
60、)</p><p> goto label2;</p><p><b> }</b></p><p><b> else</b></p><p> { status=access(name,02);/*獲取文件的狀態(tài),是否存在并且是否只讀*/</p><p> i
61、f(status!=0)</p><p> { printf("\nSorry the file is only read!");</p><p> getchar();</p><p><b> }</b></p><p><b> else</b></p>
62、<p> {unlink(name); /*從目錄中刪除一個文件函數(shù),該函數(shù)在dos.h中*/</p><p> printf("\n\ndelete succefully!");</p><p> getchar();</p><p><b> }</b></p><p>
63、;<b> }</b></p><p><b> }</b></p><p> getchar();</p><p><b> break;</b></p><p> case 3:label3: /*打開文件操作*/</p>
64、;<p><b> clrscr();</b></p><p> gotoxy(27,5);printf("OPEN FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p&
65、gt; printf("\n\nPlease input the opening file name and routine:\n");</p><p> scanf("%s",name);</p><p> status=access(name,0);/*獲取文件的狀態(tài)*/</p><p> if(status!=0
66、)</p><p> {printf("\nSorry the file doesn't exist!");</p><p> getchar();</p><p> printf("\n\nInput again?(Y or N)");</p><p> scanf("%c&
67、quot;,&choice);getchar();</p><p> if(choice=='Y'||choice=='y')</p><p> goto label3;</p><p><b> }</b></p><p><b> else</b>
68、</p><p> { printf("\nNow begin to read the file:\n");</p><p> fp=fopen(name,"r");</p><p> ch=fgetc(fp); /*讀出文件到內(nèi)存*/</p><p> while(ch!=EOF
69、)</p><p> {printf("%c",ch);</p><p> ch=fgetc(fp);j++;</p><p><b> }</b></p><p> fclose(fp);getchar();/*關(guān)閉文件*/</p><p><b> }&
70、lt;/b></p><p> getchar();</p><p><b> break;</b></p><p> case 4:label4: /*寫文件操作*/</p><p><b> clrscr();</b></p><
71、p> gotoxy(27,5);printf("WRITE FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p> printf("\n\nPlease input the writing file name
72、and routine:\n");</p><p> scanf("%s",name);</p><p> status=access(name,0);/*獲取name指向的文件狀態(tài)*/</p><p> if(status!=0)</p><p> {printf("\nSorry the f
73、ile doesn't exist!");</p><p> getchar();</p><p> printf("\n\nInput again?(Y or N)");</p><p> scanf("%c",&choice);getchar();</p><p>
74、 if(choice=='Y'||choice=='y')</p><p> goto label4;</p><p><b> }</b></p><p><b> else</b></p><p> {fp=fopen(name,"w"
75、);/*以寫入方式打開name 指向的文件*/</p><p> printf("\nPlease input the information(end with '#'):\n");</p><p> ch=getchar(); /*重寫文件*/</p><p> while(ch!='#')&
76、lt;/p><p> { fputc(ch,fp);</p><p> ch=getchar();</p><p><b> }</b></p><p> fclose(fp);getchar();/*關(guān)閉文件*/</p><p><b> }</b></p>
77、;<p> getchar();</p><p><b> break;</b></p><p> case 5:label5: /*定位文件操作*/</p><p><b> clrscr();</b></p><p> gotoxy(27,
78、5);printf("LOCATE FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p> printf("\n\nPlease input the locating file name and routine:\n&
79、quot;);</p><p> scanf("%s",name);</p><p> status=access(name,0);/*獲取name文件指向的文件的狀態(tài)*/</p><p> if(status!=0)</p><p> {printf("\nSorry the file doesn
80、9;t exist!");</p><p> getchar();</p><p> printf("\n\nInput again?(Y or N)");</p><p> scanf("%c",&choice);getchar();</p><p> if(choice==
81、'Y'||choice=='y')</p><p> goto label5;</p><p><b> }</b></p><p><b> else</b></p><p> {printf("\nPlease input the locatio
82、n:");</p><p> scanf("%d",&x);</p><p> handle=open(name,O_CREAT|O_RDWR,S_IREAD|S_IWRITE);/*打開由name指定的文件,name既可以是簡單的文件名*/</p><p> /*也可以是文件的路徑名,O_CREAT表示了打開文件的存取代
83、碼,若文件不存在,則建立,否則無效。*/</p><p> /*O_RDWR表示打開文件用于讀寫。S_IREAD|S_IWRITE允許讀寫*/</p><p> lseek(handle,x,SEEK_SET);/*該函數(shù)把由handle指定的文件的文件指針,移到SEEK_SET(開始位置)再加上x偏移量的地方*/</p><p> getchar();<
84、;/p><p><b> }</b></p><p> getchar();</p><p><b> break;</b></p><p> case 6:label6: /*修改文件屬性操作*/</p><p><b> c
85、lrscr();</b></p><p> gotoxy(27,5);printf("MODIFY FILE\n");</p><p> for(j=0;j<80;j++)</p><p> printf("= ");</p><p> printf("\n\n
86、Please input the modifying attribution file name and routine:\n");</p><p> scanf("%s",name);</p><p> status=access(name,0);/*獲取文件的狀態(tài)*/</p><p> if(status!=0)</p&
87、gt;<p> {printf("\nSorry the file doesn't exist!");</p><p> getchar();</p><p> printf("\n\nInput again?(Y or N)");</p><p> scanf("%c",&a
88、mp;choice);getchar();</p><p> if(choice=='Y'||choice=='y')</p><p> goto label6;</p><p><b> }</b></p><p><b> else</b></p&g
89、t;<p> { printf("\nPlease choice:1--READ_ONLY 2--WRITE_ONLY");</p><p> printf("\n\nPlease choice the attributione operation:");</p><p><b> while(1)</b&g
90、t;</p><p> { scanf("%d",&x);</p><p> if(x==1||x==2)</p><p><b> break;</b></p><p><b> else</b></p><p> printf(&qu
91、ot;\nError!Please input again!");</p><p><b> }</b></p><p> if(x==1) { status=chmod(name,S_IREAD);/*修改文件為“只讀”*/</p><p> if(status)</p><p> printf(&q
92、uot;\nSorry!Couldn't make the file read_only!");</p><p><b> else</b></p><p> printf("\n===Made <%s> read_only===",name);</p><p> getchar();&l
93、t;/p><p><b> }</b></p><p> else if(x==2) /*修改文件為“只寫”*/</p><p> { status=chmod(name,S_IWRITE);</p><p> if(status)</p><p> printf("\nS
94、orry!Couldn't make the file write_only!");</p><p><b> else</b></p><p> printf("\n===Made <%s> write_only===",name);</p><p> getchar();</p&
95、gt;<p><b> }</b></p><p><b> }</b></p><p> getchar();</p><p><b> break;</b></p><p> case 7:clrscr(); /*復(fù)制文
96、件的操作*/</p><p> gotoxy(27,5);printf("COPY FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p> printf("\n\nPlease input t
97、he copying file name and routine:\n");</p><p> scanf("%s",name);</p><p> getchar();</p><p> printf("\nPlease input the copyed file name and routine:\n");
98、</p><p> scanf("%s",name1);</p><p> getchar();</p><p> strcpy(name2,"copy ");</p><p> strcat(name2,name);</p><p> strcat(name2,&qu
99、ot; ");</p><p> strcat(name2,name1);</p><p> system(name2); /*系統(tǒng)調(diào)用dos指令*/</p><p> getchar();</p><p><b> break;</b></p><p>
100、case 8:clrscr(); /*移動文件操作*/</p><p> gotoxy(27,5);printf("MOVE FILE\n");</p><p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p
101、> printf("\n\nPlease input the moving file name and routine:\n");</p><p> scanf("%s",name);</p><p> getchar();</p><p> printf("\nPlease input the mov
102、ing file name and routine:\n");</p><p> scanf("%s",name1);</p><p> getchar();</p><p> strcpy(name2,"move ");</p><p> strcat(name2,name);<
103、;/p><p> strcat(name2," ");</p><p> strcat(name2,name1);</p><p> system(name2); /*系統(tǒng)調(diào)用dos指令*/</p><p> getchar();</p><p><b> bre
104、ak;</b></p><p> case 9: label9: /*目錄管理操作*/</p><p><b> clrscr();</b></p><p> gotoxy(27,5);printf("CATALOGUE MANAGE\n");</p>
105、<p> for(j=0;j<40;j++)</p><p> printf("= ");</p><p> gotoxy(13,9);</p><p> printf("Please input the moving file name and routine:\n");</p><
106、;p> gotoxy(25,11);printf("1--display catalogue");</p><p> gotoxy(25,12);printf("2--creat catalogue");</p><p> gotoxy(25,13);printf("3—delete catalogue");</
107、p><p> gotoxy(25,14);printf("4--copy catalogue");</p><p> gotoxy(25,15);printf("5--move catalogue");</p><p> gotoxy(25,16);printf("6--exit catalogue");
108、</p><p> gotoxy(26,20);</p><p> printf("Please choice:");</p><p> scanf("%d",&x);</p><p> while(x<1||x>6)</p><p> {print
109、f("\nError!Please input again!\n");</p><p> scanf("%d",&x);</p><p><b> }</b></p><p><b> switch(x)</b></p><p> { case
110、 1: printf("\nPlease iuput the displaying catalogue:\n");</p><p> scanf("%s",name);/*先是目錄操作*/</p><p> strcpy(name2,"dir ");/*復(fù)制dir命令*/</p><p> strca
111、t(name2, name);</p><p> printf("%s",name2);</p><p> getchar();</p><p> system(name2);/*系統(tǒng)調(diào)用*/</p><p> getchar();</p><p><b> break;<
112、/b></p><p> case 2: printf("\nPlease iuput the creating catalogue:\n");</p><p> scanf("%s",name);/*創(chuàng)建目錄操作*/</p><p> strcpy(name2,"md ");/*復(fù)制md命令
113、*/</p><p> strcat(name2,name);</p><p> system(name2);/*系統(tǒng)調(diào)用*/</p><p> getchar();</p><p><b> break;</b></p><p> case 3: printf("\nPlea
114、se iuput the deleting catalogue:\n");</p><p> scanf("%s",name);/*刪除目錄操作*/</p><p> strcpy(name2,"rd ");/*復(fù)制rd命令*/</p><p> strcat(name2,name);</p>
115、<p> system(name2);</p><p> getchar();</p><p><b> break;</b></p><p> case 4: printf("\nPlease iuput the copying catalogue:\n");</p><p>
116、scanf("%s",name);/*復(fù)制目錄操作*/</p><p> printf("\nPlease iuput the displayed catalogue:\n");</p><p> scanf("%s",name1);</p><p> strcpy(name2,"xcopy
117、 ");/*復(fù)制xcopy命令*/</p><p> strcat(name2,name);</p><p> strcat(name2," ");</p><p> strcat(name2,name1);</p><p> strcat(name2,"/e");</p>
118、<p> system(name2);/*系統(tǒng)調(diào)用*/</p><p> getchar();break;</p><p> case 5: printf("\nPlease iuput the moving catalogue:\n");</p><p> scanf("%s",name);/*移動目錄
119、操作*/</p><p> printf("\nPlease iuput the moved catalogue:\n");</p><p> scanf("%s",name1);</p><p> strcpy(name2,"move ");/*復(fù)制move命令*/</p><
120、p> strcat(name2,name);</p><p> strcat(name2," ");</p><p> strcat(name2,name1);</p><p> system(name2);</p><p> getchar();break;</p><p> c
121、ase 6:goto tag; /*退出目錄管理操作*/</p><p><b> }</b></p><p> printf("Input again?(Y or N)");</p><p> scanf("%c",&choice);getchar();</p>
122、<p> if(choice=='Y'||choice=='y')</p><p> goto label9;</p><p> tag:getchar();</p><p><b> break;</b></p><p> case 10:flag=0;exit(0)
123、;break; /*退出文件管理系統(tǒng)程序*/</p><p> default: clrscr();</p><p> printf("\n\n Error!Please input again!\n");</p><p> getchar();</p><p><b> break;&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計---文件管理系統(tǒng)設(shè)計
- 操作系統(tǒng)課程設(shè)計報告----文件管理系統(tǒng)
- 《操作系統(tǒng)》課程設(shè)計-- 模擬文件管理系統(tǒng)
- 《操作系統(tǒng)》課程設(shè)計--模擬文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計——操作系統(tǒng)課程設(shè)計模擬操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計---磁盤文件操作
- 內(nèi)存管理(操作系統(tǒng))操作系統(tǒng)課程設(shè)計
- 操作系統(tǒng)課程設(shè)計---操作系統(tǒng)之文件管理部分的設(shè)計與實現(xiàn)
- 操作系統(tǒng)課程設(shè)計(文件系統(tǒng)管理)
- 操作系統(tǒng)課程設(shè)計--基于文件分配表的文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計-- 操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計-文件管理實驗報告
- 操作系統(tǒng)課程設(shè)計---文件加密存儲
- 操作系統(tǒng)課程設(shè)計--模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計--樹形目錄文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計--文件訪問接口設(shè)計
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計---文件系統(tǒng)的模擬
- 操作系統(tǒng)課程設(shè)計---模擬文件系統(tǒng)
評論
0/150
提交評論