2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩42頁(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>  操作系統(tǒng)課程設(shè)計(jì)</b></p><p><b>  說(shuō) 明 書</b></p><p><b>  前言</b></p><p>  簡(jiǎn)單地說(shuō),Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),它主要用于基于Intel x86系列CPU的計(jì)算機(jī)上。這個(gè)系

2、統(tǒng)是由世界各地的成千上萬(wàn)的程序員設(shè)計(jì)和實(shí)現(xiàn)的。其目的是建立不受任何商品化軟件的版權(quán)制約的、全世界都能自由使用的Unix兼容產(chǎn)品。</p><p>  Linux不僅為用戶提供了強(qiáng)大的操作系統(tǒng)功能,而且還提供了豐富的應(yīng)用軟件。用戶不但可以從Internet上下載Linux及其源代碼,而且還可以從Internet上下載許多Linux的應(yīng)用程序??梢哉f(shuō),Linux本身包含的應(yīng)用程序以及移植到Linux上的應(yīng)用程序包羅萬(wàn)

3、象,任何一位用戶都能從有關(guān)Linux的網(wǎng)站上找到適合自己特殊需要的應(yīng)用程序及其源代碼,這樣,用戶就可以根據(jù)自己的需要下載源代碼,以便修改和擴(kuò)充操作系統(tǒng)或應(yīng)用程序的功能。這對(duì)Windows NT、Windows98、MS-DOS或OS/2等商品化操作系統(tǒng)來(lái)說(shuō)是無(wú)法做到的。</p><p>  Linux具有:穩(wěn)定、可靠、安全的優(yōu)點(diǎn),并且有強(qiáng)大的網(wǎng)絡(luò)功能。其中有對(duì)讀、寫進(jìn)行權(quán)限控制、審計(jì)跟蹤、核心授權(quán)等技術(shù)

4、,這些都為安全提供了保障。在相關(guān)軟件的支持下,可實(shí)現(xiàn)WWW、FTP、DNS、DHCP、E-mail等服務(wù),還可作為路由器使用,利用IPCHAINS/IPTABLE網(wǎng)絡(luò)治理工具可構(gòu)建NAT及功能全面的防火墻。</p><p>  Linux是在GNU公共許可權(quán)限下免費(fèi)獲得的,是一個(gè)符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)。Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯器、高級(jí)語(yǔ)言編譯器等應(yīng)用軟件

5、。它還包括帶有多個(gè)窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標(biāo)和菜單對(duì)系統(tǒng)進(jìn)行操作。</p><p><b>  目錄</b></p><p><b>  1需求分析3</b></p><p>  1.1 功能介紹3</p><p

6、>  1.2 目的及意義5</p><p>  1.2.1 目的5</p><p>  1.2.2 意義6</p><p>  1.3 設(shè)計(jì)成果7</p><p><b>  2總體設(shè)計(jì)8</b></p><p><b>  2.1功能介紹8</b><

7、/p><p><b>  2.2模塊關(guān)聯(lián)9</b></p><p><b>  3詳細(xì)設(shè)計(jì)12</b></p><p>  3.1用戶結(jié)構(gòu)12</p><p>  3.2數(shù)據(jù)結(jié)構(gòu)說(shuō)明12</p><p>  3.3主要功能的關(guān)鍵代碼13</p><p

8、>  4測(cè)試及運(yùn)行結(jié)果18</p><p>  4.1 測(cè)試定義18</p><p>  4.2 測(cè)試目的18</p><p>  4.3 測(cè)試結(jié)果19</p><p>  4.3.1 文件測(cè)試19</p><p><b>  5心得23</b></p><p

9、><b>  1需求分析</b></p><p><b>  1.1 功能介紹</b></p><p>  基于Linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)完成以下功能:</p><p>  (1)創(chuàng)建用戶:手動(dòng)的創(chuàng)建10個(gè)用戶,都在界面上完成,輸入用戶名;每個(gè)用戶最多可以保存10個(gè)文件。</p><p&

10、gt;  (2)用戶登錄:手動(dòng)的登錄已經(jīng)創(chuàng)建的用戶,正確輸入用戶名即可成功登錄。 </p><p> ?。?)顯示所有用戶:首先會(huì)創(chuàng)建很多用戶,為了清晰、便捷的查看用戶,所以在界面上可以顯示所有的用戶,這一功能的實(shí)現(xiàn),主要是針對(duì)忘記自己用戶名的用戶,可以通過(guò)查看全部用戶來(lái)查找自己的用戶名。</p><p>  (4)創(chuàng)建二級(jí)文件目錄(MD):手動(dòng)的輸入目錄名稱,(即設(shè)置主目錄(MFD)和用

11、戶文</p><p>  件目錄(UFD))。</p><p> ?。?)顯示目錄:將用戶創(chuàng)建的目錄顯示在界面上。</p><p>  (6)刪除目錄:手動(dòng)輸入目錄的名稱即可刪除已經(jīng)創(chuàng)建的目錄。</p><p>  (7)進(jìn)入目錄:進(jìn)入目錄內(nèi)部,可以進(jìn)行文件的各種操作。</p><p> ?。?)修改目錄:在用戶登錄后

12、,輸入要修改的目錄名稱,對(duì)其進(jìn)行修改,輸入新的目</p><p><b>  錄名并保存。</b></p><p> ?。?)建立一個(gè)文件(create):在目錄中手動(dòng)輸入文件名,可以創(chuàng)建新的文件,在創(chuàng)建</p><p>  的同時(shí)輸入文件的保護(hù)碼,對(duì)文件內(nèi)容進(jìn)行保護(hù),防止信息泄露。</p><p> ?。?0)打開(kāi)全部

13、文件(openall):將已經(jīng)創(chuàng)建的文件夾全部顯示在界面上。</p><p>  (11)刪除一個(gè)文件(delete):手動(dòng)輸入已經(jīng)創(chuàng)建的文件的名稱,即可刪除此文件。</p><p> ?。?2)寫文件(write):手動(dòng)的在文件中寫入內(nèi)容。</p><p> ?。?3)讀文件(read):查看文件中的已經(jīng)寫入的內(nèi)容。</p><p>  (

14、14)移動(dòng)文件:用戶可以將某個(gè)目錄下的文件移動(dòng)到其它的目錄中,只為了整理文件,便于查詢,使用。</p><p> ?。?5)改文件的保護(hù)碼(change):手動(dòng)修改文件的密碼(保護(hù)碼)。</p><p>  基于以上的功能,可以使用戶選擇操作,模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn);此類功能都是在頁(yè)面上手動(dòng)操作完成。</p><p><b>  1.2 目的及意義<

15、;/b></p><p><b>  1.2.1 目的</b></p><p>  通過(guò)課程設(shè)計(jì),加深對(duì)操作系統(tǒng)各資源管理模塊的理解,掌握操作系統(tǒng)的基本原理及功能,具有初步分析實(shí)際操作系統(tǒng)、設(shè)計(jì)、構(gòu)造和開(kāi)發(fā)現(xiàn)代操作系統(tǒng)的基本能力?;贚inux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),熟悉基本的網(wǎng)絡(luò)命令以及他們的使用方法,體會(huì)Linux多用戶的特點(diǎn),熟悉網(wǎng)絡(luò)配置文件的配置方法

16、。本系統(tǒng)是基于linux平臺(tái)運(yùn)行在終端上的虛擬二級(jí)文件管理系統(tǒng)。模擬真正的文件管理系統(tǒng),并采用用戶登錄機(jī)制對(duì)文件和目錄進(jìn)行創(chuàng)建,增加內(nèi)容,修改,刪除的操作。對(duì)于目錄而言,可以進(jìn)行創(chuàng)建刪除新添文件的操作;對(duì)于文件而言,可以創(chuàng)建,修改,刪除。刪除目錄時(shí),同時(shí)刪除相應(yīng)目錄下的文件以及文件中的內(nèi)容。采用用戶登錄使得用戶管理文件更方便, 并形成了二級(jí)的文件管理模式。</p><p>  操作系統(tǒng)(OS)是重要的計(jì)

17、算機(jī)系統(tǒng)軟件,同時(shí)也是最活躍的學(xué)科之一,其發(fā)展極為迅速。它是配置在計(jì)算機(jī)硬件上的第一層軟件,是對(duì)硬件系統(tǒng)的首次擴(kuò)充。它在計(jì)算機(jī)系統(tǒng)中占據(jù)了特別重要的地位;而其它的諸如匯編程序、編譯程序、數(shù)據(jù)庫(kù)管理系統(tǒng)等系統(tǒng)軟件,以及大量的應(yīng)用軟件,都將依賴于操作系統(tǒng)的支持,取得它的服務(wù)。操作系統(tǒng)已成為現(xiàn)代計(jì)算機(jī)系統(tǒng)、多處理機(jī)系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、多媒體系統(tǒng)以及嵌入式系統(tǒng)中都必須配置的、最重要的系統(tǒng)軟件。</p><p>  課程設(shè)計(jì)

18、是學(xué)習(xí)的總結(jié),通過(guò)課程設(shè)計(jì)溫習(xí)我們已經(jīng)學(xué)到的知識(shí)并加以運(yùn)用,還可以了解到其它的知識(shí),來(lái)充實(shí)自己,充分掌握操作系統(tǒng)的基本原理及各方面知識(shí)。</p><p><b>  1.2.2 意義</b></p><p>  基于其低廉成本與高度可設(shè)定性,Linux常常被應(yīng)用于嵌入式系統(tǒng),例如機(jī)頂盒、移動(dòng)電話及行動(dòng)裝置等。在移動(dòng)電話上,Linux已經(jīng)成為與Symbian 

19、OS、Windows Mobile系統(tǒng)并列的三大智能手機(jī)操作系統(tǒng)之一;而在移動(dòng)裝置上,則成為Windows CE與Palm OS外之另一個(gè)選擇。目前流行的TiVo數(shù)位攝影機(jī)使用了經(jīng)過(guò)定制化后的Linux。此外,有不少硬件式的網(wǎng)絡(luò)防火墻及路由器,例如部份LinkSys的產(chǎn)品,其內(nèi)部都是使用Linux來(lái)驅(qū)動(dòng)、并采用了操作系統(tǒng)提供的防火墻及路由功能。 </p><p>  Lin

20、ux以它的高效性和靈活性著稱。它能夠在PC計(jì)算機(jī)上實(shí)現(xiàn)全部的Unix特性,具有多任務(wù)、多用戶的能力。Linux是在GNU公共許可權(quán)限下免費(fèi)獲得的,是一個(gè)符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)。Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯器、高級(jí)語(yǔ)言編譯器等應(yīng)用軟件。它還包括帶有多個(gè)窗口管理器的X-Window圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標(biāo)和菜單對(duì)系統(tǒng)進(jìn)行操作。

21、  </p><p>  Linux之所以受到廣大計(jì)算機(jī)愛(ài)好者的喜愛(ài),主要原因有兩個(gè),一是它屬于自由軟件,用戶不用支付任何費(fèi)用就可以獲得它和它的源代碼,并且可以根據(jù)自己的需要對(duì)它進(jìn)行必要的修改,無(wú)償對(duì)它使用,無(wú)約束地繼續(xù)傳播。另一個(gè)原因是,它具有Unix的全部功能,任何使用Unix操作系統(tǒng)或想要學(xué)習(xí)Unix操作系統(tǒng)的人都可以從Linux中獲益。</p><p>  在L

22、inux操作系統(tǒng)中實(shí)現(xiàn)文件的各種操作,即創(chuàng)建、刪除、修改、寫入、讀取等。通過(guò)課程設(shè)計(jì)讓我們進(jìn)一步了解操作系統(tǒng),學(xué)習(xí)操作系統(tǒng)的各方面知識(shí),加深對(duì)操作系統(tǒng)的認(rèn)識(shí),溫習(xí)課上學(xué)過(guò)的知識(shí),明確操作系統(tǒng)的作用??梢栽诓煌慕嵌葋?lái)觀察操作系統(tǒng)的作用。從一般客戶的觀點(diǎn),可把操作系統(tǒng)看做是用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口;從資源管理的觀點(diǎn)看,則可把操作系統(tǒng)視為計(jì)算機(jī)系統(tǒng)資源的管理者。另外,操作系統(tǒng)實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象,隱藏了對(duì)硬件操作的細(xì)節(jié),使用戶能更

23、方便地使用機(jī)器。</p><p><b>  1.3 設(shè)計(jì)成果</b></p><p>  基于Linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),實(shí)現(xiàn)了采用用戶登錄機(jī)制,可以查看文件信息,管理文件及文件夾。在界面中用戶可以手動(dòng)的進(jìn)行操作,每一步都有操作成功或失敗的提示,清晰的展示每一步的操作過(guò)程,用戶可以方便的實(shí)現(xiàn)對(duì)文件的操作,例如:創(chuàng)建、修改、刪除等。</p>&

24、lt;p>  經(jīng)過(guò)幾天的努力完成了基于Linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)這一課題,按照具體的要求,將每個(gè)功能實(shí)現(xiàn)并附上溫馨提示,主要的功能有:展示了添加用戶、用戶登錄、創(chuàng)建二級(jí)目錄、修改目錄名、刪除目錄、顯示全部目錄、創(chuàng)建文件、修改文件名、刪除文件、寫入文件、讀取文件、修改文件保護(hù)碼等功能。</p><p><b>  2總體設(shè)計(jì)</b></p><p>&l

25、t;b>  2.1功能介紹</b></p><p>  本系統(tǒng)包括用戶管理、目錄管理、文件管理共3個(gè)模塊。在用戶管理模塊中,包括創(chuàng)建用戶,輸入用戶名;用戶登錄等功能。在目錄管理模塊中,包括創(chuàng)建二級(jí)文件目錄,輸入文件的目錄名稱;顯示目錄,輸入文件目錄的名字,顯示出對(duì)應(yīng)的目;刪除目錄;進(jìn)入目錄主要是為了操作目錄內(nèi)部的文件。文件管理模塊,包括文件的創(chuàng)建,在進(jìn)入目錄后可以按照提示輸入文件的名稱,輸入密碼

26、,創(chuàng)建新的文件并添加文件的保護(hù)碼;打開(kāi)一個(gè)文件,在目錄中按照提示輸入文件的名稱,便可以打開(kāi)目錄中對(duì)應(yīng)的文件;打開(kāi)全部文件,進(jìn)入目錄后,按照提示輸入相應(yīng)的操作,即可打開(kāi)本目錄下所有的文件;刪除一個(gè)文件,進(jìn)入目錄按照提示選擇相應(yīng)的操作,輸入文件名稱,即可刪除此文件;寫入文件,在目錄中打開(kāi)一個(gè)文件,寫入內(nèi)容;讀取文件,在目錄中打開(kāi)文件,查看文件的內(nèi)容。修改保護(hù)碼,進(jìn)入目錄輸入文件的名稱,按照提示修改文件的保護(hù)碼。形象展示見(jiàn)下圖2.1</

27、p><p><b>  圖2.1</b></p><p><b>  2.2模塊關(guān)聯(lián)</b></p><p>  在系統(tǒng)中各個(gè)模塊之間有著一定的聯(lián)系,系統(tǒng)中創(chuàng)建10個(gè)用戶,每一個(gè)用戶可以創(chuàng)建多個(gè)目錄,在目錄中最多創(chuàng)建10個(gè)文件。用戶與目錄之間存在一對(duì)多的關(guān)系,目錄與文件之間也存在一對(duì)多的關(guān)系,用戶與文件之間也存在一對(duì)多的關(guān)系。

28、具體描述見(jiàn)下圖:</p><p><b>  圖2.2</b></p><p>  圖2.3 </p><p><b>  圖2.4 </b></p><p><b>  圖2.5 </b></p><p>&l

29、t;b>  3詳細(xì)設(shè)計(jì)</b></p><p><b>  3.1用戶結(jié)構(gòu)</b></p><p>  typedef struct user{</p><p>  char name[10];</p><p>  Content *con;</p><p>  struct u

30、ser *next;</p><p><b>  }User;</b></p><p>  本系統(tǒng)可以創(chuàng)建10個(gè)用戶,用戶登陸時(shí)只要輸入正確便可進(jìn)入系統(tǒng),否則提示失敗要求重新輸入。</p><p><b>  do{</b></p><p>  printf("輸入新用戶名:\n"

31、;);</p><p>  scanf("%s",name);</p><p><b>  exist=0;</b></p><p>  head=user->next;</p><p>  while(head!=NULL){</p><p>  if(strcmp(h

32、ead->name,name)==0){</p><p><b>  exist=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  head=head->next;</p>&l

33、t;p><b>  }</b></p><p>  if(exist==1) printf("用戶名已存在!\n請(qǐng)重新輸入:");</p><p>  }while(exist==1);</p><p><b>  3.2數(shù)據(jù)結(jié)構(gòu)說(shuō)明</b></p><p><b&g

34、t;  文件結(jié)構(gòu)鏈表</b></p><p>  struct fnode { </p><p>  char filename[FILENAME_LENGTH]; </p><p>  int  isdir; </p><p>  int 

35、isopen; </p><p>  char content[255];  </p><p>  fnode *parent;  </p><p>  fnode *child; </p><p>  fnode *prev; &#

36、160;</p><p>  fnode *next; </p><p><b>  };</b></p><p><b>  函數(shù)介紹</b></p><p>  void zengjiayonghu();//增加新用戶 </p><p>  void

37、newfile(Content *con);//創(chuàng)建新文件</p><p>  int display_files(Content *con);//展示所有文件</p><p>  void dufile(Content *con);//讀取文件</p><p>  void writefile(Content *con);//寫入文件</p><

38、;p>  void shanchufile(Content *con);刪除文件</p><p>  void yidongfile(User *u,Content *con);//移動(dòng)文件</p><p>  int zhankaiallconcent(User *u);//展示所有文件</p><p>  void newcontentname(Conte

39、nt *c,char name[]);//更改目錄名稱 </p><p>  void newconcent(User *u);//增加新目錄 </p><p>  void shanchuconcent(User *u);//刪除目錄 </p><p>  void xiugaiconcentname(User *u);//修改目錄名稱</p>&l

40、t;p>  void change_filepassword(Content *con);//修改文件保護(hù)碼</p><p>  int readall_files(Content *con);//讀取所有文件</p><p>  3.3主要功能的關(guān)鍵代碼</p><p><b>  創(chuàng)建文件</b></p><p&g

41、t;  在用戶成功的創(chuàng)建目錄后,就可以創(chuàng)建文件了,創(chuàng)建新的文件時(shí)首先判斷文件名是否已經(jīng)存在,如果存在則提示重新輸入,否則提示“請(qǐng)輸入文件保護(hù)碼!”,在輸入文件保護(hù)碼后,將創(chuàng)建新的文件成功。</p><p><b>  關(guān)鍵代碼:</b></p><p>  do{</p><p><b>  exist=0;

42、</b></p><p>  printf("請(qǐng)輸入新文件名:");</p><p>  scanf("%s",f_name);</p><p>  strcat(f_name,tail);</p><p>  if(is_exist_file(con->file,f_name)) e

43、xist=1;</p><p>  if(exist==1) printf("文件名已存在!\n");</p><p>  }while(exist==1);</p><p>  printf("請(qǐng)輸入文件保護(hù)碼:\n");</p><p>  scanf("%s",passwor

44、d);</p><p>  q=fopen(f_name,"w");</p><p>  fclose(q);</p><p>  while(file->next!=NULL) file=file->next;</p><p>  new_f=(File *)malloc(sizeof(File));&

45、lt;/p><p>  strcpy(new_f->name,f_name);</p><p>  strcpy(new_f->password,password);</p><p>  new_f->next=NULL;</p><p>  file->next=new_f;</p><p>  

46、con->filenum++;</p><p>  printf("添加文件成功!\n",f_name);</p><p><b>  }</b></p><p><b>  讀取文件</b></p><p>  讀取文件即查看文件中的內(nèi)容,當(dāng)輸入要讀取的文件名后,進(jìn)行判斷

47、文件名稱是否存在,若存在則打開(kāi)文件,查看文件的內(nèi)容,否側(cè)提示“文件名不存在!”,重新選擇讀取的文件名,進(jìn)行下一步的操作。</p><p><b>  關(guān)鍵代碼:</b></p><p>  strcat(name,tail);</p><p>  while(file!=NULL){</p><p>  if(strcm

48、p(name,file->name)==0){</p><p><b>  find=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  file=file->next;</p>

49、<p><b>  }</b></p><p>  if(find==0){</p><p>  printf("文件名不存在!\n");</p><p><b>  return;</b></p><p><b>  }</b></p>

50、;<p><b>  寫入文件</b></p><p>  在正常的操作中,用戶創(chuàng)建文件主要是保存一些信息;在此系統(tǒng)中,用戶創(chuàng)建文件后可以在文件中寫入一些內(nèi)容,發(fā)揮文件的作用。首先判斷用戶輸入的文件名是否存在,再判斷用戶輸入的保護(hù)碼是否正確,正確進(jìn)入文件后便可以進(jìn)入文件,進(jìn)行寫操作。</p><p><b>  關(guān)鍵代碼:</b>&

51、lt;/p><p>  strcat(name,tail);</p><p>  while(file!=NULL){</p><p>  if(strcmp(name,file->name)==0){</p><p><b>  find=1;</b></p><p><b>  b

52、reak;</b></p><p><b>  }</b></p><p>  file=file->next;</p><p><b>  }</b></p><p>  if(find==0){</p><p>  printf("抱歉,文件名

53、不存在\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  do{</b></p><p>  printf("請(qǐng)輸入保護(hù)碼:");</p><p&g

54、t;  scanf("%s",password);</p><p>  if(strcmp(password,file->password)==0) login=1;</p><p>  if(login==0) printf("保護(hù)碼錯(cuò)誤!\n請(qǐng)重新輸入:");</p><p>  }while(login==0);&

55、lt;/p><p>  printf("現(xiàn)在文件已經(jīng)被打開(kāi)了...\n");</p><p>  write(name);</p><p>  printf("\n文件%s寫入成功!\n",name);</p><p><b>  移動(dòng)文件</b></p><p&g

56、t;  移動(dòng)文件是很常用的操作,用戶經(jīng)常整理自己的文件,將一些文件移動(dòng)到其它的目錄下,此操作首先輸入要移動(dòng)的文件的名稱,確認(rèn)用戶輸入的文件存在后,再輸入移動(dòng)的目標(biāo)目錄,進(jìn)行判斷后將文件移動(dòng)到此處,并提示“移動(dòng)成功!”。</p><p><b>  關(guān)鍵代碼:</b></p><p><b>  do{</b></p><p&g

57、t;<b>  exist=1;</b></p><p>  printf("請(qǐng)輸入你想要移動(dòng)的文件名:");</p><p>  scanf("%s",name);</p><p>  strcat(name,tail);</p><p>  if(!is_exist_file(

58、con->file,name)) exist=0;</p><p>  if(exist==0) printf("該文件名不存在!\n");</p><p>  }while(exist==0);</p><p>  printf("移動(dòng)中...\n");</p><p>  file=con-&

59、gt;file;</p><p>  f=file->next;</p><p>  while(f!=NULL){</p><p>  if(strcmp(f->name,name)==0) break;</p><p>  file=file->next;</p><p>  f=f->ne

60、xt;</p><p><b>  } </b></p><p><b>  temp_f=f;</b></p><p>  file->next=f->next;</p><p>  printf("請(qǐng)輸入您想要移動(dòng)到的目標(biāo)目錄名: ");</p>&

61、lt;p>  scanf("%s",c_name);</p><p><b>  c=u->con;</b></p><p>  while(c->next!=NULL){</p><p>  if(strcmp(c->name,c_name)==0) break;</p><p&

62、gt;  c=c->next;</p><p><b>  }</b></p><p>  f=c->file;</p><p>  while(f->next!=NULL) f=f->next;</p><p>  f->next=temp_f;</p><p> 

63、 temp_f->next=NULL;</p><p>  printf("移動(dòng)成功!\n");</p><p><b>  刪除文件</b></p><p>  有時(shí)一些文件對(duì)用戶來(lái)說(shuō)是沒(méi)有什么意義的,便可以將其刪除,在用戶登錄成功后,進(jìn)入目錄選擇刪除文件操作,輸入要?jiǎng)h除的文件名,系統(tǒng)進(jìn)行判斷文件名是否存在,當(dāng)文件存

64、在時(shí)可以執(zhí)行刪除操作,提示“文件刪除成功!”。</p><p><b>  關(guān)鍵代碼:</b></p><p>  if(display_files(con)==0) printf("抱歉,你沒(méi)有文件可刪除!\n");</p><p><b>  else{</b></p><p&g

65、t;<b>  do{</b></p><p><b>  exist=1;</b></p><p>  printf("請(qǐng)輸入您想要?jiǎng)h除的文件名:");</p><p>  scanf("%s",name);</p><p>  strcat(name,ta

66、il);</p><p>  if(!is_exist_file(con->file,name)) exist=0;</p><p>  if(exist==0) printf("抱歉,該文件不存在!\n");</p><p>  }while(exist==0);</p><p>  printf("文件

67、刪除中...");</p><p>  file=con->file;</p><p>  f=file->next;</p><p>  while(f!=NULL){</p><p>  if(strcmp(f->name,name)==0) break;</p><p><b&g

68、t;  file=f;</b></p><p>  f=f->next;</p><p><b>  } </b></p><p><b>  修改文件的保護(hù)碼</b></p><p>  保護(hù)碼是文件的安全保護(hù),現(xiàn)在的信息技術(shù)不斷增強(qiáng),也有很多人通過(guò)獲取其它人的文件來(lái)盜用他人重要

69、資料或信息,所以很多人采取密保來(lái)防止自己的文件內(nèi)容泄露。有時(shí)人們會(huì)隨意的設(shè)置自己的密碼,可能在設(shè)置后需要修改更加嚴(yán)密的密碼。再次我們?cè)O(shè)計(jì)了修改文件保護(hù)碼,方便用戶的更改。用戶選擇要修改的文件,系統(tǒng)判斷文件名是否存在,若存在則提示輸入原文件的保護(hù)碼,再次進(jìn)行判斷保護(hù)碼是否輸入正確,最后輸入新的保護(hù)碼,并進(jìn)行保存,提示“密碼修改成功!”。</p><p><b>  關(guān)鍵代碼:</b></

70、p><p>  void change_filepassword(Content *con){</p><p>  int login=0;</p><p>  char name[10];</p><p>  char tail[]=".txt";</p><p>  int find=0;</

71、p><p>  char password[10];</p><p>  char newpassword[10];</p><p>  File *file=con->file->next;</p><p>  printf("請(qǐng)輸入要修改保護(hù)碼的文件名:");</p><p>  sca

72、nf("%s",name);</p><p>  strcat(name,tail);</p><p>  while(file!=NULL){</p><p>  if(strcmp(name,file->name)==0){</p><p><b>  find=1;</b></p&g

73、t;<p><b>  break;</b></p><p><b>  }</b></p><p>  file=file->next;</p><p><b>  }</b></p><p>  if(find==0){</p><p

74、>  printf("啊噢。。。文件名不存在\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  do{</b></p><p>  printf("請(qǐng)輸入原密碼:

75、");</p><p>  scanf("%s",password);</p><p>  if(strcmp(password,file->password)==0) login=1;</p><p>  if(login==0) printf("真是悲哀,原密碼輸入錯(cuò)誤!\n請(qǐng)重新輸入:");</p&

76、gt;<p>  }while(login==0);</p><p>  printf("請(qǐng)輸入新密碼:");</p><p>  scanf("%s",newpassword);</p><p>  strcpy(file->password,newpassword);</p><p&

77、gt;  printf("\n密碼修改成功!\n");</p><p><b>  }</b></p><p>  以上是每個(gè)模塊的具體的操作介紹并附加關(guān)鍵代碼,關(guān)鍵代碼對(duì)一個(gè)系統(tǒng)來(lái)說(shuō)是非常重要的,有時(shí)候我們可以通過(guò)關(guān)鍵代碼以及注釋等來(lái)理解系統(tǒng)中的各種功能。在此系統(tǒng)中主要展示了添加用戶、用戶登錄、創(chuàng)建二級(jí)目錄、修改目錄名、刪除目錄、顯示全部目錄、創(chuàng)

78、建文件、修改文件名、刪除文件、寫入文件、讀取文件、修改文件保護(hù)碼等功能。</p><p><b>  4測(cè)試及運(yùn)行結(jié)果</b></p><p><b>  4.1 測(cè)試定義</b></p><p>  任何項(xiàng)目的開(kāi)發(fā)成功都離不開(kāi)測(cè)試,說(shuō)明測(cè)試起著重要的作用。測(cè)試使用人工或者自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)

79、它是否滿足規(guī)定的去求或弄清楚預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。它是幫助識(shí)別開(kāi)發(fā)完成(中間或最終的版本)的計(jì)算機(jī)軟件(整體或部分)的正確度(correctness)完全度(completeness)和質(zhì)量(quality)的軟件過(guò)程;是SQA的重要子域。</p><p>  測(cè)試并不僅僅是為了找出錯(cuò)誤,通過(guò)分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的發(fā)生趨勢(shì),可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前軟件開(kāi)發(fā)過(guò)程中的缺陷,以便及時(shí)改進(jìn);</p&g

80、t;<p>  這種分析也能幫助測(cè)試人員設(shè)計(jì)出有針對(duì)性的測(cè)試方法,改善測(cè)試的效果和有效性;</p><p>  沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完成的測(cè)試是評(píng)定軟件質(zhì)量的一種方法。</p><p>  測(cè)試可以分為黑盒測(cè)試和白盒測(cè)試,測(cè)試的方法不同,測(cè)試的結(jié)果、重點(diǎn)也不相同,選擇合適的測(cè)試方法對(duì)項(xiàng)目的承重有著重要的作用。</p><p><b&g

81、t;  4.2 測(cè)試目的</b></p><p>  如果測(cè)試的目的是為了盡可能多地找出錯(cuò)誤,那么測(cè)試就應(yīng)該直接針對(duì)軟件比較復(fù)雜的部分或者以前出錯(cuò)比較多的位置。如果測(cè)試的目的是為了給最終用戶提供具有一定可信度的質(zhì)量評(píng)價(jià),那么測(cè)試就應(yīng)該直接針對(duì)在實(shí)際應(yīng)用中會(huì)經(jīng)常用到的商業(yè)假設(shè)。當(dāng)然測(cè)試的目的不僅僅如此,也不會(huì)只針對(duì)某個(gè)部分進(jìn)行測(cè)試,而忽略其它部分,測(cè)試必須要全面。</p><p>

82、;  測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行的過(guò)程;</p><p>  測(cè)試是為了證明程序有錯(cuò),而不是證明程序無(wú)錯(cuò)誤;</p><p>  一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;</p><p>  一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。</p><p><b>  4.3 測(cè)試結(jié)果</b></p>

83、<p>  4.3.1 文件測(cè)試</p><p>  用戶的操作對(duì)象是文件,首先創(chuàng)建文件,當(dāng)輸入文件名時(shí),測(cè)試文件名輸入的是否正確,輸入的文件名已經(jīng)存在時(shí),會(huì)出現(xiàn)提示信息;在文件中寫入內(nèi)容時(shí),測(cè)試輸入任何字符都可以,像普通的記事本一樣;在讀取文件時(shí),可以正常的讀取出文件中存在的內(nèi)容;刪除文件時(shí),輸入文件名,測(cè)試文件名是否輸入正確,在文件名不存在時(shí),界面出現(xiàn)提示信息;修改文件保護(hù)碼,測(cè)試輸入的初始文件保護(hù)

84、碼是否輸入正確,顯示提示信息,當(dāng)輸入正確時(shí),可以對(duì)保護(hù)碼進(jìn)行修改,并修改成功。測(cè)試的結(jié)果是正確的。</p><p>  成功創(chuàng)建文件界面設(shè)計(jì):示圖4.3.1</p><p><b>  圖4.3.1</b></p><p>  寫入文件界面設(shè)計(jì):示圖4.3.2</p><p><b>  圖4.3.2</

85、b></p><p>  讀取文件界面設(shè)計(jì):示圖4.3.3</p><p><b>  圖4.3.3</b></p><p>  刪除文件界面設(shè)計(jì):示圖4.3.4</p><p><b>  圖4.3.4</b></p><p>  修改文件保護(hù)碼界面設(shè)計(jì):示圖4.3.

86、5</p><p><b>  圖4.3.5</b></p><p>  移動(dòng)文件界面設(shè)計(jì):示圖4.3.6</p><p><b>  圖4.3.6</b></p><p>  顯示所有文件界面設(shè)計(jì):示圖4.3.7</p><p><b>  圖4.3.7</

87、b></p><p><b>  4.4 測(cè)試總結(jié)</b></p><p>  經(jīng)過(guò)測(cè)試,按照要求進(jìn)行測(cè)試,確保功能的完整性,是否有不正確或遺漏了的功能;在接口上輸入能否正確接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在所有可能的輸入條件和輸出條件

88、中確定廁所是數(shù)據(jù),來(lái)檢查程序是否都能產(chǎn)生正確的輸出。</p><p>  在系統(tǒng)開(kāi)發(fā)的過(guò)程中,進(jìn)行每一步的調(diào)試,確保每一個(gè)方法、語(yǔ)句都被執(zhí)行到;開(kāi)發(fā)后,針對(duì)具體的要求,進(jìn)行測(cè)試,測(cè)試出系統(tǒng)中的功能能正常運(yùn)行,切每一步不合理的操作,界面上都有提示信息,便于用戶的操作、使用。經(jīng)過(guò)測(cè)試,在此系統(tǒng)中的所有功能都是按照要求實(shí)現(xiàn)的,且都附有操作提示,避免用戶操作失誤而導(dǎo)致不必要的麻煩。</p><p>

89、;  4.4 詳細(xì)代碼(在Linux環(huán)境下可運(yùn)行成功)</p><p>  #include<sys/stat.h>//調(diào)用系統(tǒng)函數(shù)</p><p>  #include<sys/types.h></p><p>  #include<stdio.h></p><p>  #include<uni

90、std.h></p><p>  #include<dirent.h></p><p>  #include<stdlib.h></p><p>  #include <errno.h></p><p>  #include<fcntl.h> </p>

91、<p>  #include <string.h></p><p>  struct Flie</p><p><b>  {</b></p><p>  int ed; //判斷是否正存放文件</p><p>  char f_name[8]; //文件名</p>

92、<p>  char f_c[8]; //存放文件內(nèi)容</p><p>  int att ; // 文件屬性0為只讀 //用于指向文件內(nèi)容模塊</p><p>  }fa[8],fg[8];</p><p>  int x; //全局變量</p><p>  /* 文件塊數(shù)據(jù)結(jié)構(gòu) */&l

93、t;/p><p>  //typedef struct _FileTable</p><p><b>  //{</b></p><p>  //char *FileName;//文件名</p><p>  //int strat;//文件在磁盤存儲(chǔ)空間的起始地址</p><p>  /

94、/int length; //文件內(nèi)容長(zhǎng)度</p><p>  //int maxlength; //文件的最大長(zhǎng)度</p><p>  //char FileKind[3]; //文件的屬性——讀寫方式</p><p>  //struct tm *timeinfo;</p><p>  //

95、BOOL openFlag;//判斷是否有進(jìn)程打開(kāi)了該文件</p><p>  //struct _fileTable *next;</p><p>  //}FileTable;</p><p>  struct File1</p><p><b>  {</b></p><p>  c

96、har *filename;//用戶文件夾名</p><p>  int id;//文件夾編號(hào)</p><p><b>  };</b></p><p>  struct File1 fileName[10];//10個(gè)用戶文件</p><p>  int I=0;//全局變量,用來(lái)控制用戶文件數(shù)目

97、</p><p>  int init(); //初始化界面</p><p>  void check(); //密碼認(rèn)證</p><p>  void fileopera();//文件操作</p><p>  int content(void);//目錄操作</p><p>  void add_conten

98、t(void);//創(chuàng)建目錄</p><p>  void delete_content();//刪除目錄</p><p>  void createfile(); //創(chuàng)建文件操作</p><p>  void deletefile() ; //刪除文件的操作</p><p>  void openfile

99、() ; //打開(kāi)文件操作</p><p>  void writefile(); //寫文件</p><p>  void catalogue() ; //目錄管理子程序</p><p>  void modifyfile(); //修改屬性操作</p><p>  void c

100、opyfile(); // 復(fù)制文件操作</p><p>  int show_content(int a,char argv[10]);//顯示目錄</p><p>  int main(void)</p><p><b>  {</b></p><p><b>  while(1)</b>

101、;</p><p><b>  {</b></p><p><b>  int n;</b></p><p>  printf("******************************\n");</p><p>  printf("******* 1.目錄管理

102、 *********\n");</p><p>  printf("******* 2.文件管理 *********\n");</p><p>  printf("******* 3.退 出 *********\n");</p><p>  printf("******************

103、************\n");</p><p>  printf("請(qǐng)選擇\n" );</p><p>  scanf("%d",&n);</p><p><b>  switch(n)</b></p><p><b>  {</b>&

104、lt;/p><p><b>  case 1:</b></p><p>  content();//調(diào)用目錄管理函數(shù)</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  fileop

105、era();//調(diào)用文件管理函數(shù)</p><p><b>  case 3:</b></p><p><b>  exit(0);</b></p><p><b>  default :</b></p><p>  printf("您的輸入有誤,退出!\n&quo

106、t;);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int content(void)&

107、lt;/p><p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  int m;</b></p><p>  printf("*

108、*****************************\n");</p><p>  printf("******* 1.創(chuàng)建目錄 *********\n");</p><p>  printf("******* 2.刪除目錄 *********\n");</p><p>  printf("

109、******* 3.顯示目錄 *********\n");</p><p>  printf("******* 4.退出 *********\n");</p><p>  printf("******************************\n");</p><p>  printf(&quo

110、t;請(qǐng)選擇\n" );</p><p>  scanf("%d",&m);</p><p><b>  switch(m)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p>

111、;<p>  add_content();//創(chuàng)建目錄</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  delete_content();//刪除目錄</p><p><b>  break;

112、</b></p><p><b>  case 3:</b></p><p>  show_content(2,"/liwei");//顯示目錄</p><p><b>  break;</b></p><p>  case 4:</p>

113、<p>  //exit(0);//退出目錄管理</p><p><b>  return 0;</b></p><p><b>  default:</b></p><p>  printf("您的輸入有誤,退出!\n");</p><p><b> 

114、 return 0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void add_content(void)</p><p><b

115、>  {</b></p><p>  char ptr[20];</p><p><b>  int a;</b></p><p>  while(I<=10){</p><p><b>  if(I==0)</b></p><p>  {printf

116、("請(qǐng)輸入您所要?jiǎng)?chuàng)建的主目錄:\n");scanf("%s",ptr);</p><p>  a = mkdir(ptr,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH | S_IRWXO | S_IWOTH);</p><p><b>  if(a==0)</b></p><p&

117、gt;  {printf("主目錄創(chuàng)建成功!\n");fileName[I++].filename=ptr;break;} </p><p><b>  else</b></p><p>  {printf("目錄創(chuàng)建失?。n");break;}</p><p><b>  }</b&g

118、t;</p><p>  printf("請(qǐng)輸入您所要?jiǎng)?chuàng)建的用戶目錄:\n");</p><p>  scanf("%s",ptr);</p><p>  a = mkdir(ptr,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH | S_IRWXO | S_IWOTH); </p>

119、<p><b>  if(a==0)</b></p><p>  {printf("目錄創(chuàng)建成功!\n");fileName[I++].filename=ptr;break;}</p><p><b>  else</b></p><p>  {printf("目錄創(chuàng)建失??!\n&q

120、uot;);break;}</p><p><b>  //將目錄保存</b></p><p><b>  if(I>10)</b></p><p>  printf("已經(jīng)有10個(gè)用戶文件目錄,不能再創(chuàng)建了!\n");</p><p><b>  }</b

121、></p><p><b>  }</b></p><p><b>  //刪除目錄</b></p><p>  void delete_content()</p><p><b>  {</b></p><p><b>  DIR *d

122、ir;</b></p><p>  char ptr[20];</p><p><b>  int a,i;</b></p><p>  printf("請(qǐng)輸入你要?jiǎng)h除的目錄:\n");</p><p>  scanf("%s",ptr);</p><

123、;p>  for(i=0;i<10;i++)</p><p><b>  {</b></p><p>  if((strcmp(fileName[i++].filename,ptr) ))</p><p><b>  {</b></p><p>  dir=opendir(ptr);

124、//打開(kāi)目錄</p><p>  if(dir!=NULL)</p><p><b>  {</b></p><p>  if(readdir(dir))</p><p><b>  {</b></p><p>  a=rmdir(ptr);//執(zhí)行刪除操作</p

125、><p><b>  if(a==0)</b></p><p>  {printf("目錄刪除成功!\n");I--;fileName[i++].filename=NULL;break;}</p><p><b>  else</b></p><p>  {printf("

126、目錄刪除失敗!\n");break;}</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  {printf("文件目錄不存在!\n");break;}&l

127、t;/p><p><b>  }</b></p><p>  else printf("沒(méi)有該目錄!");break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  int show

128、_content(int argc,char argv[10])</p><p><b>  {</b></p><p><b>  DIR *dp;</b></p><p>  struct dirent *dirp;</p><p><b>  int n=0;</b>&l

129、t;/p><p>  if(argc != 2)</p><p><b>  {</b></p><p>  printf("a single argument is required \n");</p><p><b>  exit(0);</b></p><p

130、><b>  }</b></p><p>  if((dp=opendir(argv)) == NULL)</p><p>  printf("can't open %s\n", argv);</p><p>  while(((dirp=readdir(dp)) != NULL))</p>&l

131、t;p><b>  {</b></p><p>  printf("%10s",dirp->d_name);//輸出結(jié)果中有兩個(gè)特殊的文件“.”和“..”其中文件“.”表示當(dāng)前目錄的入口,文件“..”表示父目錄的入口</p><p><b>  }</b></p><p>  print

132、f(" \n");</p><p>  closedir(dp);</p><p><b>  }</b></p><p>  void check() //密碼認(rèn)證</p><p><b>  {</b></p><p>  int check,a=1;

133、</p><p>  char pin1[]="admin"; //設(shè)定口令</p><p>  char pin[20];</p><p><b>  while(a)</b></p><p><b>  {</b></p><p>  printf(&

134、quot;* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");</p><p>  printf(" * 文件管理系統(tǒng)用戶登錄 *\n");</p><p>  printf("* * * * * * * * * * * * * * * * * * * *

135、 * * * * * * * *\n");</p><p>  printf("請(qǐng)選擇用戶:\n");</p><p>  printf(" 1.Administrator 2.Guest 3.退出系統(tǒng)\n");</p><p>  scanf("%d",&x)

136、;</p><p><b>  if(x==3)</b></p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  printf("

溫馨提示

  • 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)論