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

下載本文檔

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

文檔簡介

1、<p>  計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院信息管理與信息系統(tǒng)專業(yè)</p><p>  《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報告</p><p> ?。?010/2011學(xué)年 第一學(xué)期)</p><p>  學(xué)生姓名: </p><p>  學(xué)生班級: 信息管理與信息系統(tǒng)092001</p><p>

2、  學(xué)生學(xué)號: </p><p>  指導(dǎo)教師: </p><p>  2011年 01 月 07 日</p><p>  信息管理與信息系統(tǒng) 專業(yè)課程設(shè)計(jì)任務(wù)書</p><p><b>  目錄</b></p><p>  第一

3、章 需求分析1</p><p><b>  1.1設(shè)計(jì)內(nèi)容1</b></p><p>  1.2 設(shè)計(jì)任務(wù)1</p><p>  1.3 基本要求1</p><p>  第二章 系統(tǒng)功能設(shè)計(jì)3</p><p><b>  2.1系統(tǒng)功能3</b></p>

4、;<p>  2.2 各個模塊之間的主要關(guān)系4</p><p>  第三章 詳細(xì)設(shè)計(jì)5</p><p>  3.1系統(tǒng)的總體流程5</p><p>  3.2 main() 函數(shù)模塊6</p><p>  3.3 查詢所有圖書信息函數(shù)模塊7</p><p>  3.4 查詢一本圖書信息函數(shù)模塊

5、7</p><p>  3.5添加圖書信息函數(shù)模塊8</p><p>  3.6 刪除圖書信息函數(shù)模塊9</p><p>  3.7借閱圖書模塊10</p><p>  3.8 圖書丟失模塊10</p><p>  3.9 金額賠償模塊10</p><p>  3.10 老師學(xué)生信息管

6、理系統(tǒng)10</p><p>  第四章 調(diào)試及測試11</p><p>  4.1 主菜單運(yùn)行界面11</p><p>  4.2 查詢所有圖書信息模塊運(yùn)行界面11</p><p>  4.3 查找某一本圖書信息模塊運(yùn)行界面12</p><p>  4.4 添加圖書信息模塊運(yùn)行界面13</p>

7、<p>  4.5 刪除圖書信息模塊運(yùn)行界面13</p><p><b>  第五章 總結(jié)15</b></p><p><b>  第六章 致謝16</b></p><p>  第七章 參考文獻(xiàn)17</p><p>  第八章 程序源代碼18</p><p&

8、gt;<b>  第一章 需求分析</b></p><p><b>  1.1設(shè)計(jì)內(nèi)容</b></p><p>  利用c++的文件操作能力設(shè)計(jì)開發(fā)一個小型的圖書管信息管理系統(tǒng),至少具有如下功能:查尋所有圖書信息、通過輸入圖書編號來完成查找某一本圖書信息、添加圖書信息 、刪除圖書信息 以及通過學(xué)生學(xué)號實(shí)現(xiàn)圖書借閱功能。操作界面要符合用戶的一般習(xí)慣

9、,界面易于讀者明白理解,圖形或文本界面都可以。</p><p><b>  1.2 設(shè)計(jì)任務(wù)</b></p><p>  要求:明確課程設(shè)計(jì)的目的,能根據(jù)課程設(shè)計(jì)的要求,查閱相關(guān)文獻(xiàn),為完成設(shè)計(jì)準(zhǔn)備必要的知識; 提高學(xué)生用高級語言進(jìn)行程序設(shè)計(jì)的能力,重點(diǎn)提高用C++進(jìn)行文件操作和繪圖應(yīng)用的編程技術(shù)水平;初步了解軟件開發(fā)的一般方法和步驟; 提高撰寫技術(shù)文檔的能力。掌握模

10、塊化編程的基本方法與步驟;鞏固和加深學(xué)生對C++課程基本知識的理解與掌握,培養(yǎng)學(xué)生利用C++進(jìn)行軟件操作的能力和技巧。</p><p><b>  1.3 基本要求</b></p><p>  (1)通過提示菜單選擇可以進(jìn)行的操作。</p><p>  (2)將圖書的信息存入文件中,并命名為BookInfo.txt。</p>&l

11、t;p>  (3)將圖書借閱情況信息存入文件中,并命名為SendInfo.txt。</p><p>  (4)在本系統(tǒng)中可以進(jìn)行管理系統(tǒng)包含的基本操作,其中包括:</p><p>  a)查看所有圖書的信息。</p><p>  b)輸入一本圖書的圖書編號,從當(dāng)前圖書中進(jìn)行查找,如果找到則顯示該圖書的相關(guān)信息,如果沒有找到則給出提示信息。</p>

12、<p>  c)添加一本圖書的基本信息,通過輸入圖書編號,首先查找是否存在該圖書編號的圖書,如果存在則提示重新輸入,否則將該圖書按照順序插入到相應(yīng)位置。</p><p>  d)刪除一本圖書的基本信息,通過輸入圖書編號,首先查找是否存在該圖書編號的圖書,如果存在則將該圖書刪除,否則給出提示信息,提示該圖書不存在。 </p><p>  e)借閱一本圖書,需要給出學(xué)號和圖書編號,

13、如果圖書編號不存在則重新輸入,直到輸入正確為止,并將學(xué)號和相應(yīng)的圖書編號存入SendInfo.txt文件中。</p><p>  (5)圖書基本信息包括圖書編號、書名、作者、出版社和價錢這些簡單信息。</p><p>  (6)圖書信息文件中每一行存放一本圖書的信息。</p><p>  (7)借閱信息文件中每一行存放一本書的借閱情況。</p><

14、;p>  (8)對老師.學(xué)生的信息進(jìn)行登記處理,包括姓名、學(xué)號教師編號、學(xué)院班級等。</p><p>  (9)對圖書的金額進(jìn)出管理,對一丟失的圖書進(jìn)行處罰、對超期歸還的圖書進(jìn)行賠償金額計(jì)算。</p><p>  第二章 系統(tǒng)功能設(shè)計(jì)</p><p><b>  2.1系統(tǒng)功能</b></p><p><b&

15、gt;  圖1 系統(tǒng)功能圖</b></p><p>  圖書管理在生活中運(yùn)用非常廣泛,因此需要用許多的程序來對它們進(jìn)行管理。此程序包含了圖書信息的錄入、圖書信息的瀏覽、圖書的查詢和排序、圖書信息的刪除與修改,借書,還書,統(tǒng)計(jì)等。通過編譯一個C++函數(shù),其中包含一個主函數(shù),多個子函數(shù),主函數(shù)調(diào)用其余的子函數(shù)實(shí)現(xiàn)人們能夠簡易、快捷的了解并找到自己所學(xué)要的信息的功能。</p><p>

16、;  1、查詢所有圖書信息:將所有圖書信息包括編號、書名、出版社、作者、價格等顯示在屏幕上。</p><p>  2、查找一本圖書的信息:通過輸入圖書編號完成圖書信息的查找,并在屏幕上顯示。</p><p>  3、修改圖書信息:通過輸入編號,判斷此圖書是否存在,若不存在則提示用戶重新輸入圖書編號。 </p><p>  4、刪除圖書信息:通過輸入編號,判斷此圖書是

17、否存在,若存在, 則提示用戶是否顯示刪除后的信息,若不存在則提示用戶重新輸入圖書編號。</p><p>  5、借書:通過輸入圖書編號,判斷此圖書是否存在,若不存在則提示用戶重新輸入圖書編號,若圖書已借出則提示用戶是否繼續(xù)借書,若沒借出則將此圖書的編號和學(xué)生的學(xué)號存入圖書借閱文件中。</p><p>  6、圖書丟失:若圖書丟失,對已丟失圖書進(jìn)行刪除處理,并通過金額賠償系統(tǒng)進(jìn)行圖書的金額賠

18、償管理。</p><p>  7、金額賠償:通過輸入一丟失圖書的編號對以丟失的圖書的金額進(jìn)行顯示在屏幕上。</p><p>  8、老師信息:通過選擇讀者信息中的老師信息可以對老師的信息進(jìn)行添加.刪除和修改。最后通過輸入老師的編號可以對老師的信息進(jìn)行查詢。</p><p>  9、學(xué)生信息:通過選者讀者信息中的學(xué)生信息可以對學(xué)生的信息進(jìn)行添加,刪除和下該。最后通過輸

19、入學(xué)生的學(xué)號可以對學(xué)生的信息進(jìn)行查詢。</p><p>  10、退出系統(tǒng):返回主頁面。</p><p>  2.2 各個模塊之間的主要關(guān)系</p><p>  圖書信息管理系統(tǒng)可劃分為7個模塊:查詢所有圖書模塊、查找一本圖書信息模塊、修改圖書信息模塊、刪除圖書信息模塊、借閱圖書模塊、圖書丟失模塊、金額賠償模塊。各模塊之間均有著或多或少的聯(lián)系,比如: 查找一本圖書信

20、息模塊、修改信息模塊、刪除信息模塊、借閱圖書模塊都需要先判斷該圖書是否存在,然后再進(jìn)行其它操作。圖書丟失后對已丟失圖書的信息進(jìn)行刪除,刪除后顯示出圖書的價格病進(jìn)行金額賠償。理解了各模塊之間的主要關(guān)系有利于程序的設(shè)計(jì)與完成,使程序的層次結(jié)構(gòu)清晰,便于程序的編寫、閱讀和調(diào)試。</p><p><b>  第三章 詳細(xì)設(shè)計(jì)</b></p><p>  3.1系統(tǒng)的總體流程&

21、lt;/p><p><b>  圖2 系統(tǒng)流程圖</b></p><p>  系統(tǒng)的整體流程如上圖所示,開始后顯示輸出菜單選擇進(jìn)入讀者信息模塊或者圖書管理模塊,讀者信息中是對教師和學(xué)生的信息進(jìn)行編輯如信息的添加、刪除和修改。主要是針對如果圖書丟失或者超期歸還時計(jì)算賠償金額用的。教師的歸還圖書期限為60天,學(xué)生為30天。圖書管理模塊式針對圖書進(jìn)行管理,如顯示出全部圖書.即顯

22、示出未被借出的圖書、添加一本圖書信息、刪除一本圖書信息、顯示一本圖書信息產(chǎn)看一本圖書是否被借、借閱圖書功能、圖書丟失功能、查看圖書的價格對圖書進(jìn)行賠償、金額管理管理計(jì)算出丟失圖書的賠償金額和超期歸還圖書的金額。主要根據(jù)當(dāng)前系統(tǒng)時間模塊進(jìn)行計(jì)算。</p><p>  3.2 main() 函數(shù)模塊</p><p>  根據(jù)圖書館信息管理系統(tǒng)的要求,可設(shè)計(jì)一個主函數(shù),及定義多個用戶自定義函數(shù)。

23、在主函數(shù)中定義全局變量,即是在函數(shù)外部定義的變量,其不屬于某一個函數(shù),而屬于一個源程序文件,在整個程序內(nèi)可以多次被引用。通過將switch語句與break語句聯(lián)合使用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序的設(shè)計(jì)。運(yùn)用fscanf語句在主函數(shù)中將文件中的內(nèi)容賦給結(jié)構(gòu)體變量,便于在自定義函數(shù)中對結(jié)構(gòu)體的調(diào)用。</p><p><b>  具體如下: </b></p><p>  在主

24、函數(shù)中定義一個存放圖書信息的結(jié)構(gòu)體</p><p>  struct list{</p><p>  char num[20] ; /*圖書編號*/ </p><p>  char name[40] ; /*書名*/</p><p>  char author[40] ;

25、 /*作者*/</p><p>  char publish [40]; /*出版社*/</p><p>  ouble price;/*價格*/</p><p><b>  };</b></p><p><b>  以及各函數(shù)的申明</b><

26、/p><p>  void search_allinformation(struct list b[]) ; /*查看全部圖書信息*/</p><p>  void check_bookinformation (struct list b[] );/*查找圖書信息*/</p><p>  void add_bookinformation (struct list b[]

27、 ); /*添加圖書信息*/</p><p>  double delete_bookinformation (struct list b[] );/*刪除圖書信息*/</p><p>  void borrow_book (struct list b[] ) ; /*借閱圖書*/</p><p>  void lost_book(struc

28、t list b[]); /*圖書丟失*/</p><p>  double cash_manage(); /*金額賠償*/ </p><p>  通過將switch語句與break語句聯(lián)合使用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序的設(shè)計(jì)。 </p><p>  sw

29、itch (choice1)</p><p>  { case 1 : search_allinformation (b); </p><p><b>  break ;</b></p><p>  case 2 : check_bookinformation( b );</p><p><b>

30、  break ;</b></p><p>  case 3 : add_bookinformation (b );</p><p><b>  break ;</b></p><p>  case 4 : delete_bookinformation( b);</p><p><b>

31、  break ;</b></p><p>  case 5 : borrow_book( b);</p><p><b>  break ; </b></p><p>  case 6 : lost_book( b);</p><p><b>  break ;</b><

32、;/p><p>  case 7 : cash_manage();</p><p><b>  break ;</b></p><p>  case 0 : break ;</p><p><b>  }</b></p><p>  3.3 查詢所有圖書信息函數(shù)模塊<

33、;/p><p>  void search_allinformation (struct list b[])</p><p>  通過printf()語句將所有的圖書信息包括包括編號、書名、出版社、作者、價格等信息顯示在屏幕上。運(yùn)用for語句加printf()實(shí)現(xiàn)圖書信息的循環(huán)輸出顯示。</p><p>  3.4 查詢一本圖書信息函數(shù)模塊</p><

34、;p>  void check_bookinformation(struct list b[] )</p><p>  用戶先輸入圖書編號后,先用strcmp(s1, s2)函數(shù)進(jìn)行比較兩個字符串?dāng)?shù)組的大小,從而查找出該圖書是否存在,若不存在則提示用戶是否要繼續(xù)查找,運(yùn)用switch語句 ,若繼續(xù)則再次調(diào)用函數(shù)本身進(jìn)行第二次查找,直到找到為止,若否則結(jié)束循環(huán),不再進(jìn)行查找。 通過將switch語句與brea

35、k語句聯(lián)合使用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序的設(shè)計(jì)。運(yùn)用fscanf語句在主函數(shù)中將文件中的內(nèi)容賦給結(jié)構(gòu)體。</p><p>  圖3 查詢一本圖書函數(shù)功能模塊圖</p><p>  3.5添加圖書信息函數(shù)模塊</p><p>  void add_bookinformation(struct list b[] )</p><p>  輸入圖書的基

36、本信息包括編號、書名、出版社、作者、價格,由于原有的圖書信息是按照編號的大小順序排列的,所以只需運(yùn)用for循環(huán) 和strcmp函數(shù)找出輸入的圖書應(yīng)該插入的位置,再將所添加的圖書信息插入即可。</p><p>  圖4 添加圖書信息函數(shù)功能模塊圖</p><p>  3.6 刪除圖書信息函數(shù)模塊</p><p>  void delete_bookinformatio

37、n (struct list b[] )</p><p>  用戶輸入所要刪除的圖書編號,先查找該圖書編號是否存在,若存在,這提示用戶是否要顯示刪除后的信息,若不存在則提示重新輸入。 </p><p>  圖5 刪除圖書信息函數(shù)功能模塊圖</p><p><b>  3.7借閱圖書模塊</b></p><p>  voi

38、d borrow_book(struct list b[] )</p><p>  用戶先輸入所借圖書的編號,調(diào)用函數(shù)查找該圖書有沒有借出,若已借出,則提示用戶該圖書已借出,并提示用戶是否繼續(xù)借閱其他書籍。若繼續(xù),則繼續(xù)進(jìn)行新的查找。</p><p>  圖6 借閱圖書函數(shù)功能模塊圖</p><p>  3.8 圖書丟失模塊</p><p>

39、  用戶先輸入以丟失圖書的編號,調(diào)用函數(shù)刪除圖書的相關(guān)信息,并顯示出圖書的金額。</p><p>  3.9 金額賠償模塊</p><p>  用戶對以丟失的圖書進(jìn)行賠償。對以超期歸還的圖書用當(dāng)前系統(tǒng)統(tǒng)時間系統(tǒng)進(jìn)行計(jì)算正確的罰款數(shù)額。</p><p>  3.10 老師學(xué)生信息管理系統(tǒng) </p><p>  對老師和學(xué)生的信息進(jìn)行儲存,其中有

40、添加,刪除和修改功能。</p><p><b>  第四章 調(diào)試及測試</b></p><p>  4.1 主菜單運(yùn)行界面</p><p>  運(yùn)行程序可進(jìn)入系統(tǒng)菜單欄,可選擇如圖功能進(jìn)行下一步的操作。</p><p>  圖7 主菜單運(yùn)行界面圖</p><p>  4.2 查詢所有圖書信息模塊

41、運(yùn)行界面</p><p>  按1操作查詢所有未被借出的圖書信息,如圖所示,選擇下一步操作可對圖書進(jìn)行下一步操作。</p><p>  圖8 查詢所有圖書信息模塊界面</p><p>  4.3 查找某一本圖書信息模塊運(yùn)行界面</p><p>  按2選擇按書名查詢某一本圖書信息,若圖書編號存在則界面如下:</p><p&

42、gt;  圖9 圖書編號查詢圖書界面</p><p>  若圖書不存在這顯示該圖書不存在。</p><p>  4.4 添加圖書信息模塊運(yùn)行界面</p><p>  按3選擇,輸入編號,界面如下:</p><p>  圖10 按圖書編號添加圖書界面</p><p>  輸入圖書的編號.書名.作者出版社.和價格。完成之后

43、顯示是否顯示添加后的圖書信息,選擇是則顯示剛添加的圖書信息,選擇否則返回主菜單。</p><p>  4.5 刪除圖書信息模塊運(yùn)行界面</p><p>  按4選擇,輸入編號,如果編號不存在,界面如下:</p><p>  圖11 按圖書編號刪除圖書界面</p><p>  如果編號存在,界面如下:</p><p> 

44、 圖12 按圖書編號刪除圖書界面</p><p>  如果編號不存在,界面如下:</p><p>  圖13 借閱圖書界面</p><p>  輸入學(xué)號這可以成功借出,若不存在則顯示該圖書不存在。</p><p><b>  第五章 總結(jié)</b></p><p>  通過這次課程設(shè)計(jì),使我對C語

45、言有了更進(jìn)一步的認(rèn)識和了解,要想學(xué)好它要重在實(shí)踐,要通過不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,通過學(xué)習(xí)也有所改進(jìn);再有對C語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,所以后在學(xué)習(xí)過程中,我會更加注視實(shí)踐操作。 在課程設(shè)計(jì)過程中,收獲知識,提高能力的同時,我也懂得怎么樣去制定、實(shí)現(xiàn)計(jì)劃,課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識發(fā)現(xiàn)提出分析和解決實(shí)際問題鍛煉實(shí)踐能力的重

46、要環(huán)節(jié)是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,自從拿到題目到完成整個編程,從理論到實(shí)踐,可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,在設(shè)計(jì)中我們

47、遇到了很多編程問題,最后在高老師的辛勤指導(dǎo)下,我們慢慢的進(jìn)入狀態(tài),我做的是一個圖書館信息管理</p><p><b>  第六章 致謝</b></p><p>  非常感謝XX老師的指導(dǎo),在設(shè)計(jì)中我們遇到了很多編程問題,最后在高老師的辛勤指導(dǎo)下,我們慢慢的進(jìn)入狀態(tài),順利的完成了編程題目。每天我們在機(jī)房編寫程序,高老師也寸步不離 ,幫助我們解決問題,由于編程是在英文狀態(tài)

48、下進(jìn)行的,很多單詞不知道意思,導(dǎo)致不懂提示的錯誤源頭的意思,從而無法找出錯誤的根本原因。在這方面XX老師給了我們提供了很大的幫助 。在程序出現(xiàn)錯誤的時候,高老師耐心的幫我們調(diào)試,查找錯誤。在此我對各位辛勤工作的老師致以最誠摯的感謝。</p><p><b>  第七章 參考文獻(xiàn)</b></p><p>  [1] 譚浩強(qiáng)編著.C++程序設(shè)計(jì).北京:清華大學(xué)出版社.20

49、04</p><p>  [2](美)戴特爾(Deitel,H.M.)等編著.張引等譯.C++大學(xué)基礎(chǔ)教程(第五版).北京電子工業(yè)出版社.2006.6</p><p>  [3] 夏云慶編著.Visual C++ 6.0數(shù)據(jù)庫高級編程.北京希望電子出版社.2002</p><p>  [4] 伍俊良編著.Visual C++6.0課程設(shè)計(jì)與系統(tǒng)開發(fā)案例.北京清華大學(xué)

50、出版社.2002.11</p><p><b>  第八章 程序源代碼</b></p><p>  # include <stdio.h></p><p>  # include <string.h></p><p>  # include <stdlib.h></p>

51、<p>  struct list{</p><p>  char num[20] ; /*圖書編號*/ </p><p>  char name[40] ; /*書名*/</p><p>  char author[40] ; /*作者*/</p>

52、<p>  char publish [40]; /*出版社*/</p><p>  double price ; /*價格*/</p><p><b>  };</b></p><p>  struct list b[40] ;</p><p> 

53、 int w=0; /*定義一個全局變量,用來記錄bookinfo.txt文件中的數(shù)據(jù)個數(shù)*/</p><p>  double total,total2;//全局的金額</p><p>  void search_allinformation(struct list b[]) ; /*查看全部圖書信息*/</p

54、><p>  void check_bookinformation (struct list b[] ); /*查找圖書信息*/</p><p>  void add_bookinformation (struct list b[] ); /*添加圖書信息*/</p><p>  double delete_bookinformation (struct l

55、ist b[] ); /*刪除圖書信息*/</p><p>  void borrow_book (struct list b[] ) ; /*借閱圖書*/</p><p>  void lost_book(struct list b[]); /*圖書丟失*/</p><p>  double cash_mana

56、ge();</p><p>  char s[20] ;</p><p>  int main ()</p><p><b>  { </b></p><p>  int i = 0 ;</p><p>  int choice1;</p><p>  FILE

57、 *fp ;</p><p>  printf(" * ****************************** *\n");</p><p>  printf(" * 歡迎進(jìn)入圖書館信息管理系統(tǒng) *\n");</p><p>  pr

58、intf(" * ****************************** *\n");</p><p>  fp = fopen ("e:\\BookInfo.txt" , "r") ;</p><p>  if(fp == NULL)</p><p>  {

59、 printf("Can not open the file 1 !\n") ;</p><p>  exit (0) ;</p><p><b>  }</b></p><p>  while (! feof(fp))</p><p><b>  { </b></p

60、><p>  fscanf(fp,"%s%s%s%s%lf" , /*調(diào)用函數(shù)將文件中的數(shù)據(jù)讀入結(jié)構(gòu)變量中*/</p><p>  b[i].num,b[i].name,b[i].author,b[i].publish,&b[i].price) ; </p><p>  i++ ;

61、 </p><p><b>  }</b></p><p><b>  w=i-1; </b></p><p>  fclose (fp) ;</p><p><b>  do { </b></p><p>  printf("#####

62、###########################################################################");</p><p>  printf(" 功能選項(xiàng): \n");</p><p

63、>  printf(" 1:查看全部圖書信息 \n") ;</p><p>  printf(" 2:查找圖書信息 \n") ;&

64、lt;/p><p>  printf(" 3:添加圖書信息 \n") ;</p><p>  printf(" 4:刪除圖書信息

65、 \n") ;</p><p>  printf(" 5:借閱圖書 \n") ;</p><p>  printf(" 6:圖書丟失

66、 \n") ;</p><p>  printf(" 7:金額管理 \n") ;</p><p>  printf(" 0

67、:退出系統(tǒng) \n") ;</p><p>  printf("################################################################################");</p><p>  printf(&q

68、uot;請選擇操作:");</p><p>  scanf("%d" , &choice1); </p><p>  switch (choice1)</p><p><b>  {</b></p><p>  case 1 : </p><p>  se

69、arch_allinformation (b); </p><p><b>  break ;</b></p><p><b>  case 2 :</b></p><p>  check_bookinformation( b );</p><p><b>  break ;</b&

70、gt;</p><p><b>  case 3 : </b></p><p>  add_bookinformation (b );</p><p><b>  break ;</b></p><p><b>  case 4 :</b></p><p&

71、gt;  delete_bookinformation( b);</p><p><b>  break ;</b></p><p><b>  case 5 : </b></p><p>  borrow_book( b);</p><p><b>  break ;</b>

72、</p><p><b>  case 6 : </b></p><p>  lost_book( b);</p><p><b>  break ;</b></p><p><b>  case 7 : </b></p><p>  cash_mana

73、ge();</p><p><b>  break ;</b></p><p><b>  case 0 :</b></p><p><b>  break ;</b></p><p><b>  }</b></p><p>  }

74、while (choice1 != 0);</p><p>  printf("謝謝使用!\n");</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  /*查看全部圖書信息*/</p><p&g

75、t;  void search_allinformation (struct list b[])</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf(" ##############################

76、######\n");</p><p>  printf(" # 查看全部圖書信息! #\n"); </p><p>  printf(" ####################################\n");</p>&

77、lt;p>  printf("圖書的相關(guān)信息: 編號 書名 作者 出版社 價格\n");</p><p>  for(i=0;i<w;i++)</p><p>  { </p><p>  printf(" %s %s

78、 %s %s %.2f\n", /*將數(shù)據(jù)輸出到屏幕中*/</p><p>  b[i].num, b[i].name, b[i].author, b[i].publish, b[i].price);</p><p><b>  } </b></p><p>  printf("%d " ,

79、 w);</p><p>  printf("################################################################################\n");</p><p><b>  }</b></p><p>  /*查找圖書信息*/</p>&l

80、t;p>  void check_bookinformation(struct list b[] )</p><p><b>  {</b></p><p>  int i, flag=0;</p><p>  char s[20];</p><p>  printf("輸入編號:\n") ;

81、 /*提示輸入圖書編號*/</p><p>  scanf("%s" , s);</p><p>  printf(" #####################################\n");</p><p>  printf("

82、 # 查找圖書信息! #\n");</p><p>  printf(" #####################################\n");</p><p>  for(i=0;i<w;i++)</p><p>  if (strcmp(s,

83、 b[i].num)==0) </p><p><b>  {</b></p><p>  printf("該圖書的相關(guān)信息: 編號 書名 作者 出版社 價格\n");</p><p>  printf(" %s %s %s %s

84、 %.2f\n", </p><p>  b[i].num, b[i].name, b[i].author, b[i].publish, b[i].price);</p><p><b>  flag = 1;</b></p><p><b>  break;</b></p><p&

85、gt;<b>  } </b></p><p>  if (flag == 0)</p><p><b>  {</b></p><p>  printf("該圖書編號不存在!\n");</p><p>  printf("是否要繼續(xù)查找? y:是 ; n:否\n&q

86、uot;) ;</p><p>  getchar();</p><p>  switch(getchar())</p><p><b>  {</b></p><p><b>  case 'y':</b></p><p>  check_bookinfor

87、mation( b ) ; /*調(diào)用函數(shù)本身繼續(xù)查找*/</p><p>  case 'n' :</p><p><b>  break ;</b></p><p><b>  }</b></p><p><b>  }</b></p>

88、<p>  printf("################################################################################\n");</p><p><b>  }</b></p><p>  /*添加圖書信息*/</p><p>  void ad

89、d_bookinformation(struct list b[] )</p><p><b>  {</b></p><p>  int i, count=0, choice3; </p><p>  struct list p ;</p><p>  FILE *fp2 ;</p><p>

90、;  printf(" #####################################\n");</p><p>  printf(" # 添加圖書信息! #\n");</p><p>  printf("

91、 #####################################\n");</p><p>  printf("請輸入該圖書的相關(guān)信息:\n") ;</p><p>  printf("編號 書名 作者 出版社 價格\n");</p><p>  scanf("

92、 %s %s %s %s %lf",</p><p>  p.num , p.name,p.author,p.publish,&p.price); </p><p>  printf(" 添加成功 !\n");</p><p>  printf("

93、; 是否顯示添加后的信息? 1:是 ; 2:否 \n");</p><p>  printf(" 請選擇:");</p><p>  scanf("%d" , &choice3);</p><p>  switch (choice3)</p><p><b>  {</

94、b></p><p><b>  case 1 :</b></p><p><b>  {</b></p><p>  for(i=0;i<w;i++)</p><p>  if(strcmp(p.num,b[i].num)>0)</p><p>  cou

95、nt ++ ;</p><p>  for(i=w;i>count;i--)</p><p>  b[i] = b[i-1] ;</p><p>  b[i] = p ;</p><p>  w++; /*每添加一本圖書,圖書數(shù)目都會增加一個*/ </p><p>  

96、fp2 = fopen ("e:\\BookInfo.txt" , "w") ;</p><p>  if(fp2 == NULL)</p><p><b>  { </b></p><p>  printf("Can not open the file 2 !\n");</p

97、><p>  exit (0) ;</p><p><b>  }</b></p><p>  for(i=0;i<w;i++)</p><p>  fprintf(fp2," %s %s %s %s %.2f\n" , </p><p&g

98、t;  b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price); </p><p>  fclose (fp2) ;</p><p>  for(i=0;i<w;i++)</p><p>  printf(" %s %s %s %

99、s %.2f\n" , </p><p>  b[i].num,b[i].name,b[i].author,b[i].publish,b[i].price); </p><p><b>  }</b></p><p><b>  case 2 :</b></p><p><b

100、>  break ;</b></p><p><b>  }</b></p><p>  printf("################################################################################\n");</p><p><b&g

101、t;  }</b></p><p>  /*刪除圖書信息*/</p><p>  double delete_bookinformation (struct list b[] )</p><p><b>  { </b></p><p>  int i, flag= 0,choice4;</p>

102、;<p><b>  double a;</b></p><p>  printf(" #####################################\n");</p><p>  printf(" # 刪除圖書信息

103、 #\n");</p><p>  printf(" #####################################\n");</p><p>  printf("請輸入圖書編號:");</p><p>  scanf("%s", s); </p>

104、;<p>  for(i=0;i<w;i++) </p><p>  if(strcmp(s,b[i].num)==0)</p><p><b>  { </b></p><p>  printf(" 刪除成功 !\n");</p><p>  printf("

105、 是否顯示刪除后的信息? 1:是 ; 2:否 \n");</p><p>  printf(" 請選擇:");</p><p>  total+=b[i].price;</p><p>  //a=total;</p><p>  scanf("%d" , &choice4);<

106、/p><p>  switch (choice4)</p><p><b>  {</b></p><p><b>  case 1 :</b></p><p><b>  {</b></p><p>  printf("刪除后的圖書信息: 編號

107、 書名 作者 出版社 價格\n");</p><p>  for(i=0;i<w;i++)</p><p><b>  {</b></p><p>  if(strcmp(s,b[i].num)!=0)</p><p>  printf("

108、 %s %s %s %s %.2f\n", </p><p>  b[i].num, b[i].name, b[i].author, b[i].publish, b[i].price);</p><p><b>  }</b></p><p><b>  case 2 :</b&

109、gt;</p><p><b>  break ;</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  flag = 1 ;</p><p><b>  break ;

110、</b></p><p><b>  } </b></p><p>  if(flag == 0)</p><p>  printf("該圖書編號不存在!\n");</p><p>  printf("####################################

111、############################################\n");</p><p>  return total;</p><p><b>  }</b></p><p><b>  /*借閱圖書*/</b></p><p>  void borrow_bo

112、ok(struct list b[] )</p><p><b>  {</b></p><p>  int i=0, n=0,flag=0, x=0;</p><p>  int m; /*定義一個變量用來記錄sendinfo.txt文件中的數(shù)據(jù)個數(shù)*/</p><p>  struct list

113、 q;</p><p>  struct student {</p><p>  char name[20] ;</p><p>  char number[40] ;</p><p><b>  };</b></p><p>  struct student stu[50] ;</p>

114、;<p>  FILE *fp ;</p><p>  FILE *fp4 ;</p><p>  printf(" #####################################\n");</p><p>  printf(" #

115、借閱圖書 #\n");</p><p>  printf(" #####################################\n");</p><p>  A: printf("輸入圖書編號:");</p><p>  scanf("%s

116、" , q.num );</p><p>  fp = fopen ("e:\\BookInfo.txt" , "a") ;</p><p>  if(fp == NULL)</p><p>  { printf("Can not open the file 3 !\n");</p&g

117、t;<p>  exit (0) ;</p><p><b>  } </b></p><p>  for(i=0;i<w;i++)</p><p><b>  { </b></p><p>  if(strcmp(q.num , b[i].num) ==0)</p>

118、;<p><b>  flag=1;</b></p><p><b>  }</b></p><p>  if(flag==0)</p><p><b>  {</b></p><p>  printf("該圖書編號不存在, 請重新輸入!\n"

119、);</p><p>  borrow_book( b ) ;</p><p><b>  }</b></p><p>  fclose(fp) ;</p><p>  if(flag==1)</p><p><b>  { </b></p><p&

120、gt;  fp4 = fopen ("e:\\SentInfo.txt" , "r") ;</p><p>  if(fp4 == NULL)</p><p><b>  { </b></p><p>  printf("Can not open the file 4 !\n")

121、;</p><p>  exit (0) ;</p><p><b>  }</b></p><p>  while (! feof(fp4))</p><p><b>  { </b></p><p>  fscanf(fp4,"%s%s" ,

122、 /*調(diào)用函數(shù)將文件中的數(shù)據(jù)讀入結(jié)構(gòu)變量中*/</p><p>  stu[i].number,stu[i].name) ; </p><p>  i++ ; </p><p><b>  }</b></p><p><b>  n=i-1; <

123、/b></p><p>  fclose (fp4) ; </p><p>  fp = fopen ("e:\\SentInfo.txt" , "a") ;</p><p>  if(fp == NULL)</p><p><b>  { </b></

124、p><p>  printf("Can not open the file 5 !\n");</p><p>  exit (0) ;</p><p><b>  } </b></p><p>  for(i=0;i<n;i++)</p><p>  if(strcmp(q.

125、num, stu[i].number) ==0)</p><p><b>  { </b></p><p>  printf("該圖書已借出!");</p><p>  printf("是否繼續(xù)續(xù)借? y or n\n");</p><p>  getchar();</p

126、><p>  if(getchar()=='y')</p><p><b>  goto A;</b></p><p>  else x = 1;</p><p><b>  }</b></p><p><b>  } </b></p&

127、gt;<p>  if(x == 0) /*若該圖書未借出,則執(zhí)行以下操作*/</p><p>  printf("請輸入學(xué)號: "); </p><p>  scanf("%d", &m);</p><p>  if((fp=fopen("e:\\SendInfo.tx

128、t","a")) == NULL)</p><p><b>  {</b></p><p>  printf("File open error!\n");</p><p><b>  exit(0);</b></p><p><b> 

129、 } </b></p><p>  fprintf(fp," %s %d",q.num , m );</p><p>  fclose(fp);</p><p>  printf(" 借閱成功!\n");</p><p>  printf("################

130、################################################################\n");</p><p><b>  }</b></p><p>  void lost_book(struct list b[])</p><p><b>  {</b></p

131、><p>  total2=delete_bookinformation(b);</p><p><b>  }</b></p><p>  double cash_manage()</p><p><b>  {</b></p><p>  printf("共計(jì)金額:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論