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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  存檔資料 成績:  </p><p>  課 程 設 計 報 告 書</p><p>  課程名稱 操 作 系 統(tǒng) 設 計 </p><p>  題 目    模擬文件系統(tǒng)    </p><p&

2、gt;  分 院   電 信 分 院    </p><p>  專業(yè)班級 計算機科學與技術08 級 1班 </p><p>  學  號    </p><p>  學生姓名 ** * *    </p><p>  指導教師 *****

3、 </p><p>  2011 年 6 月 10 日 </p><p>  課 程 設 計( 論 文 )任 務 書</p><p>  專 業(yè) 08計算機 班 級 1班 姓名 * * * </p><p>  一、課程設計(論文)題目 模擬文件系統(tǒng)

4、 </p><p>  二、課程設計(論文)工作:自2011 年 6 月7 日起至2011 年 6 月 20 日止。</p><p>  三、課程設計(論文)的內容要求:</p><p>  1.文件的物理結構可以選用順序分配、鏈表分配或索引分配。</p><p>  2.建立文件:從命令中得到文件名,得到該文件的文件長度,建立文件。

5、修改目錄表。</p><p>  3.刪除文件:回收文件占用的空間,修改目錄表</p><p>  4.讀文件:read [文件名] [顯示開始字節(jié)] [顯示的字節(jié)數] ,直接顯示所需要的字節(jié)數。</p><p>  5.寫文件:write [文件名] [插入的位置] [插入的內容]</p><p>  6.查詢屬性:顯示文件屬性 文件名,

6、類型,長度,時間等。 </p><p>  學生簽名: </p><p>  2011 年6 月 20 日</p><p>  課程設計(論文)評閱意見</p><p>  評閱人   職稱 <

7、/p><p>  20 11 年 6 月 20 日 </p><p><b>  目 錄</b></p><p>  一、課程設計題目和目的4</p><p>  二、課程設計要求4</p><p>  三、程序設計思想4</p><p>  四、文件系統(tǒng)的實現4&l

8、t;/p><p>  五、程序運行結果及分析20</p><p>  六、課程設計總結22</p><p><b>  七、參考文獻22</b></p><p>  一、課程設計題目和目的</p><p>  通過模擬文件系統(tǒng)的實現,深入理解操作系統(tǒng)中文件系統(tǒng)的理論知識, 加深對教材中的重要算法

9、的理解。同時通過編程實現這些算法,更好地掌握操作系統(tǒng)的原理及實現方法,提高綜合運用各專業(yè)課知識的能力。</p><p><b>  二、課程設計要求</b></p><p>  通過課程設計,要求學生主要掌握如下內容:</p><p>  1.文件的物理結構可以選用順序分配、鏈表分配或索引分配。</p><p>  2.

10、建立文件:從命令中得到文件名,得到該文件的文件長度,建立文件。修改目錄表。</p><p>  3.刪除文件:回收文件占用的空間,修改目錄表</p><p>  4.讀文件:read [文件名] [顯示開始字節(jié)] [顯示的字節(jié)數] ,直接顯示所需要的字節(jié)數。</p><p>  5.寫文件:write [文件名] [插入的位置] [插入的內容]</p>

11、<p><b>  三、程序設計思想</b></p><p>  閱讀操作系統(tǒng)方面的書籍,了解操作系統(tǒng)的文件系統(tǒng)原理。結合分析課程設計要求,確定實體以及它們之間的關系。實體關系有三張表(磁盤空間分配表、文件表、打開文件表)、一個模擬磁盤的數組、命令服務和用戶構成。用戶負責輸入命令。命令服務實現命令的解釋、命令檢查、命令幫助以及調用相關模塊執(zhí)行相應的命令功能。</p>

12、<p>  此課程設計把TXT文本作來研究對象來模擬操作系統(tǒng)的文件系統(tǒng)工作過程。所以用一個字符串數組來模擬磁盤空間,顧名思義,模擬磁盤提供字符的存儲服務。</p><p>  磁盤空間分配表,采用鏈表結構,每個節(jié)點保存模擬磁盤的一個邏輯塊的信息,包括塊的最大長度,文件占用長度,占用標志。如果占用標志為0,即該空間可分配給文件。初始化磁盤空間分配表鏈表,首先把整個模擬磁盤作來一塊,并置占用位為0.當有進

13、程申請磁盤空間時,從頭開始遍歷,檢查占用位,如果該塊為可分配,則檢查塊大小,若塊長度大于或等于申請空間大小,則把塊的前一部分(等于申請大?。┓峙浣o文件,并置標志位為占用。剩下的大小作來一個新塊,作來一個新節(jié)點插入到原節(jié)點的后邊,標志位為可用。這樣就實現了模擬磁盤的線性分配。</p><p>  文件表,由于模擬文件系統(tǒng)的文件數量不多,故文件表采用線性表來存儲。線性表每個結點存儲一個文件的信息。</p>

14、<p>  打開文件表,采用數組形式存儲打開的文件,數組每個元素保存一個打開文件的信息。文件信息和文件表中的文件信息類似。</p><p>  構造這些實體的關系圖,數據流圖、程序流程圖來進行具體的設計。</p><p><b>  四、文件系統(tǒng)的實現</b></p><p><b>  1.數據結構設計</b&g

15、t;</p><p>  通過分析課程設計要求,具體設計出如下數據結構:</p><p>  用戶結構:賬號與密碼結構</p><p>  typedef struct users </p><p><b>  {</b></p><p>  char    

16、; name[8];</p><p>  char     pwd[10];</p><p><b>  }users;</b></p><p>  本系統(tǒng)有8個默認的用戶名,前面是用戶名,后面為密碼,用戶登陸時只要輸入正確便可進入系統(tǒng),否則提示失敗要求重新輸入。</p><p>

17、  users usrarray[8] =</p><p><b>  {</b></p><p>  "usr1","usr1", </p><p>  "usr2","usr2",</p><p>  "usr3",&

18、quot;usr3",</p><p>  "usr4","usr4",</p><p>  "usr5","usr5",</p><p>  "usr6","usr6",</p><p>  "usr7

19、","usr7",</p><p>  "usr8","usr8",</p><p><b>  };</b></p><p><b>  (3)數據結構說明</b></p><p><b>  a)文件結構鏈表<

20、/b></p><p>  struct fnode</p><p><b>  {</b></p><p>  char filename[FILENAME_LENGTH];</p><p>  int  isdir;</p><p>  int isopen;</p>

21、;<p>  char content[255];</p><p>  fnode *parent;</p><p>  fnode *child;</p><p>  fnode *prev;</p><p>  fnode *next;</p><p><b>  };</b>&

22、lt;/p><p><b>  b)函數介紹</b></p><p>  fnode *initfile(char filename[],int isdir);//初始化文件或目錄 </p><p>  void createroot();//建立系統(tǒng)根目錄</p><p>  int run();系統(tǒng)運行<

23、/p><p>  int findpara(char *topara);對參數進行處理</p><p>  bool chklogin(char *users, char *pwd);檢查賬號與口令</p><p>  void help();命令列表</p><p>  int mkdir();建立目錄</p><p>

24、  int create();建立文件</p><p>  int read();讀取文件</p><p>  int write();寫入文件</p><p>  int del();刪除文件</p><p>  int cd();切換目錄</p><p>  int dir();文件與目錄列表</p>

25、<p>  通過結構體存儲打開的文件信息,包括文件名字、文件類型、文件開始位置、文件長度、最大長度、文件打開數和文件創(chuàng)建時間。通過結構體數組存儲所有打開文件信息。</p><p><b>  2.程序功能圖</b></p><p><b>  圖4-1程序功能圖</b></p><p>  文件系統(tǒng)提供的文件操

26、作有建立文件(create)、刪除文件(delete)、條件讀取文件(read)、寫入文件(write)、查詢文件的屬性(ask)、顯示文件所有內容(type)、重命名文件(ren)、關閉文件(close)??梢酝ㄟ^鍵盤輸入命令來模擬文件的操作。通過exit命令退出程序。</p><p><b>  4.數據流圖</b></p><p><b>  圖4-3

27、數據流圖</b></p><p><b>  5.程序流程圖</b></p><p>  模擬文件系統(tǒng)提供的文件操作有建立(create),讀取(read),顯示(type),刪除(detele),寫入(write),關閉(close),重命名(ren)和查詢(ask)。在模擬程序中可從鍵盤上輸入文件操作命令來模擬各用戶程序中所調用的各種文件操作,用一個結

28、束命令(exit)停止程序的執(zhí)行。</p><p><b>  圖4-4程序流程圖</b></p><p><b>  6.參考代碼:</b></p><p>  #include "stdio.h"</p><p>  #include "iostream.h&quo

29、t;</p><p>  #include "string.h"</p><p>  #include "iomanip.h"</p><p>  #define FILENAME_LENGTH 10 //文件名稱長度</p><p>  #define COMMAND_LENGTH 10 

30、//命令行長度</p><p>  #define PARA_LENGTH 30    //參數長度</p><p><b>  //賬號結構</b></p><p>  typedef struct users </p><p><b>  {</b></p&g

31、t;<p>  char     name[8];</p><p>  char     pwd[10];</p><p><b>  }users;</b></p><p><b>  //文件結構</b></p>

32、<p>  struct fnode</p><p><b>  {</b></p><p>  char filename[FILENAME_LENGTH];</p><p>  int  isdir;</p><p>  int isopen;</p><p>  cha

33、r content[255];</p><p>  fnode *parent;</p><p>  fnode *child;</p><p>  fnode *prev;</p><p>  fnode *next;</p><p><b>  };</b></p><p&

34、gt;<b>  //賬號</b></p><p>  users usrarray[8] =</p><p><b>  {</b></p><p>  "usr1","usr1",</p><p>  "usr2","usr2

35、",</p><p>  "usr3","usr3",</p><p>  "usr4","usr4",</p><p>  "usr5","usr5",</p><p>  "usr6",&q

36、uot;usr6",</p><p>  "usr7","usr7",</p><p>  "usr8","usr8",</p><p><b>  };</b></p><p>  fnode *initfile(char fil

37、ename[],int isdir);</p><p>  void createroot();</p><p>  int run();</p><p>  int findpara(char *topara);</p><p>  bool chklogin(char *users, char *pwd);</p><

38、p>  void help();</p><p>  int mkdir();</p><p>  int create();</p><p>  int read();</p><p>  int write();</p><p>  int del();</p><p><b&g

39、t;  int cd();</b></p><p>  int dir();</p><p>  fnode *root,*recent,*temp,*ttemp;</p><p>  char para[PARA_LENGTH],command[COMMAND_LENGTH],temppara[PARA_LENGTH],recentpara[PARA_

40、LENGTH];</p><p>  //創(chuàng)建文件與目錄結點</p><p>  fnode* initfile(char filename[],int isdir)</p><p><b>  {</b></p><p>  fnode *node=new fnode;</p><p>  st

41、rcpy(node->filename,filename);</p><p>  node->isdir=isdir;</p><p>  node->isopen=0;</p><p>  node->parent=NULL;</p><p>  node->child=NULL;</p><

42、;p>  node->prev=NULL;</p><p>  node->next=NULL;</p><p>  return node;</p><p><b>  }</b></p><p>  //創(chuàng)建文件存儲結點</p><p>  void createroot (

43、)</p><p><b>  {</b></p><p>  recent=root=initfile("/",1);</p><p>  root->parent=NULL;</p><p>  root->child=NULL;</p><p>  root-

44、>prev=root->next=NULL;</p><p>  strcpy(para,"/");</p><p><b>  }</b></p><p>  int mkdir()</p><p><b>  {  </b></p><

45、;p>  temp=initfile(" ",1);</p><p>  cin>>temp->filename;</p><p>  if(recent->child==NULL)  </p><p><b>  {</b></p><p>  temp-&g

46、t;parent=recent;</p><p>  temp->child=NULL;</p><p>  recent->child=temp;</p><p>  temp->prev=temp->next=NULL;</p><p><b>  }</b></p><p

47、><b>  else</b></p><p><b>  {</b></p><p>  ttemp=recent->child;</p><p>  while(ttemp->next)</p><p><b>  {</b></p><

48、;p>  ttemp=ttemp->next;</p><p>  if(strcmp(ttemp->filename,temp->filename)==0&&ttemp->isdir==1)</p><p><b>  {</b></p><p>  printf("對不起,目錄已存在!

49、");</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  ttemp->next=temp;</p><p>  temp->

50、parent=NULL;</p><p>  temp->child=NULL;</p><p>  temp->prev=ttemp;</p><p>  temp->next=NULL;</p><p><b>  }</b></p><p><b>  retur

51、n 1;</b></p><p><b>  }</b></p><p>  int create()</p><p><b>  {  </b></p><p>  temp=initfile(" ",0);</p><p>  c

52、in>>temp->filename;</p><p>  cin>>temp->content;</p><p>  if(recent->child==NULL)  </p><p><b>  {</b></p><p>  temp->parent=rec

53、ent;</p><p>  temp->child=NULL;</p><p>  recent->child=temp;</p><p>  temp->prev=temp->next=NULL;</p><p>  cout<<"文件建立成功!"<<endl;</

54、p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ttemp=recent->child;</p><p>  while(ttemp->next)<

55、;/p><p><b>  {</b></p><p>  ttemp=ttemp->next;</p><p>  if(strcmp(ttemp->filename,temp->filename)==0&&ttemp->isdir==0)</p><p><b>  {&

56、lt;/b></p><p>  printf("對不起,文件已存在!");</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

57、;  ttemp->next=temp;</p><p>  temp->parent=NULL;</p><p>  temp->child=NULL;</p><p>  temp->prev=ttemp;</p><p>  temp->next=NULL;</p><p>  co

58、ut<<"文件建立成功!"<<endl;</p><p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  int dir()

59、</b></p><p><b>  {</b></p><p>  int i=0,j=0;</p><p>  temp=new fnode;</p><p>  temp=recent;</p><p>  if(temp!=root)</p><p> 

60、 {cout<<"      <DIR>                         "<<

61、;".."<<endl;i++;}</p><p>  if(temp->child==NULL)</p><p><b>  {</b></p><p>  cout<<"Total: "<<" directors   &

62、#160;              " <<i<<"          files       

63、0;        "<< j <<endl;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  temp=temp->child;</p&g

64、t;<p>  while(temp)</p><p><b>  {</b></p><p>  if(temp->isdir)</p><p>  {cout<<"      <DIR>    &#

65、160;                   "<<temp->filename<<endl;i++;}</p><p><b>  else</b></p>

66、<p>  {cout<<"      <FILE>                       "<<

67、temp->filename<<endl;j++;}</p><p>  temp=temp->next;</p><p><b>  }</b></p><p>  cout<<"Total: "<<" directors   

68、0;              " <<i<<"          files        &

69、#160;       "<< j <<endl;</p><p><b>  }</b></p><p>  int read()</p><p><b>  {</b></p><p>  char f

70、ilename[FILENAME_LENGTH];</p><p>  cin>>filename;</p><p>  if(recent->child==NULL)</p><p><b>  {</b></p><p>  cout<<"文件不存在!"<<

71、;endl;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  if(strcmp(recent->child->filename,filename)==0)</p><p><b>  {</b>&

72、lt;/p><p>  cout<<recent->child->content<<endl;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  else</b></

73、p><p><b>  {</b></p><p>  temp=recent->child;</p><p>  while(temp->next)</p><p><b>  {</b></p><p>  if(strcmp(temp->next->

74、filename,filename)==0)</p><p>  {cout<<temp->next->content<<endl;</p><p>  return 1;}</p><p><b>  }</b></p><p>  cout<<"文件不存在!&

75、quot;<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  int write()</p><p><b>  {</b></p><p>  char filename[FI

76、LENAME_LENGTH];</p><p>  cin>>filename;</p><p>  if(recent->child==NULL)</p><p><b>  {</b></p><p>  cout<<"文件不存在!"<<endl;<

77、/p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  if(strcmp(recent->child->filename,filename)==0)</p><p><b>  {</b></p>

78、<p>  recent->child->isopen=1;//設置文件標記為打開</p><p>  cin>>recent->child->content;</p><p>  recent->child->isopen=0;//設置文件標記為關閉</p><p>  cout<<"

79、;文件寫入成功!"<<endl;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

80、<p>  temp=recent->child;</p><p>  while(temp->next)</p><p><b>  {</b></p><p>  if(strcmp(temp->next->filename,filename)==0)</p><p><b

81、>  {</b></p><p>  recent->child->isopen=1;//設置文件標記為打開</p><p>  cin>>temp->next->content;</p><p>  recent->child->isopen=0;//設置文件標記為關閉</p><

82、;p>  cout<<"文件寫入成功!"<<endl;</p><p>  return 1;}</p><p><b>  }</b></p><p>  cout<<"文件不存在!"<<endl;</p><p><b

83、>  }</b></p><p><b>  }</b></p><p><b>  int cd()</b></p><p>  {  char topara[PARA_LENGTH];</p><p>  cin>>topara;</p>&

84、lt;p>  if(strcmp(topara,"..")==0)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  while(recent->prev)</p><p>  recent=recent-&

85、gt;prev;</p><p>  if(recent->parent)</p><p><b>  {</b></p><p>  recent=recent->parent;</p><p><b>  }</b></p><p>  i=strlen(pa

86、ra);</p><p>  while(para[i]!='/' && i>0) i--;</p><p><b>  if(i!=0)</b></p><p>  para[i]='\0';</p><p><b>  else </b>&l

87、t;/p><p>  para[i+1]='\0';</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  findpara(topara); <

88、;/p><p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int findpara(char *topara)</p><p><b>  {<

89、/b></p><p><b>  int i=0;</b></p><p>  int sign=1;</p><p>  if(strcmp(topara,"/")==0)</p><p><b>  {</b></p><p>  recent

90、=root;</p><p>  strcpy(para,"/");</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  temp=recent;</p><p>  strcpy(tempp

91、ara,para);</p><p>  if(topara[0]=='/')</p><p><b>  {</b></p><p>  recent=root->child;</p><p><b>  i++;</b></p><p>  strc

92、py(para,"/");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(recent!=NULL && recent!=root)&l

93、t;/p><p>  strcat(para,"/");</p><p>  if(recent && recent->child)</p><p><b>  {</b></p><p>  if(recent->isdir)</p><p>  re

94、cent=recent->child;</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("路徑錯誤!\n");</p><p><b>  return 1;</b></p&

95、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  while(i<=strlen(topara) && recent)</p><p><b>

96、  {</b></p><p><b>  int j=0;</b></p><p>  if(topara[i]=='/' && recent->child)</p><p><b>  {</b></p><p><b>  i++;&

97、lt;/b></p><p>  if(recent->isdir)</p><p>  recent=recent->child;</p><p><b>  else</b></p><p>  {printf("路徑錯誤\n");</p><p><

98、;b>  return 0;</b></p><p><b>  }</b></p><p>  strcat(para,"/");</p><p><b>  }</b></p><p>  while(topara[i]!='/' &

99、& i<=strlen(topara))</p><p><b>  {</b></p><p>  recentpara[j]=topara[i];</p><p><b>  i++;j++;</b></p><p><b>  }</b></p>

100、<p>  recentpara[j]='\0';</p><p>  while((strcmp(recent->filename,recentpara)!=0 || (recent->isdir!=1)) && recent->next!=NULL)</p><p><b>  {</b></p

101、><p>  recent=recent->next;</p><p><b>  }</b></p><p>  if(strcmp(recent->filename,recentpara)==0)</p><p><b>  {</b></p><p>  if(

102、recent->isdir==0)</p><p>  {strcpy(para,temppara);</p><p>  recent=temp;</p><p>  printf("是文件不是目錄。\n");</p><p><b>  return 0;</b></p>&l

103、t;p><b>  }</b></p><p>  strcat(para,recent->filename);</p><p><b>  }</b></p><p>  if(strcmp(recent->filename,recentpara)!=0 || recent==NULL)</p&g

104、t;<p><b>  {</b></p><p>  strcpy(para,temppara);</p><p>  recent=temp;</p><p>  printf("輸入路徑錯誤\n");</p><p><b>  return 0;</b>&l

105、t;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  int del()&

106、lt;/b></p><p><b>  {</b></p><p>  char filename[FILENAME_LENGTH];</p><p>  cin>>filename;</p><p>  temp=new fnode;</p><p>  if(recent-

107、>child)</p><p><b>  {</b></p><p>  temp=recent->child;</p><p>  while(temp->next && (strcmp(temp->filename,filename)!=0 || temp->isdir!=0))</p&

108、gt;<p>  temp=temp->next;</p><p>  if(strcmp(temp->filename,filename)!=0)</p><p><b>  {</b></p><p>  cout<<"不存在該文件!"<<endl;</p>

109、<p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></

110、p><p>  cout<<"不存在該文件!"<<endl;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  if(temp->parent==NULL)</p><

111、p><b>  {</b></p><p>  temp->prev->next=temp->next;</p><p>  if(temp->next)</p><p>  temp->next->prev=temp->prev;</p><p>  temp->p

112、rev=temp->next=NULL;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(temp->next)</p><p>  te

113、mp->next->parent=temp->parent;</p><p>  temp->parent->child=temp->next;</p><p><b>  }</b></p><p>  delete temp;</p><p>  cout<<"

114、;文件已刪除!"<<endl;</p><p><b>  }</b></p><p>  bool chklogin(char *users, char *pwd)</p><p><b>  {</b></p><p><b>  int i;</b>

115、</p><p>  for(i=0; i<8; i++)</p><p><b>  {</b></p><p>  if( (strcmp(users,usrarray[i].name)==0) && (strcmp(pwd,usrarray[i].pwd)==0))</p><p>

116、  return true;</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  void help(void)</p><p><b>  {</b><

117、;/p><p>  cout<<"                  命  令  一  覽         

118、      "<<endl;</p><p>  cout<<endl;</p><p>  cout<<"create:             建立文件。

119、0;               "<<endl;</p><p>  cout<<"read:           &#

120、160;   讀取文件。                  "<<endl; </p><p>  cout<<"write:    

121、0;         寫入文件,支持多線程          "<<endl;</p><p>  cout<<"del   :    

122、60;        刪除文件。                  "<<endl;</p><p>  cout<<"mkdir:

123、              建立目錄。                "<<endl;</p><p>  cou

124、t<<"cd:                 切換目錄。                

125、0; "<<endl;</p><p>  cout<<"logout:             退出登錄。            

126、    "<<endl;</p><p><b>  }</b></p><p><b>  int run()</b></p><p><b>  {</b></p><p>  cout<<"linu

127、x:"<<para<<">";</p><p>  cin>>command;</p><p>  if(strcmp(command,"mkdir")==0)</p><p><b>  mkdir();</b></p><p>

128、;  else if(strcmp(command,"dir")==0)</p><p><b>  dir();</b></p><p>  else if(strcmp(command,"cd")==0)</p><p><b>  cd();</b></p>&l

129、t;p>  else if(strcmp(command,"create")==0)</p><p><b>  create();</b></p><p>  else if(strcmp(command,"read")==0)</p><p><b>  read();</b&g

130、t;</p><p>  else if(strcmp(command,"write")==0)</p><p><b>  write();</b></p><p>  else if(strcmp(command,"del")==0)</p><p><b>  de

131、l();</b></p><p>  else if(strcmp(command,"help")==0)</p><p><b>  help();</b></p><p>  else if(strcmp(command,"logout")==0)</p><p>

132、<b>  return 0;</b></p><p><b>  else</b></p><p>  cout<<"請參考help提供的命令列表!"<<endl;</p><p><b>  }</b></p><p>  int

133、 main()</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  bool in=false;</p><p>  char users[8],pwd[12];</p><p>  cout<<&qu

134、ot;|-----------------------------------------------------------------|"<<endl;</p><p>  cout<<"|               

135、;        c語言模擬Linux文件系統(tǒng)                     |"<<endl;</p><p>

136、  cout<<"|            賬號:usr1-usr8      密碼:usr1-usr8           |"<<e

137、ndl; </p><p>  cout<<"|                      你只有三次機會來試驗賬號     

138、0;             |"<<endl;</p><p>  cout<<"|              

139、;    鍵入help可以獲取幫助                     |"<<endl;</p><p>  cout<<"|_____

140、____________________________________________________________|"<<endl;</p><p>  cout<<endl;</p><p>  while(i<3)</p><p><b>  {</b></p><p>

141、  cout<<"Login:";</p><p>  cin>>users;</p><p>  cout<<"Pass:";</p><p><b>  cin>>pwd;</b></p><p>  if(chklogin(us

142、ers,pwd))</p><p>  {in=true;break;}</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  createroot();</p><p><b>  while(in)</b

143、></p><p><b>  {</b></p><p>  if(!run())</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p

144、><p>  五、程序運行結果及分析</p><p><b>  1.程序主界面</b></p><p><b>  2.顯示命令的幫助</b></p><p><b>  3.運行命令</b></p><p><b>  六、課程設計總結<

145、/b></p><p>  通過本次的課程設計,使我能夠正確運用操作系統(tǒng)課程中所學的基本理論和知識,加深了對文件系統(tǒng)基本概念的理解,以及磁盤文件系統(tǒng)的文件操作。還有讓我感受挺深的是對軟件工程方法的應用。設計一個軟件,先要做好需求分析,這一點很重要,如果沒有分析好需求,到軟件設計的最后,發(fā)現所做的功能不符合要求,那么一切都得重做,前面所有的努力都付諸東流。還有比較重要的是,寫好E-R圖,至少畫出語境級的數據流

146、圖,以及仔細畫好程流程圖。在程序設計的開始,由于分析工作做得不夠深入和細致,吃了點小苦頭。對于這樣一個小設計來說,都會吃苦頭,要是大工程更是無法想像,有可能會項目失敗。以后得加強對軟件工程的學習。另外在運用C語言的時候,感覺有點生疏,在組織語言時時而出錯,在編程和調試的過程中,經常會出現意想不到的問題,并非每個問題都可以從相關資料中找到解決方法,有些問題是無法預料到的,這就需要通過自己理性的分析得出問題的解決方案。</p>

147、<p>  在設計過程中,查詢了不少相關資料,不斷的發(fā)現問題、提出問題、解決問題。在對自己所編寫的源程序段的糾錯的過程中,使我更好的理解了操作系統(tǒng)中文件系統(tǒng)的理論知識,同時在編程時用到了模塊化的設計思想,這種編程方法可以使我們的編程變的更簡單,可以使我們的查錯與糾錯變的更方便??偟膩碚f通過這次的設計的學習使我學到了很多在平時的學習中學不到的很多東西,通過這次課程設計,使我對操作系統(tǒng)和編程產生興趣,我想我會在這條路上繼續(xù)前進下

148、去。我相信,只要不斷的嚴格要求自己,注意培養(yǎng)自己的思維能力,就一定會有更大更輝煌的發(fā)展和提高。</p><p><b>  七、參考文獻</b></p><p>  1. 徐虹等編著.操作系統(tǒng)實驗指導——基于Linux內核.北京: 清華大學出版社.2004.</p><p>  2. 陳向群等編著. Windows內核實驗教程. 北京: 機械工

溫馨提示

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

評論

0/150

提交評論