2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  課 程 設(shè) 計(jì)</b></p><p>  課程名稱____操作系統(tǒng) ________</p><p>  題目名稱___文件管理系統(tǒng)___ _ </p><p>  學(xué)生學(xué)院____計(jì)算機(jī)學(xué)院________</p><p>  專業(yè)班級(jí)_10級(jí)計(jì)算機(jī)科學(xué)與技術(shù)5班</p>

2、;<p>  學(xué) 號(hào)_ __________</p><p>  學(xué)生姓名____ ___________</p><p>  指導(dǎo)教師_ _ ______ _</p><p>  2013年 1 月 10 日</p><p>  一、課程設(shè)計(jì)題目和目的</p><p>  

3、通過(guò)模擬文件系統(tǒng)的實(shí)現(xiàn),深入理解操作系統(tǒng)中文件系統(tǒng)的理論知識(shí), 加深對(duì)教材中的重要算法的理解。同時(shí)通過(guò)編程實(shí)現(xiàn)這些算法,更好地掌握操作系統(tǒng)的原理及實(shí)現(xiàn)方法,提高綜合運(yùn)用各專業(yè)課知識(shí)的能力。</p><p><b>  二、課程設(shè)計(jì)要求</b></p><p>  通過(guò)課程設(shè)計(jì),要求學(xué)生主要掌握如下內(nèi)容:</p><p>  (1)設(shè)計(jì)多用戶文件

4、系統(tǒng),采用多級(jí)文件目錄。</p><p>  (2)至少要有十個(gè)以上的實(shí)用命令,應(yīng)設(shè)置文件保護(hù)措施。</p><p>  (3)設(shè)計(jì)一個(gè)較實(shí)用的用戶界面,方便用戶使用,界面要為用戶提供足夠的選擇信息,不需用戶打入打入冗長(zhǎng)的命令。</p><p><b>  三、程序設(shè)計(jì)思想</b></p><p>  閱讀操作系統(tǒng)方面的

5、書籍,了解操作系統(tǒng)的文件系統(tǒng)原理。結(jié)合分析課程設(shè)計(jì)要求,確定實(shí)體以及它們之間的關(guān)系。實(shí)體關(guān)系有三張表(磁盤空間分配表、文件表、打開文件表)、一個(gè)模擬磁盤的數(shù)組、命令服務(wù)和用戶構(gòu)成。用戶負(fù)責(zé)輸入命令。命令服務(wù)實(shí)現(xiàn)命令的解釋、命令檢查、命令幫助以及調(diào)用相關(guān)模塊執(zhí)行相應(yīng)的命令功能。</p><p>  此課程設(shè)計(jì)把TXT文本作來(lái)研究對(duì)象來(lái)模擬操作系統(tǒng)的文件系統(tǒng)工作過(guò)程。所以用一個(gè)字符串?dāng)?shù)組來(lái)模擬磁盤空間,顧名思義,模擬

6、磁盤提供字符的存儲(chǔ)服務(wù)。</p><p>  磁盤空間分配表,采用鏈表結(jié)構(gòu),每個(gè)節(jié)點(diǎn)保存模擬磁盤的一個(gè)邏輯塊的信息,包括塊的最大長(zhǎng)度,文件占用長(zhǎng)度,占用標(biāo)志。如果占用標(biāo)志為0,即該空間可分配給文件。初始化磁盤空間分配表鏈表,首先把整個(gè)模擬磁盤作來(lái)一塊,并置占用位為0.當(dāng)有進(jìn)程申請(qǐng)磁盤空間時(shí),從頭開始遍歷,檢查占用位,如果該塊為可分配,則檢查塊大小,若塊長(zhǎng)度大于或等于申請(qǐng)空間大小,則把塊的前一部分(等于申請(qǐng)大?。┓?/p>

7、配給文件,并置標(biāo)志位為占用。剩下的大小作來(lái)一個(gè)新塊,作來(lái)一個(gè)新節(jié)點(diǎn)插入到原節(jié)點(diǎn)的后邊,標(biāo)志位為可用。這樣就實(shí)現(xiàn)了模擬磁盤的線性分配。</p><p>  文件表,由于模擬文件系統(tǒng)的文件數(shù)量不多,故文件表采用線性表來(lái)存儲(chǔ)。線性表每個(gè)結(jié)點(diǎn)存儲(chǔ)一個(gè)文件的信息。</p><p>  打開文件表,采用數(shù)組形式存儲(chǔ)打開的文件,數(shù)組每個(gè)元素保存一個(gè)打開文件的信息。文件信息和文件表中的文件信息類似。<

8、;/p><p>  構(gòu)造這些實(shí)體的關(guān)系圖,數(shù)據(jù)流圖、程序流程圖來(lái)進(jìn)行具體的設(shè)計(jì)。</p><p><b>  四、文件系統(tǒng)的實(shí)現(xiàn)</b></p><p><b>  1.數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  通過(guò)分析課程設(shè)計(jì)要求,具體設(shè)計(jì)出如下數(shù)據(jù)結(jié)構(gòu):</p><p>  

9、char disk[10000]; //模擬磁盤空間</p><p>  通過(guò)一個(gè)字符串?dāng)?shù)組來(lái)模擬磁盤空間,數(shù)組最大長(zhǎng)度設(shè)置為10000,即磁盤空間最大容量為10000字節(jié)。作為模擬文件系統(tǒng),主要理解文件系統(tǒng)的原理,可以把文本文件作為對(duì)象來(lái)研究。故磁盤空間用一個(gè)字符串?dāng)?shù)組來(lái)模擬.</p><p>  struct freeDiskTable //碰盤空間分配表</p>&l

10、t;p><b>  {</b></p><p>  int start; //開始位置</p><p>  int length; //占用長(zhǎng)度</p><p>  int maxLength; //最大長(zhǎng)度</p><p>  int useFlag; //使用標(biāo)志,1為占用,0為空閑</p&

11、gt;<p><b>  };</b></p><p>  通過(guò)結(jié)構(gòu)體,將磁盤空間使用情況(文件開始位置、占用長(zhǎng)度、最大長(zhǎng)度、使用標(biāo)志)結(jié)合在一體。一個(gè)結(jié)構(gòu)體變量記錄磁盤一個(gè)塊的信息。結(jié)構(gòu)體作為鏈表的一個(gè)節(jié)點(diǎn),設(shè)置一個(gè)鏈表將節(jié)點(diǎn)連接起來(lái),構(gòu)成一個(gè)磁盤空間分配表。</p><p>  struct fileTable //文件表</p>

12、<p><b>  {</b></p><p>  char fileName[20]; //文件名字</p><p>  int start; //開始位置</p><p>  int length; //文件長(zhǎng)度</p><p>  int maxLength;

13、 //最大長(zhǎng)度</p><p>  char fileKind[8]; //文件種類,此默認(rèn)為txt</p><p>  struct tm *timeinfo; //文件創(chuàng)建時(shí)間</p><p><b>  };</b></p><p>  通過(guò)結(jié)構(gòu)體,將文件名字、文件在磁盤的開始位置、文件長(zhǎng)度、文件最大長(zhǎng)度、

14、文件類型、創(chuàng)建時(shí)間結(jié)合在一起。文件類型,本模擬程序使用txt類型。設(shè)置一個(gè)線性表來(lái)存儲(chǔ)文件。</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; //文件長(zhǎng)度</p><p>  int maxLength; //最大長(zhǎng)度</p><p>  int openCount; //

16、打開文件的進(jìn)程數(shù)</p><p>  struct tm *timeinfo; //文件創(chuàng)建時(shí)間</p><p><b>  };</b></p><p>  通過(guò)結(jié)構(gòu)體存儲(chǔ)打開的文件信息,包括文件名字、文件類型、文件開始位置、文件長(zhǎng)度、最大長(zhǎng)度、文件打開數(shù)和文件創(chuàng)建時(shí)間。通過(guò)結(jié)構(gòu)體數(shù)組存儲(chǔ)所有打開文件信息。</p><p&

17、gt;<b>  2.程序功能圖</b></p><p>  文件系統(tǒng)提供的文件操作有建立文件(create)、刪除文件(delete)、條件讀取文件(read)、寫入文件(write)、查詢文件的屬性(ask)、顯示文件所有內(nèi)容(type)、重命名文件(ren)、關(guān)閉文件(close)??梢酝ㄟ^(guò)鍵盤輸入命令來(lái)模擬文件的操作。通過(guò)exit命令退出程序。</p><p>

18、;<b>  3.實(shí)體關(guān)系圖</b></p><p>  命令服務(wù)使得用戶能夠輸入命令,在需要時(shí)提供命令的幫助。同時(shí)能夠分析命令,調(diào)用相應(yīng)的命令模塊對(duì)模擬磁盤、磁盤空間分配表、文件表、打開文件表進(jìn)行操作。磁盤空間分配表記錄模擬磁盤的使用情況。文件表記錄文件的信息和在磁盤里的位置等信息。打開文件表記錄已打開的文件,對(duì)應(yīng)文件表中的文件信息,和文件表里的文件節(jié)點(diǎn)類似,記錄了文件在模擬磁盤中的信息。

19、</p><p><b>  4.數(shù)據(jù)流圖</b></p><p><b>  5.程序流程圖</b></p><p>  模擬文件系統(tǒng)提供的文件操作有建立(create),讀?。╮ead),顯示(type),刪除(detele),寫入(write),關(guān)閉(close),重命名(ren)和查詢(ask)。在模擬程序中可從鍵

20、盤上輸入文件操作命令來(lái)模擬各用戶程序中所調(diào)用的各種文件操作結(jié)束命令(exit)停止程序的執(zhí)行。</p><p><b>  五:程序運(yùn)行界面</b></p><p>  用戶可以通過(guò)數(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>  以下是對(duì)系統(tǒng)功能進(jìn)行逐項(xiàng)說(shuō)明</p><p><b>  1 創(chuàng)建文

23、件</b></p><p>  從圖中可以看出,當(dāng)輸入要?jiǎng)?chuàng)建的文件名和路徑后,盤中出現(xiàn)了這個(gè)這個(gè)文件。</p><p>  然后系統(tǒng)詢問(wèn)是否輸入內(nèi)容,選擇是后輸入內(nèi)容+#號(hào)結(jié)束。</p><p>  輸入完畢后用記事本打開剛才創(chuàng)建的文件,顯示的就是剛才在文件系統(tǒng)中輸入的內(nèi)容。也可以通過(guò)OPEN操作來(lái)打開,后面有說(shuō)明。</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>  這個(gè)就是往里面寫內(nèi)容。寫入

25、后會(huì)覆蓋掉以前的內(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 移動(dòng)文件</b></p><p>  和復(fù)制文件基本一樣,只不過(guò)這個(gè)是剪切:)</p><p><b>  9 文件目錄管理</b></p><p>  目錄管理里又分多個(gè)選項(xiàng):

27、</p><p><b>  列出目錄</b></p><p><b>  創(chuàng)建目錄</b></p><p><b>  刪除目錄</b></p><p><b>  復(fù)制目錄</b></p><p><b>  移動(dòng)目錄

28、</b></p><p>  與文件操作形式一樣,只不過(guò)操作對(duì)象變成了目錄而已,所以不再詳細(xì)說(shuō)明。</p><p><b>  10 退出系統(tǒng)</b></p><p><b>  心得體會(huì)</b></p><p>  通過(guò)本次的課程設(shè)計(jì),使我能夠正確運(yùn)用操作系統(tǒng)課程中所學(xué)的基本理論和知識(shí)

29、,加深了對(duì)文件系統(tǒng)基本概念的理解,以及磁盤文件系統(tǒng)的文件操作。還有讓我感受挺深的是對(duì)軟件工程方法的應(yīng)用。設(shè)計(jì)一個(gè)軟件,先要做好需求分析,這一點(diǎn)很重要,如果沒(méi)有分析好需求,到軟件設(shè)計(jì)的最后,發(fā)現(xiàn)所做的功能不符合要求,那么一切都得重做,前面所有的努力都付諸東流。還有比較重要的是,寫好E-R圖,至少畫出語(yǔ)境級(jí)的數(shù)據(jù)流圖,以及仔細(xì)畫好程流程圖。在程序設(shè)計(jì)的開始,由于分析工作做得不夠深入和細(xì)致,吃了點(diǎn)小苦頭。對(duì)于這樣一個(gè)小設(shè)計(jì)來(lái)說(shuō),都會(huì)吃苦頭,要

30、是大工程更是無(wú)法想像,有可能會(huì)項(xiàng)目失敗。以后得加強(qiáng)對(duì)軟件工程的學(xué)習(xí)。另外在運(yùn)用C語(yǔ)言的時(shí)候,感覺(jué)有點(diǎn)生疏,在組織語(yǔ)言時(shí)時(shí)而出錯(cuò),在編程和調(diào)試的過(guò)程中,經(jīng)常會(huì)出現(xiàn)意想不到的問(wèn)題,并非每個(gè)問(wèn)題都可以從相關(guān)資料中找到解決方法,有些問(wèn)題是無(wú)法預(yù)料到的,這就需要通過(guò)自己理性的分析得出問(wèn)題的解決方案。</p><p>  在設(shè)計(jì)過(guò)程中,查詢了不少相關(guān)資料,不斷的發(fā)現(xiàn)問(wèn)題、提出問(wèn)題、解決問(wèn)題。在對(duì)自己所編寫的源程序段的糾錯(cuò)的過(guò)

31、程中,使我更好的理解了操作系統(tǒng)中文件系統(tǒng)的理論知識(shí),同時(shí)在編程時(shí)用到了模塊化的設(shè)計(jì)思想,這種編程方法可以使我們的編程變的更簡(jiǎn)單,可以使我們的查錯(cuò)與糾錯(cuò)變的更方便??偟膩?lái)說(shuō)通過(guò)這次的設(shè)計(jì)的學(xué)習(xí)使我學(xué)到了很多在平時(shí)的學(xué)習(xí)中學(xué)不到的很多東西,通過(guò)這次課程設(shè)計(jì),使我對(duì)操作系統(tǒng)和編程產(chǎn)生興趣,我想我會(huì)在這條路上繼續(xù)前進(jìn)下去。我相信,只要不斷的嚴(yán)格要求自己,注意培養(yǎng)自己的思維能力,就一定會(huì)有更大更輝煌的發(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ù)庫(kù)*/</

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、件輸入輸出操作的代碼符號(hào)屬性*/</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級(jí)計(jì)算機(jī)科學(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)的序號(hào),執(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)建文件,若有同名文件返回錯(cuò)誤代碼*/<

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); /*輸入要?jiǎng)h除的文件名*/</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); /*從目錄中刪除一個(gè)文件函數(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既可以是簡(jiǎn)單的文件名*/</p><p>  /*也可以是文件的路徑名,O_CREAT表示了打開文件的存取代

83、碼,若文件不存在,則建立,否則無(wú)效。*/</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(); /*移動(dòng)文件操作*/</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);/*移動(dòng)目錄

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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論