版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院信息管理與信息系統(tǒng)專業(yè)</p><p> 《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》報(bào)告</p><p> ?。?010/2011學(xué)年 第一學(xué)期)</p><p> 學(xué)生姓名: </p><p> 學(xué)生班級(jí): 信息管理與信息系統(tǒng)092001</p><p>
2、 學(xué)生學(xué)號(hào): </p><p> 指導(dǎo)教師: </p><p> 2011年 01 月 07 日</p><p> 信息管理與信息系統(tǒng) 專業(yè)課程設(shè)計(jì)任務(wù)書(shū)</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 各個(gè)模塊之間的主要關(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ū)信息函數(shù)模塊7</p><p> 3.4 查詢一本圖書(shū)信息函數(shù)模塊
5、7</p><p> 3.5添加圖書(shū)信息函數(shù)模塊8</p><p> 3.6 刪除圖書(shū)信息函數(shù)模塊9</p><p> 3.7借閱圖書(shū)模塊10</p><p> 3.8 圖書(shū)丟失模塊10</p><p> 3.9 金額賠償模塊10</p><p> 3.10 老師學(xué)生信息管
6、理系統(tǒng)10</p><p> 第四章 調(diào)試及測(cè)試11</p><p> 4.1 主菜單運(yùn)行界面11</p><p> 4.2 查詢所有圖書(shū)信息模塊運(yùn)行界面11</p><p> 4.3 查找某一本圖書(shū)信息模塊運(yùn)行界面12</p><p> 4.4 添加圖書(shū)信息模塊運(yùn)行界面13</p>
7、<p> 4.5 刪除圖書(shū)信息模塊運(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ì)開(kāi)發(fā)一個(gè)小型的圖書(shū)管信息管理系統(tǒng),至少具有如下功能:查尋所有圖書(shū)信息、通過(guò)輸入圖書(shū)編號(hào)來(lái)完成查找某一本圖書(shū)信息、添加圖書(shū)信息 、刪除圖書(shū)信息 以及通過(guò)學(xué)生學(xué)號(hào)實(shí)現(xiàn)圖書(shū)借閱功能。操作界面要符合用戶的一般習(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)備必要的知識(shí); 提高學(xué)生用高級(jí)語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力,重點(diǎn)提高用C++進(jìn)行文件操作和繪圖應(yīng)用的編程技術(shù)水平;初步了解軟件開(kāi)發(fā)的一般方法和步驟; 提高撰寫(xiě)技術(shù)文檔的能力。掌握模
10、塊化編程的基本方法與步驟;鞏固和加深學(xué)生對(duì)C++課程基本知識(shí)的理解與掌握,培養(yǎng)學(xué)生利用C++進(jìn)行軟件操作的能力和技巧。</p><p><b> 1.3 基本要求</b></p><p> (1)通過(guò)提示菜單選擇可以進(jìn)行的操作。</p><p> (2)將圖書(shū)的信息存入文件中,并命名為BookInfo.txt。</p>&l
11、t;p> (3)將圖書(shū)借閱情況信息存入文件中,并命名為SendInfo.txt。</p><p> (4)在本系統(tǒng)中可以進(jìn)行管理系統(tǒng)包含的基本操作,其中包括:</p><p> a)查看所有圖書(shū)的信息。</p><p> b)輸入一本圖書(shū)的圖書(shū)編號(hào),從當(dāng)前圖書(shū)中進(jìn)行查找,如果找到則顯示該圖書(shū)的相關(guān)信息,如果沒(méi)有找到則給出提示信息。</p>
12、<p> c)添加一本圖書(shū)的基本信息,通過(guò)輸入圖書(shū)編號(hào),首先查找是否存在該圖書(shū)編號(hào)的圖書(shū),如果存在則提示重新輸入,否則將該圖書(shū)按照順序插入到相應(yīng)位置。</p><p> d)刪除一本圖書(shū)的基本信息,通過(guò)輸入圖書(shū)編號(hào),首先查找是否存在該圖書(shū)編號(hào)的圖書(shū),如果存在則將該圖書(shū)刪除,否則給出提示信息,提示該圖書(shū)不存在。 </p><p> e)借閱一本圖書(shū),需要給出學(xué)號(hào)和圖書(shū)編號(hào),
13、如果圖書(shū)編號(hào)不存在則重新輸入,直到輸入正確為止,并將學(xué)號(hào)和相應(yīng)的圖書(shū)編號(hào)存入SendInfo.txt文件中。</p><p> (5)圖書(shū)基本信息包括圖書(shū)編號(hào)、書(shū)名、作者、出版社和價(jià)錢(qián)這些簡(jiǎn)單信息。</p><p> (6)圖書(shū)信息文件中每一行存放一本圖書(shū)的信息。</p><p> (7)借閱信息文件中每一行存放一本書(shū)的借閱情況。</p><
14、;p> (8)對(duì)老師.學(xué)生的信息進(jìn)行登記處理,包括姓名、學(xué)號(hào)教師編號(hào)、學(xué)院班級(jí)等。</p><p> (9)對(duì)圖書(shū)的金額進(jìn)出管理,對(duì)一丟失的圖書(shū)進(jìn)行處罰、對(duì)超期歸還的圖書(shū)進(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> 圖書(shū)管理在生活中運(yùn)用非常廣泛,因此需要用許多的程序來(lái)對(duì)它們進(jìn)行管理。此程序包含了圖書(shū)信息的錄入、圖書(shū)信息的瀏覽、圖書(shū)的查詢和排序、圖書(shū)信息的刪除與修改,借書(shū),還書(shū),統(tǒng)計(jì)等。通過(guò)編譯一個(gè)C++函數(shù),其中包含一個(gè)主函數(shù),多個(gè)子函數(shù),主函數(shù)調(diào)用其余的子函數(shù)實(shí)現(xiàn)人們能夠簡(jiǎn)易、快捷的了解并找到自己所學(xué)要的信息的功能。</p><p>
16、; 1、查詢所有圖書(shū)信息:將所有圖書(shū)信息包括編號(hào)、書(shū)名、出版社、作者、價(jià)格等顯示在屏幕上。</p><p> 2、查找一本圖書(shū)的信息:通過(guò)輸入圖書(shū)編號(hào)完成圖書(shū)信息的查找,并在屏幕上顯示。</p><p> 3、修改圖書(shū)信息:通過(guò)輸入編號(hào),判斷此圖書(shū)是否存在,若不存在則提示用戶重新輸入圖書(shū)編號(hào)。 </p><p> 4、刪除圖書(shū)信息:通過(guò)輸入編號(hào),判斷此圖書(shū)是
17、否存在,若存在, 則提示用戶是否顯示刪除后的信息,若不存在則提示用戶重新輸入圖書(shū)編號(hào)。</p><p> 5、借書(shū):通過(guò)輸入圖書(shū)編號(hào),判斷此圖書(shū)是否存在,若不存在則提示用戶重新輸入圖書(shū)編號(hào),若圖書(shū)已借出則提示用戶是否繼續(xù)借書(shū),若沒(méi)借出則將此圖書(shū)的編號(hào)和學(xué)生的學(xué)號(hào)存入圖書(shū)借閱文件中。</p><p> 6、圖書(shū)丟失:若圖書(shū)丟失,對(duì)已丟失圖書(shū)進(jìn)行刪除處理,并通過(guò)金額賠償系統(tǒng)進(jìn)行圖書(shū)的金額賠
18、償管理。</p><p> 7、金額賠償:通過(guò)輸入一丟失圖書(shū)的編號(hào)對(duì)以丟失的圖書(shū)的金額進(jìn)行顯示在屏幕上。</p><p> 8、老師信息:通過(guò)選擇讀者信息中的老師信息可以對(duì)老師的信息進(jìn)行添加.刪除和修改。最后通過(guò)輸入老師的編號(hào)可以對(duì)老師的信息進(jìn)行查詢。</p><p> 9、學(xué)生信息:通過(guò)選者讀者信息中的學(xué)生信息可以對(duì)學(xué)生的信息進(jìn)行添加,刪除和下該。最后通過(guò)輸
19、入學(xué)生的學(xué)號(hào)可以對(duì)學(xué)生的信息進(jìn)行查詢。</p><p> 10、退出系統(tǒng):返回主頁(yè)面。</p><p> 2.2 各個(gè)模塊之間的主要關(guān)系</p><p> 圖書(shū)信息管理系統(tǒng)可劃分為7個(gè)模塊:查詢所有圖書(shū)模塊、查找一本圖書(shū)信息模塊、修改圖書(shū)信息模塊、刪除圖書(shū)信息模塊、借閱圖書(shū)模塊、圖書(shū)丟失模塊、金額賠償模塊。各模塊之間均有著或多或少的聯(lián)系,比如: 查找一本圖書(shū)信
20、息模塊、修改信息模塊、刪除信息模塊、借閱圖書(shū)模塊都需要先判斷該圖書(shū)是否存在,然后再進(jìn)行其它操作。圖書(shū)丟失后對(duì)已丟失圖書(shū)的信息進(jìn)行刪除,刪除后顯示出圖書(shū)的價(jià)格病進(jìn)行金額賠償。理解了各模塊之間的主要關(guān)系有利于程序的設(shè)計(jì)與完成,使程序的層次結(jié)構(gòu)清晰,便于程序的編寫(xiě)、閱讀和調(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)的整體流程如上圖所示,開(kāi)始后顯示輸出菜單選擇進(jìn)入讀者信息模塊或者圖書(shū)管理模塊,讀者信息中是對(duì)教師和學(xué)生的信息進(jìn)行編輯如信息的添加、刪除和修改。主要是針對(duì)如果圖書(shū)丟失或者超期歸還時(shí)計(jì)算賠償金額用的。教師的歸還圖書(shū)期限為60天,學(xué)生為30天。圖書(shū)管理模塊式針對(duì)圖書(shū)進(jìn)行管理,如顯示出全部圖書(shū).即顯
22、示出未被借出的圖書(shū)、添加一本圖書(shū)信息、刪除一本圖書(shū)信息、顯示一本圖書(shū)信息產(chǎn)看一本圖書(shū)是否被借、借閱圖書(shū)功能、圖書(shū)丟失功能、查看圖書(shū)的價(jià)格對(duì)圖書(shū)進(jìn)行賠償、金額管理管理計(jì)算出丟失圖書(shū)的賠償金額和超期歸還圖書(shū)的金額。主要根據(jù)當(dāng)前系統(tǒng)時(shí)間模塊進(jìn)行計(jì)算。</p><p> 3.2 main() 函數(shù)模塊</p><p> 根據(jù)圖書(shū)館信息管理系統(tǒng)的要求,可設(shè)計(jì)一個(gè)主函數(shù),及定義多個(gè)用戶自定義函數(shù)。
23、在主函數(shù)中定義全局變量,即是在函數(shù)外部定義的變量,其不屬于某一個(gè)函數(shù),而屬于一個(gè)源程序文件,在整個(gè)程序內(nèi)可以多次被引用。通過(guò)將switch語(yǔ)句與break語(yǔ)句聯(lián)合使用來(lái)實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序的設(shè)計(jì)。運(yùn)用fscanf語(yǔ)句在主函數(shù)中將文件中的內(nèi)容賦給結(jié)構(gòu)體變量,便于在自定義函數(shù)中對(duì)結(jié)構(gòu)體的調(diào)用。</p><p><b> 具體如下: </b></p><p> 在主
24、函數(shù)中定義一個(gè)存放圖書(shū)信息的結(jié)構(gòu)體</p><p> struct list{</p><p> char num[20] ; /*圖書(shū)編號(hào)*/ </p><p> char name[40] ; /*書(shū)名*/</p><p> char author[40] ;
25、 /*作者*/</p><p> char publish [40]; /*出版社*/</p><p> ouble price;/*價(jià)格*/</p><p><b> };</b></p><p><b> 以及各函數(shù)的申明</b><
26、/p><p> void search_allinformation(struct list b[]) ; /*查看全部圖書(shū)信息*/</p><p> void check_bookinformation (struct list b[] );/*查找圖書(shū)信息*/</p><p> void add_bookinformation (struct list b[]
27、 ); /*添加圖書(shū)信息*/</p><p> double delete_bookinformation (struct list b[] );/*刪除圖書(shū)信息*/</p><p> void borrow_book (struct list b[] ) ; /*借閱圖書(shū)*/</p><p> void lost_book(struc
28、t list b[]); /*圖書(shū)丟失*/</p><p> double cash_manage(); /*金額賠償*/ </p><p> 通過(guò)將switch語(yǔ)句與break語(yǔ)句聯(lián)合使用來(lái)實(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ū)信息函數(shù)模塊<
33、;/p><p> void search_allinformation (struct list b[])</p><p> 通過(guò)printf()語(yǔ)句將所有的圖書(shū)信息包括包括編號(hào)、書(shū)名、出版社、作者、價(jià)格等信息顯示在屏幕上。運(yùn)用for語(yǔ)句加printf()實(shí)現(xiàn)圖書(shū)信息的循環(huán)輸出顯示。</p><p> 3.4 查詢一本圖書(shū)信息函數(shù)模塊</p><
34、;p> void check_bookinformation(struct list b[] )</p><p> 用戶先輸入圖書(shū)編號(hào)后,先用strcmp(s1, s2)函數(shù)進(jìn)行比較兩個(gè)字符串?dāng)?shù)組的大小,從而查找出該圖書(shū)是否存在,若不存在則提示用戶是否要繼續(xù)查找,運(yùn)用switch語(yǔ)句 ,若繼續(xù)則再次調(diào)用函數(shù)本身進(jìn)行第二次查找,直到找到為止,若否則結(jié)束循環(huán),不再進(jìn)行查找。 通過(guò)將switch語(yǔ)句與brea
35、k語(yǔ)句聯(lián)合使用來(lái)實(shí)現(xiàn)多分支選擇結(jié)構(gòu)程序的設(shè)計(jì)。運(yùn)用fscanf語(yǔ)句在主函數(shù)中將文件中的內(nèi)容賦給結(jié)構(gòu)體。</p><p> 圖3 查詢一本圖書(shū)函數(shù)功能模塊圖</p><p> 3.5添加圖書(shū)信息函數(shù)模塊</p><p> void add_bookinformation(struct list b[] )</p><p> 輸入圖書(shū)的基
36、本信息包括編號(hào)、書(shū)名、出版社、作者、價(jià)格,由于原有的圖書(shū)信息是按照編號(hào)的大小順序排列的,所以只需運(yùn)用for循環(huán) 和strcmp函數(shù)找出輸入的圖書(shū)應(yīng)該插入的位置,再將所添加的圖書(shū)信息插入即可。</p><p> 圖4 添加圖書(shū)信息函數(shù)功能模塊圖</p><p> 3.6 刪除圖書(shū)信息函數(shù)模塊</p><p> void delete_bookinformatio
37、n (struct list b[] )</p><p> 用戶輸入所要?jiǎng)h除的圖書(shū)編號(hào),先查找該圖書(shū)編號(hào)是否存在,若存在,這提示用戶是否要顯示刪除后的信息,若不存在則提示重新輸入。 </p><p> 圖5 刪除圖書(shū)信息函數(shù)功能模塊圖</p><p><b> 3.7借閱圖書(shū)模塊</b></p><p> voi
38、d borrow_book(struct list b[] )</p><p> 用戶先輸入所借圖書(shū)的編號(hào),調(diào)用函數(shù)查找該圖書(shū)有沒(méi)有借出,若已借出,則提示用戶該圖書(shū)已借出,并提示用戶是否繼續(xù)借閱其他書(shū)籍。若繼續(xù),則繼續(xù)進(jìn)行新的查找。</p><p> 圖6 借閱圖書(shū)函數(shù)功能模塊圖</p><p> 3.8 圖書(shū)丟失模塊</p><p>
39、 用戶先輸入以丟失圖書(shū)的編號(hào),調(diào)用函數(shù)刪除圖書(shū)的相關(guān)信息,并顯示出圖書(shū)的金額。</p><p> 3.9 金額賠償模塊</p><p> 用戶對(duì)以丟失的圖書(shū)進(jìn)行賠償。對(duì)以超期歸還的圖書(shū)用當(dāng)前系統(tǒng)統(tǒng)時(shí)間系統(tǒng)進(jìn)行計(jì)算正確的罰款數(shù)額。</p><p> 3.10 老師學(xué)生信息管理系統(tǒng) </p><p> 對(duì)老師和學(xué)生的信息進(jìn)行儲(chǔ)存,其中有
40、添加,刪除和修改功能。</p><p><b> 第四章 調(diào)試及測(cè)試</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 查詢所有圖書(shū)信息模塊
41、運(yùn)行界面</p><p> 按1操作查詢所有未被借出的圖書(shū)信息,如圖所示,選擇下一步操作可對(duì)圖書(shū)進(jìn)行下一步操作。</p><p> 圖8 查詢所有圖書(shū)信息模塊界面</p><p> 4.3 查找某一本圖書(shū)信息模塊運(yùn)行界面</p><p> 按2選擇按書(shū)名查詢某一本圖書(shū)信息,若圖書(shū)編號(hào)存在則界面如下:</p><p&
42、gt; 圖9 圖書(shū)編號(hào)查詢圖書(shū)界面</p><p> 若圖書(shū)不存在這顯示該圖書(shū)不存在。</p><p> 4.4 添加圖書(shū)信息模塊運(yùn)行界面</p><p> 按3選擇,輸入編號(hào),界面如下:</p><p> 圖10 按圖書(shū)編號(hào)添加圖書(shū)界面</p><p> 輸入圖書(shū)的編號(hào).書(shū)名.作者出版社.和價(jià)格。完成之后
43、顯示是否顯示添加后的圖書(shū)信息,選擇是則顯示剛添加的圖書(shū)信息,選擇否則返回主菜單。</p><p> 4.5 刪除圖書(shū)信息模塊運(yùn)行界面</p><p> 按4選擇,輸入編號(hào),如果編號(hào)不存在,界面如下:</p><p> 圖11 按圖書(shū)編號(hào)刪除圖書(shū)界面</p><p> 如果編號(hào)存在,界面如下:</p><p>
44、 圖12 按圖書(shū)編號(hào)刪除圖書(shū)界面</p><p> 如果編號(hào)不存在,界面如下:</p><p> 圖13 借閱圖書(shū)界面</p><p> 輸入學(xué)號(hào)這可以成功借出,若不存在則顯示該圖書(shū)不存在。</p><p><b> 第五章 總結(jié)</b></p><p> 通過(guò)這次課程設(shè)計(jì),使我對(duì)C語(yǔ)
45、言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過(guò)不斷的上機(jī)操作才能更好地學(xué)習(xí)它,我也發(fā)現(xiàn)我的好多不足之處,通過(guò)學(xué)習(xí)也有所改進(jìn);再有對(duì)C語(yǔ)言的一些標(biāo)準(zhǔn)庫(kù)函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,還有對(duì)C語(yǔ)言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,所以后在學(xué)習(xí)過(guò)程中,我會(huì)更加注視實(shí)踐操作。 在課程設(shè)計(jì)過(guò)程中,收獲知識(shí),提高能力的同時(shí),我也懂得怎么樣去制定、實(shí)現(xiàn)計(jì)劃,課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)發(fā)現(xiàn)提出分析和解決實(shí)際問(wèn)題鍛煉實(shí)踐能力的重
46、要環(huán)節(jié)是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新月異,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我們懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)一些前面學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,在設(shè)計(jì)中我們
47、遇到了很多編程問(wèn)題,最后在高老師的辛勤指導(dǎo)下,我們慢慢的進(jìn)入狀態(tài),我做的是一個(gè)圖書(shū)館信息管理</p><p><b> 第六章 致謝</b></p><p> 非常感謝XX老師的指導(dǎo),在設(shè)計(jì)中我們遇到了很多編程問(wèn)題,最后在高老師的辛勤指導(dǎo)下,我們慢慢的進(jìn)入狀態(tài),順利的完成了編程題目。每天我們?cè)跈C(jī)房編寫(xiě)程序,高老師也寸步不離 ,幫助我們解決問(wèn)題,由于編程是在英文狀態(tài)
48、下進(jìn)行的,很多單詞不知道意思,導(dǎo)致不懂提示的錯(cuò)誤源頭的意思,從而無(wú)法找出錯(cuò)誤的根本原因。在這方面XX老師給了我們提供了很大的幫助 。在程序出現(xiàn)錯(cuò)誤的時(shí)候,高老師耐心的幫我們調(diào)試,查找錯(cuò)誤。在此我對(duì)各位辛勤工作的老師致以最誠(chéng)摯的感謝。</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ù)庫(kù)高級(jí)編程.北京希望電子出版社.2002</p><p> [4] 伍俊良編著.Visual C++6.0課程設(shè)計(jì)與系統(tǒng)開(kāi)發(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] ; /*圖書(shū)編號(hào)*/ </p><p> char name[40] ; /*書(shū)名*/</p><p> char author[40] ; /*作者*/</p>
52、<p> char publish [40]; /*出版社*/</p><p> double price ; /*價(jià)格*/</p><p><b> };</b></p><p> struct list b[40] ;</p><p>
53、 int w=0; /*定義一個(gè)全局變量,用來(lái)記錄bookinfo.txt文件中的數(shù)據(jù)個(gè)數(shù)*/</p><p> double total,total2;//全局的金額</p><p> void search_allinformation(struct list b[]) ; /*查看全部圖書(shū)信息*/</p
54、><p> void check_bookinformation (struct list b[] ); /*查找圖書(shū)信息*/</p><p> void add_bookinformation (struct list b[] ); /*添加圖書(shū)信息*/</p><p> double delete_bookinformation (struct l
55、ist b[] ); /*刪除圖書(shū)信息*/</p><p> void borrow_book (struct list b[] ) ; /*借閱圖書(shū)*/</p><p> void lost_book(struct list b[]); /*圖書(shū)丟失*/</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)入圖書(shū)館信息管理系統(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:查看全部圖書(shū)信息 \n") ;</p><p> printf(" 2:查找圖書(shū)信息 \n") ;&
64、lt;/p><p> printf(" 3:添加圖書(shū)信息 \n") ;</p><p> printf(" 4:刪除圖書(shū)信息
65、 \n") ;</p><p> printf(" 5:借閱圖書(shū) \n") ;</p><p> printf(" 6:圖書(shū)丟失
66、 \n") ;</p><p> printf(" 7:金額管理 \n") ;</p><p> printf(" 0
67、:退出系統(tǒng) \n") ;</p><p> printf("################################################################################");</p><p> printf(&q
68、uot;請(qǐng)選擇操作:");</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> /*查看全部圖書(shū)信息*/</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(" # 查看全部圖書(shū)信息! #\n"); </p><p> printf(" ####################################\n");</p>&
77、lt;p> printf("圖書(shū)的相關(guān)信息: 編號(hào) 書(shū)名 作者 出版社 價(jià)格\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> /*查找圖書(shū)信息*/</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("輸入編號(hào):\n") ;
81、 /*提示輸入圖書(shū)編號(hào)*/</p><p> scanf("%s" , s);</p><p> printf(" #####################################\n");</p><p> printf("
82、 # 查找圖書(shū)信息! #\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("該圖書(shū)的相關(guān)信息: 編號(hào) 書(shū)名 作者 出版社 價(jià)格\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("該圖書(shū)編號(hào)不存在!\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> /*添加圖書(shū)信息*/</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(" # 添加圖書(shū)信息! #\n");</p><p> printf("
91、 #####################################\n");</p><p> printf("請(qǐng)輸入該圖書(shū)的相關(guān)信息:\n") ;</p><p> printf("編號(hào) 書(shū)名 作者 出版社 價(jià)格\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(" 請(qǐng)選擇:");</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ū),圖書(shū)數(shù)目都會(huì)增加一個(gè)*/ </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> /*刪除圖書(shū)信息*/</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(" # 刪除圖書(shū)信息
103、 #\n");</p><p> printf(" #####################################\n");</p><p> printf("請(qǐng)輸入圖書(shū)編號(hào):");</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(" 請(qǐng)選擇:");</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("刪除后的圖書(shū)信息: 編號(hào)
107、 書(shū)名 作者 出版社 價(jià)格\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("該圖書(shū)編號(hào)不存在!\n");</p><p> printf("####################################
111、############################################\n");</p><p> return total;</p><p><b> }</b></p><p><b> /*借閱圖書(shū)*/</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; /*定義一個(gè)變量用來(lái)記錄sendinfo.txt文件中的數(shù)據(jù)個(gè)數(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、借閱圖書(shū) #\n");</p><p> printf(" #####################################\n");</p><p> A: printf("輸入圖書(shū)編號(hào):");</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("該圖書(shū)編號(hào)不存在, 請(qǐng)重新輸入!\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("該圖書(shū)已借出!");</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) /*若該圖書(shū)未借出,則執(zhí)行以下操作*/</p><p> printf("請(qǐng)輸入學(xué)號(hào): "); </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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書(shū)管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)管理系統(tǒng)--jsp課程設(shè)計(jì)報(bào)告
- 學(xué)校圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c課程設(shè)計(jì)報(bào)告-- 圖書(shū)管理系統(tǒng)
- 《圖書(shū)管理系統(tǒng)》課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告~圖書(shū)管理系統(tǒng)
- 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--圖書(shū)管理系統(tǒng)
- c語(yǔ)言圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言圖書(shū)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論