

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C++課程設(shè)計(jì)報(bào)告</b></p><p> 設(shè)計(jì)題目:圖書(shū)館管理系統(tǒng)</p><p><b> 目錄</b></p><p> 第一章 引言- 1 -</p><p> 1.1關(guān)于題目- 1 -</p><p> 1.1.1題目要
2、求- 1 -</p><p> 1.1.2選題背景- 1 -</p><p> 1.2關(guān)于編譯軟件- 1 -</p><p> 1.3關(guān)于兼容性- 1 -</p><p> 第二章 概要設(shè)計(jì)- 2 -</p><p> 2.1軟件主要功能設(shè)計(jì)- 2 -</p><p>
3、2.1.1程序結(jié)構(gòu)- 2 -</p><p> 2.1.2程序流程- 2 -</p><p> 第三章 軟件實(shí)現(xiàn)- 4 -</p><p> 3.1變量函數(shù)及資源的聲明- 4 -</p><p> 3.1.1函數(shù)聲明- 4 -</p><p> 3.1.2變量聲明- 4 -</p>
4、<p> 3.1.3資源- 5 -</p><p> 3.2主要功能的實(shí)現(xiàn)- 5 -</p><p> 3.2.1系統(tǒng)界面- 5 -</p><p> 3.2.2借書(shū)- 6 -</p><p> 3.2.3還書(shū)- 7 -</p><p> 3.2.4圖書(shū)維護(hù)- 9 -</p>
5、;<p> 3.2.5讀者維護(hù)- 9 -</p><p> 第四章 結(jié)果與討論- 10 -</p><p> 4.1程序運(yùn)行- 10 -</p><p> 4.2錯(cuò)誤調(diào)試與分析- 12 -</p><p><b> 一 引言</b></p><p><b>
6、; 1.1關(guān)于題目</b></p><p><b> 1.1.1題目要求</b></p><p> 利用Microsoft Visual C++制作一個(gè)圖書(shū)館管理系統(tǒng),要求:</p><p> ?。?)能夠?qū)崿F(xiàn)的功能有:借書(shū),還書(shū),圖書(shū)維護(hù):負(fù)責(zé)圖書(shū)的采購(gòu)、信息存檔、對(duì)圖書(shū)信息的查詢及編輯,讀者維護(hù):對(duì)學(xué)生信息的管理、對(duì)借閱書(shū)
7、本情況的管理,離開(kāi)等功能。</p><p> ?。?)要求界面整齊簡(jiǎn)單易懂且容易操作,讀者易于操作。</p><p> (3)根據(jù)程序源代碼,寫(xiě)出流程圖,并運(yùn)行,寫(xiě)出實(shí)驗(yàn)報(bào)告及分析過(guò)程。</p><p><b> 1.1.2選題背景</b></p><p> 這是一圖書(shū)館管理系統(tǒng),原先的圖書(shū)館采用人工系統(tǒng)浪費(fèi)人力物
8、力財(cái)力,圖書(shū)管理系統(tǒng)可以改善這種情況,只需要一臺(tái)電腦和一個(gè)管理員就可以輕松完成。提高新書(shū)入庫(kù)、借閱書(shū)刊和學(xué)生信息管理的速度的需要。減少了人力的投入。</p><p><b> 1.2關(guān)于編譯軟件</b></p><p> 本程序采用Microsoft Visual C++6.0的英文版本進(jìn)行編譯。VisualC++6.0是Microsoft公司推出的基于Windo
9、ws操作系統(tǒng)的可視化C++編程工具,盡管Microsoft公司推出了.NET平臺(tái)的集成開(kāi)發(fā)環(huán)境,但由于其良好的界面和可操作性,加上支持標(biāo)準(zhǔn)C/C++規(guī)范,但仍有相當(dāng)多的編程人員使用VisualC++6.0進(jìn)行應(yīng)用系統(tǒng)的開(kāi)發(fā)。</p><p><b> 1.3關(guān)于兼容性</b></p><p> 本程序經(jīng)過(guò)調(diào)試,可以在XP系統(tǒng)下編譯運(yùn)行,也可以在Vista下運(yùn)行,界
10、面稍有不同,但不影響運(yùn)行結(jié)果。</p><p><b> 二 概要設(shè)計(jì)</b></p><p> 2.1軟件主要功能設(shè)計(jì)</p><p><b> 2.1.1程序結(jié)構(gòu)</b></p><p> 根據(jù)分析,圖書(shū)管管理系統(tǒng)這個(gè)程序一共要實(shí)現(xiàn)如下幾個(gè)功能,包括能夠?qū)崿F(xiàn)的功能有:借書(shū),還書(shū),圖書(shū)維護(hù)
11、,讀者維護(hù),離開(kāi)等功能程序結(jié)構(gòu)如下面的圖1-1所示。</p><p><b> 2.1.2程序流程</b></p><p> 根據(jù)分析后的圖書(shū)館管理系統(tǒng)結(jié)構(gòu)設(shè)計(jì)出相應(yīng)的流程。圖書(shū)館管理系統(tǒng)的內(nèi)容主要包括:1借書(shū),2還書(shū),3圖書(shū)維護(hù),4讀者維護(hù),5離開(kāi)。并且在每個(gè)子菜單下還有具體的對(duì)應(yīng)功能。</p><p> 選擇借書(shū)后要求:1讀者編號(hào) 2
12、 圖書(shū)編號(hào)</p><p> 選擇還書(shū)后要求:1讀者編號(hào) 2 圖書(shū)編號(hào)</p><p> 圖書(shū)維護(hù)后:1新增 2更改 3刪除 4查找 5顯示6全刪 0退出</p><p> 讀者維護(hù)后:1新增 2更改 3刪除 4查找 5顯示6全刪 0退出</p><p><b> 離開(kāi)</b></p><p&
13、gt;<b> 三 軟件實(shí)現(xiàn)</b></p><p> 3.1變量及函數(shù)的聲明</p><p> 根據(jù)程序的結(jié)構(gòu),將圖書(shū)館管理程序需要實(shí)現(xiàn)的功能細(xì)化成為相應(yīng)的類。</p><p><b> 3.1.1函數(shù)聲明</b></p><p> class Reader:</p>&l
14、t;p> char *getname() //獲取姓名</p><p> int gettag() //獲取刪除標(biāo)記</p><p> int getno() //獲取讀者編號(hào) </p><p> void setname(char na[]) //設(shè)置姓名<
15、;/p><p> void delbook() //設(shè)置刪除標(biāo)記 1:已刪 0:未刪</p><p> void addreader(int n,char *na) //增加讀者</p><p> void borrowbook(int bookid) //借書(shū)操作</p><p> int retbook(int bo
16、okid) //還書(shū)操作</p><p> void disp() //讀出讀者信息</p><p> class RDatabase: //讀者類庫(kù)</p><p> RDatabase() //構(gòu)造函數(shù),將reader.txt讀到read[]中</p><p> void clear()
17、 //刪除所有讀者信息</p><p> int addreader(int n,char *na) //添加讀者時(shí)先查找是否存在</p><p> Reader *query(int readerid) //按編號(hào)查找</p><p> void disp() //輸出所有讀者信息</p><p>
18、 void readerdata() //讀者庫(kù)維護(hù)</p><p> ~RDatabase() //析構(gòu)函數(shù),將read[]寫(xiě)到reader.txt文件中</p><p> class Book: //圖書(shū)類,實(shí)現(xiàn)對(duì)圖書(shū)的描述,圖書(shū)的編號(hào),書(shū)名,借出,還入等</p><p> char *getname() //獲取姓名&
19、lt;/p><p> int getno() //獲取圖書(shū)編號(hào)</p><p> int gettag() //獲取刪除標(biāo)記</p><p> void setname(char na[]) //設(shè)置書(shū)名</p><p> void delbook() //刪除圖書(shū)</p><p&g
20、t; void addbook(int n,char *na) //增加圖書(shū) </p><p> int borrowbook() //借書(shū)操作</p><p> void retbook()//還書(shū)操作</p><p> void disp()//輸出圖書(shū)</p><p> class BDatabase://圖書(shū)庫(kù)類,
21、實(shí)現(xiàn)對(duì)圖書(shū)的維護(hù),查找,刪除等</p><p> BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中</p><p> void clear()//全刪</p><p> int addbook(int n,char *na) //增加圖書(shū)</p><p> Book *query(int bookid)
22、 //查找圖書(shū)</p><p> void bookdata() //圖書(shū)庫(kù)維護(hù)</p><p> void disp()</p><p> ~BDatabase()//析構(gòu)函數(shù),將book[]寫(xiě)到book.txt文件中</p><p><b> 3.1.2變量聲明</b></p><p&
23、gt; const int Maxr=100;//最多的讀者 </p><p> const int Maxb=100;//最多的圖書(shū) </p><p> const int Maxbor=5;//每位讀者最多借五本書(shū)</p><p> class Reader:</p><p> int tag; //刪除標(biāo)記 1:已刪 0:未刪
24、 </p><p> int no; //讀者編號(hào) </p><p> char name[10]; //讀者姓名</p><p> int borbook[Maxbor];//所借圖書(shū)</p><p> class RDatabase:</p><p> int top; //讀者記錄指針 </p&g
25、t;<p> Reader read[Maxr];//讀者記錄</p><p> class Book:</p><p> int tag;//刪除標(biāo)記 1:已刪 0:未刪 </p><p> int no;//圖書(shū)編號(hào) </p><p> char name[20];//書(shū)名 </p><p>
26、; int onshelf;//是否再架 1:再架 2:已借</p><p> class BDatabase:</p><p> int top; //圖書(shū)記錄指針 </p><p> Book book[Maxb]; //圖書(shū)記錄</p><p><b> 主函數(shù)中:</b></p><
27、p> char choice; </p><p> int bookid,readerid; </p><p> RDatabase ReaderDB; </p><p> Reader *r; </p><p> BDatabase BookDB; </p><p><b> Book *
28、b;</b></p><p><b> 3.1.3資源</b></p><p><b> 1·頭文件</b></p><p> #include <iostream> </p><p> #include <iomanip> </p>
29、<p> #include <string> </p><p> #include <fstream>//輸入/輸出文件流類</p><p> 3.2主要功能的實(shí)現(xiàn)</p><p><b> 3.2.1系統(tǒng)界面</b></p><p> 圖書(shū)館管理系統(tǒng)的首界面包括了1借書(shū),
30、2還書(shū),3圖書(shū)維護(hù),4讀者維護(hù),5離開(kāi)這五個(gè)功能。</p><p> 本程序采用switch語(yǔ)句實(shí)現(xiàn)各種操作的選擇。</p><p> 在程序的整個(gè)過(guò)程中用到選擇的我地方都采用的是switch語(yǔ)句,通過(guò)switch語(yǔ)句確定所要執(zhí)行的代碼,從而實(shí)現(xiàn)需要的操作的選擇。</p><p><b> 3.2.2讀者維護(hù)</b></p>
31、<p> 選擇4后進(jìn)入讀者維護(hù),在讀者維護(hù)階段可以1新增 2更改 3刪除 4查找 5顯示6全刪 0退出。</p><p> 在讀者類中構(gòu)造函數(shù),將reader.txt讀到read[]中,在reader.txt中包含了已有的讀者信息,調(diào)用讀者類中的各成員函數(shù)可以實(shí)現(xiàn)以上的六個(gè)功能。</p><p> 進(jìn)入讀者維護(hù)的界面以后,管理員可以繼續(xù)根據(jù)需要選擇所列出的操作。在完成操作
32、以后可以按0鍵退出回到系統(tǒng)的初始界面。</p><p><b> 具體的程序如下:</b></p><p> cin >> choice; </p><p> switch (choice) </p><p><b> { </b></p><p> c
33、ase '1': </p><p> cout << "輸入讀者編號(hào):"; </p><p> cin >> readerid; </p><p> cout << "輸入讀者姓名:"; </p><p> cin >> rname
34、; </p><p> addreader (readerid,rname); </p><p><b> break; </b></p><p> case '2': </p><p> cout << "輸入讀者編號(hào):"; </p><p&g
35、t; cin >> readerid; </p><p> r=query(readerid); </p><p> if (r==NULL) </p><p><b> { </b></p><p> cout << " 該讀者不存在 "<<endl;
36、</p><p><b> break; </b></p><p><b> } </b></p><p> cout << "輸入新的姓名:"; </p><p> cin >> rname; </p><p> r-&
37、gt;setname(rname); </p><p><b> break; </b></p><p> case '3': </p><p> cout << " 輸入讀者編號(hào):"; </p><p> cin >> readerid; </p
38、><p> r=query(readerid); </p><p> if (r==NULL) </p><p><b> { </b></p><p> cout <<" 該讀者不存在" << endl; </p><p><b> b
39、reak; </b></p><p><b> } </b></p><p> r->delbook(); </p><p><b> break; </b></p><p> case '4': </p><p> cout &l
40、t;< "讀入讀者編號(hào):"; </p><p> cin >> readerid; </p><p> r=query(readerid); </p><p> if (r==NULL) </p><p><b> { </b></p><p> c
41、out <<"該讀者不存在"<< endl; </p><p><b> break; </b></p><p><b> } </b></p><p> r->disp(); </p><p><b> break; </b
42、></p><p> case '5': </p><p><b> disp(); </b></p><p><b> break; </b></p><p> case '6': </p><p><b> cle
43、ar(); </b></p><p><b> break; </b></p><p> default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break; </p><p><b> } </b></p><p><b> }<
44、/b></p><p><b> 3.2.3圖書(shū)維護(hù)</b></p><p> 圖書(shū)維護(hù)后:1新增 2更改 3刪除 4查找 5顯示6全刪 0退出等操作</p><p> 而我們所采用的程序語(yǔ)句是與讀者維護(hù)部分所用的語(yǔ)句是基本相同的,只是調(diào)用了不同類里面的函數(shù),實(shí)現(xiàn)不同的功能,操作步驟相同。</p><p>
45、 3.2.4借書(shū)和還書(shū)</p><p> 借書(shū)和還書(shū)是讀者所要進(jìn)行的操作,是這個(gè)系統(tǒng)所要實(shí)現(xiàn)的最基本的功能,也是使用最頻繁的功能。同樣也是通過(guò)switch語(yǔ)句實(shí)現(xiàn)的,而讀者的信息必需先由管理員錄入即在reader.txt中存有該讀者的信息后才可以進(jìn)行借書(shū)和還書(shū)的操作。這就保證了圖書(shū)的安全性。</p><p><b> 3.2.5退出系統(tǒng)</b></p>
46、<p> 輸入0以后可以退出系統(tǒng),實(shí)現(xiàn)的具體程序如下:</p><p> default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break;</p><p><b> 四 結(jié)果與討論</b></p><p><b> 4.1程序運(yùn)行</b></p>&l
47、t;p> 程序開(kāi)始運(yùn)行后會(huì)進(jìn)入系統(tǒng)首界面,由用戶進(jìn)行選擇接下來(lái)要執(zhí)行的操作,用戶或者管理員可以根據(jù)自己的需要選擇相應(yīng)的數(shù)字,進(jìn)入下一級(jí)的操作。在操作過(guò)程中用戶按下0鍵即可退出系統(tǒng)。若在想進(jìn)入則再次打開(kāi)系統(tǒng)。</p><p> ?。?)退出系統(tǒng)的樣式</p><p> ?。?)以讀者維護(hù)為例展示運(yùn)行</p><p> 開(kāi)始對(duì)讀者的信息進(jìn)行處理:選擇新增<
48、;/p><p> 上圖中顯示了新增讀者需要錄入的信息,錄入以后該讀者的信息保存在reader.txt文件中,系統(tǒng)就可以識(shí)別該讀者的信息,該讀者就可以進(jìn)行之后的借書(shū)和還書(shū)的操作。這部分工作應(yīng)當(dāng)是由管理員來(lái)進(jìn)行的。</p><p> 4.2錯(cuò)誤調(diào)試與分析</p><p> (1)在寫(xiě)程序時(shí),有很多拼寫(xiě)錯(cuò)誤,例好多處把Readdata()誤打Readdate();<
49、;/p><p> (2)結(jié)束的分號(hào),在不同的輸入法狀態(tài)下輸入,這些小錯(cuò)誤剛開(kāi)始很難發(fā)現(xiàn),不過(guò)有了經(jīng)驗(yàn),就很容易了。創(chuàng)建新的構(gòu)造函數(shù)時(shí),使用出現(xiàn)了錯(cuò)誤。</p><p> ?。?)重載構(gòu)造函數(shù)要注意函數(shù)的訪問(wèn)權(quán)限,結(jié)果就不會(huì)出現(xiàn)錯(cuò)誤。</p><p> ?。?)讀者類中借書(shū)操作函數(shù)中,采用循環(huán)語(yǔ)句時(shí)判斷讀者已借圖書(shū)量時(shí)for(int i=0;i<Maxbor;i+
50、+)誤寫(xiě)為for(int i=1;i<Maxbor;i++),使循環(huán)發(fā)生錯(cuò)誤。</p><p> ?。?)本程序由于經(jīng)常使用switch語(yǔ)句使得整個(gè)程序特別的長(zhǎng),在什么時(shí)候選擇,什么時(shí)候選擇跳出程序成為這個(gè)程序的難點(diǎn),在運(yùn)行時(shí)雖然沒(méi)有出現(xiàn)編譯錯(cuò)誤但是可能會(huì)出現(xiàn)的結(jié)果是:程序所實(shí)現(xiàn)的功能與預(yù)期的功能有差距,這就需要再次調(diào)整switch語(yǔ)句的順序,使功能更好地實(shí)現(xiàn)。</p><p>
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- c++圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)---高校圖書(shū)館管理系統(tǒng)
- c語(yǔ)言圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c_課程設(shè)計(jì)-- 圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)-圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)c#
- 課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--圖書(shū)館系統(tǒng)
- c語(yǔ)言實(shí)現(xiàn)圖書(shū)館課程設(shè)計(jì)報(bào)告--圖書(shū)借閱管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)_pb課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-- 圖書(shū)館借閱管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論