版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、c+面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 圖書信息管理系統(tǒng) 學(xué)生學(xué)號(hào): 200905092024 學(xué)生姓名: 專業(yè)班級(jí): 09信管 學(xué)生成績: 指導(dǎo)教師: 2011-10-28一、摘要圖書信息管理系統(tǒng),包括圖書信息和學(xué)生信息。圖書信息包括:書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等。學(xué)生信息包括:學(xué)號(hào)、姓名等。二、正文1、前言圖書信息管理系統(tǒng),使圖書的借閱、歸還等管理操作簡便,易于管理,能有效地提高效率。圖書信息錄入功能(圖書信息用文件保存)輸入,圖書信息瀏覽功能輸出,查詢功能(至少一種查詢方式) 按書名查詢,按作者名查詢,圖書信息的刪除與修改(可選項(xiàng))。2、系統(tǒng)功能分析圖書信息管理系
2、統(tǒng),包括圖書信息和學(xué)生信息。圖書信息包括:登錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等。圖書信息錄入功能(圖書信息用文件保存)輸入,圖書信息瀏覽功能輸出,查詢功能(至少一種查詢方式) 按書名查詢,按作者名查詢,圖書信息的刪除與修改(可選項(xiàng))。學(xué)生信息包括:學(xué)號(hào)、姓名等,并能實(shí)現(xiàn)學(xué)生信息的查詢功能。3、功能模塊圖圖 書 信 息 管 理 系 統(tǒng)學(xué) 生 信 息圖 書 信 息添 加修 改查 詢添 加修 改刪 除查 詢刪 除借 書還 書學(xué)生編號(hào)學(xué)生姓名按編號(hào)查詢按姓名查詢書 號(hào)書 名作 者出 版 社價(jià) 格出版時(shí)間按書號(hào)查詢按書名查詢按作者查詢按出版社查詢4、系統(tǒng)流程圖 輸入與功能對應(yīng)的的數(shù)字
3、判斷有否開始執(zhí)行相應(yīng)功能結(jié)束是否5、編碼實(shí)現(xiàn)5.1 讀者類的設(shè)計(jì)該類定義了借書操作,還書操作,設(shè)置讀者姓名等功能。 reader+name20:char+no:int+tag:int+borbook:int+ getname():char+gettag():int+ getno():int+setname(char na):void+ delbook():void+ addreader(int n,char *na):void+ borrowbook(int bookid):void+ retbook(int bookid):int+ disp():void 5.2 讀者庫類類的設(shè)計(jì)該類實(shí)現(xiàn)了
4、建立讀者的個(gè)人資料,刪除讀者信息,輸出讀者信息等功能。 rdatebase+ top:int+ rname20:char+readerid:int+readerdata():void+choice:char+addreader(int n,char *na):int+clear():void+disp():void 5.3 圖書類的設(shè)計(jì)圖書類,可以實(shí)現(xiàn)對圖書的描述,圖書的編號(hào),書名,借出,還入等操作。 book+no:int+name20:char+onshelf:int+getname():char+getno():int+gettag():int+setname(char na):void
5、+delbook():void+addbook():void+borrowbook():int+retbook():void+disp ():void 5.4 圖書庫類的設(shè)計(jì) xingzhengrenyuan+top:int+clear():void+addbook(int n,char *na):int+bookdata():void+bookdata():void+ disp():void6、系統(tǒng)測試具體調(diào)試過程:主界面 圖書信息 讀者信息 借書還書7、設(shè)計(jì)總結(jié)通過這次的課程設(shè)計(jì),讓我充分感覺到了自己設(shè)計(jì)程序的難度,以及學(xué)習(xí)好c+是多么的重要。在這個(gè)程序的設(shè)計(jì)過程中,我清楚的意識(shí)到自己的水
6、平有多么的薄弱,課程的知識(shí)學(xué)得有多么的不扎實(shí)。看書上的例子好像覺得也沒那么難,自己一上機(jī)實(shí)際操作就出現(xiàn)了很多問題,調(diào)試的時(shí)候系統(tǒng)總是在報(bào)錯(cuò),還有很多警告,每增加一個(gè)函數(shù)就要調(diào)試好久,有時(shí)候應(yīng)為少了一個(gè)大括號(hào)或是分號(hào),導(dǎo)致要找很久很久。雖然系統(tǒng)可以運(yùn)行,也具有了一些基本的功能,但我意識(shí)到了自己有太多的不足。以后還會(huì)有很多的課程設(shè)計(jì),一定要吸取這次的教訓(xùn),把知識(shí)學(xué)懂學(xué)透學(xué)精,真正的為我所用,這樣走上社會(huì)我才能真正的發(fā)揮所長。8、參考文獻(xiàn)1、鄭莉、董淵、何江舟,c+語言程序設(shè)計(jì)(第四版),清華大學(xué)出版社,2010.72、馬石安、魏文平,visual c+程序設(shè)計(jì)與應(yīng)用教程,清華大學(xué)出版社,2007.
7、93、鄭莉、傅仕星、張瑞豐,c+語言程序設(shè)計(jì)(第三版)學(xué)生用書,清華大學(xué)出版社,2010.74、姜靈芝、何健,c語言課程設(shè)計(jì)案例精編,清華大學(xué)出版社,2008.1附源代碼:#include#include#include#include #includeconst int maxr=100; /最多的讀者數(shù) const int maxb=100; /最多的圖書數(shù)const int maxbor=5; /每位讀者最多借的書class book /圖書類,實(shí)現(xiàn)對圖書的描述,圖書的編號(hào),書名,作者,出版社,價(jià)格,出版時(shí)間,借出,還入等功能private: int tag; /刪除標(biāo)記 1:已刪 0:
8、未刪 int no; /圖書編號(hào) char name40; /書名 char author40; /作者 char publicsher40; /出版社 char year40; /出版時(shí)間 int cost; /價(jià)格 int onshelf; /是否再架 1:再架 2:已借 public: book(); char *getname() /獲取書名 return name; char *getauthorname() /獲取作者名 return author; char *getpublicshername() /獲取出版社名 return publicsher; char *getyear
9、() /獲取出版時(shí)間 return year; int getcost() /獲取價(jià)格 return cost; int getno() /獲取圖書編號(hào) return no; int gettag() /獲取刪除標(biāo)記 return tag; void setname(char na) /設(shè)置書名 strcpy(name,na); void setonshelf(int oa) onshelf=oa; void delbook() /刪除圖書 tag=1; void addbook(int n,char *na,char *aa,char *pa,char *ya,int ca,int oa)
10、/增加圖書 tag=0; no=n; strcpy(name,na); strcpy(author,aa); strcpy(publicsher,pa); strcpy(year,ya); cost=ca; onshelf=oa; int borrowbook() /借書操作 if (onshelf0) onshelf-; return 1; return 0; void retbook() /還書操作 onshelf+; void disp() /輸出圖書 coutsetw(6)nosetw(18)namesetw(10)authorsetw(10)publicshersetw(10)yea
11、rsetw(6)costsetw(10)onshelfendl; ; class bdatabase /圖書庫類,實(shí)現(xiàn)對圖書的維護(hù),查找,刪除等 private: int top; /圖書記錄指針 book bookmaxb; /圖書記錄public: bdatabase() /構(gòu)造函數(shù),將book.txt讀到book中 book b; top=-1; fstream file(book.txt,ios:in); while (1) file.read(char *)&b,sizeof(b); if (!file) break; top+; booktop=b; file.close(); v
12、oid clear() /全刪 top=-1; int addbook(int n,char *na,char *aa,char *pa,char *ya,int ca,int oa) /增加圖書 book *p=query1(n); if (null=p) top+; booktop.addbook(n,na,aa,pa,ya,ca,oa); return 1; return 0; book *query1(int bookid) /按編號(hào)查找圖書 for(int i=0;i=top;i+) if(booki.getno()=bookid &booki.gettag()=0) return
13、&booki; return null; book *query2(char a) /按書名查找圖書 book *e; int r=0; for(int i=0;i=top;i+) if(strcmp(booki.getname(),a)=0 &booki.gettag()=0) if(r=0) coutsetw(6)編號(hào)setw(18)書名setw(10)作者setw(10)出版社setw(10)出版時(shí)間setw(6)價(jià)格setw(10)存量disp(); r+; if(r=0) cout找不到該書!endl; return null; book *query3(char a) /按作者查找
14、圖書 book *e; int r=0; for(int i=0;i=top;i+) if(strcmp(booki.getauthorname(),a)=0 &booki.gettag()=0) if(r=0) coutsetw(6)編號(hào)setw(18)書名setw(10)作者setw(10)出版社setw(10)出版時(shí)間setw(6)價(jià)格 setw(10)存量disp(); r+; if(r=0) cout找不到該書!endl; return null; book *query4(char a) /按出版社查找圖書 book *e; int r=0; for (int i=0;i=top;
15、i+) if (strcmp(booki.getpublicshername(),a)=0 &booki.gettag()=0) if(r=0)coutsetw(6)編號(hào)setw(18)書名setw(10)作者setw(10)出版社setw(10)出版時(shí)間setw(6)價(jià)格setw(10)存量disp(); r+; if(r=0) cout找不到該書!endl; return null; void bookdata(); /圖書庫信息void disp() for(int i=0;i=top;i+) if(booki.gettag()=0) booki.disp(); bdatabase()
16、/析構(gòu)函數(shù),將book寫到book.txt文件中 fstream file(book.txt,ios:out); for(int i=0;i=top;i+) if(booki.gettag()=0) file.write(char *)&booki,sizeof(booki); file.close(); ; void bdatabase:bookdata() char choice3; char bname40; char auname40; char pname40; char year40; int cost; char ch; int choice4; int bookid; int
17、bookod; book *b; while (choice3!=0) coutnttt*圖 書 信 息*nendl; coutttt* 1.新 增 *endl; coutttt* 2.更 改 *endl; coutttt* 3.刪 除 *endl; coutttt* 4.查 找 *endl; coutttt* 5.顯 示 *endl; coutttt* 6.全 刪 *endl; coutttt* 0.返 回 *endl; coutchoice3; switch(choice3) case 1: coutbookid; b=query1(bookid); if(b!=null) cout該編號(hào)
18、已經(jīng)存在,不能添加!endl; break; coutbname; coutauname; coutpname; coutcost; coutyear; coutbookod; addbook(bookid,bname,auname,pname,year,cost,bookod); cout添加圖書成功!; getch(); break; case 2: coutbookid; b=query1(bookid); if(b=null) cout該圖書不存在! endl; break; cout該圖書的信息是:endl; coutsetw(6)編號(hào)setw(18)書名setw(10)作者setw
19、(10)出版社setw(10)出版時(shí)間setw(6)價(jià)格 setw(10)存量disp(); coutch; if(ch=y) coutbname; coutauname; coutpname; coutyear; coutcost; coutbookod; b-setname(bname); b-setonshelf(bookod); cout修改圖書成功!; getch(); break; case 3: coutbookid; b=query1(bookid); if(b=null) cout該圖書不存在,無法刪除!delbook(); cout刪除成功!; getch(); break
20、; case 4: coutttt* 1.按圖書編號(hào)查找 *endl; coutttt* 2.按圖書書名查找 *endl; coutttt* 3.按圖書作者查找 *endl; coutttt* 4.按圖書出版社查找*endl; coutttt* 0.返 回 *endl; coutchoice4; switch(choice4) case 1: coutbookid; b=query1(bookid); if(b=null) cout該圖書不存在!; break; coutsetw(6)編號(hào)setw(18)書名setw(10)作者setw(10)出版社setw(10)出版時(shí)間setw(6)價(jià)格s
21、etw(10)存量disp(); break; case 2: coutbname; b=query2(bname); break; case 3: coutauname; b=query3(auname); break; case 4: coutpname; b=query4(pname); break; case 0: break; break; case 5: coutsetw(6)編號(hào)setw(18)書名setw(10)作者setw(10)出版社setw(10)出版時(shí)間setw(6)價(jià)格 setw(10)存量endl; disp(); getch(); break; case 6: c
22、lear(); break; default: break; class reader /讀者的信息描述 private: int tag; /刪除標(biāo)記 1表示已刪 0表示未刪 int no; /讀者編號(hào) char name10; /讀者姓名 int borbookmaxbor; /所借圖書 public: reader() ; char *getname() /獲取姓名 return name; int gettag() /獲取刪除標(biāo)記 return tag; int getno() /獲取讀者編號(hào) return no; void setname(char na) /設(shè)置姓名 strcpy(
23、name,na); void delbook() /設(shè)置刪除標(biāo)記 1:已刪 0:未刪 tag=1; void addreader(int n,char *na) /增加讀者 tag=0; no=n; strcpy(name,na); for(int i=0;imaxbor;i+) borbooki=0; void borrowbook(int bookid) /借書操作 for(int i=0;imaxbor;i+) if (borbooki=0) borbooki=bookid; return ; int retbook(int bookid) /還書操作 for(int i=0;imaxb
24、or;i+) if(borbooki=bookid) borbooki=0; cout還書成功!endl; return 1; cout未借該書,還書失敗!endl; return 0; void disp() /讀出讀者信息 int have=0; int bz=0; coutsetw(5)nosetw(21)namesetw(15); for(int i=0;imaxbor;i+) if(borbooki!=0) if(bz=0) have=1; coutborbookittendl; bz+; else coutrtttttborbookittsetw(15)endl; if(have=
25、0) coutt 還未借書endl;class rdatabase /讀者類庫,實(shí)現(xiàn)建立讀者的個(gè)人資料 private: int top; /讀者記錄指針 reader readmaxr; /讀者記錄 public: rdatabase() /構(gòu)造函數(shù),將reader.txt讀到read中 reader s; top=-1; fstream file(reader.txt,ios:in); /打開一個(gè)輸入文件 while (1) file.read(char *)&s,sizeof(s); if (!file) break; top+; readtop=s; file.close(); /關(guān)閉
26、 reader.txt 文件 void clear() /刪除所有讀者信息 top=-1; int addreader(int n,char *na) /添加讀者時(shí)先查找是否存在 reader *p=queryid(n); if (p=null) top+; readtop.addreader(n,na); return 1; else cout該編號(hào)已經(jīng)存在!; return 0; reader *queryid(int readerid) /按讀者編號(hào)查找 for (int i=0;i=top;i+) if (readi.getno()=readerid&readi.gettag()=0)
27、 return &readi; return null;reader *queryname(char readername10) /按讀者姓名查找 for (int i=0;i=top;i+) if (strcmp(readi.getname(),readername)=0 & readi.gettag()=0) return &readi; return null; void disp() /輸出所有讀者信息 for(int i=0;i=top;i+) readi.disp(); void readerdata(); /讀者庫信息rdatabase() /析構(gòu)函數(shù),將read寫到reader
28、.txt文件中 fstream file(reader.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) file.write(char *)&readi,sizeof(readi); file.close(); ;void rdatabase:readerdata() char choice1; char rname20; int readerid; char readername10; int choice2; reader *r; while(choice1!=0) coutnttt* 讀 者 信 息 *nendl; c
29、outttt* 1.新 增 *endl; coutttt* 2.更 改 *endl; coutttt* 3.刪 除 *endl; coutttt* 4.查 找 *endl; coutttt* 5.顯 示 *endl; coutttt* 6.全 刪 *endl; coutttt* 0.返 回 *endl; coutchoice1; switch(choice1) case 1: coutreaderid; coutrname; addreader(readerid,rname); cout添加讀者成功!endl; getch(); break; case 2: coutreaderid; r=q
30、ueryid(readerid); if(r=null) cout該讀者不存在! endl; break; coutrname; r-setname(rname); cout修改讀者成功!endl; getch(); break; case 3: coutreaderid; r=queryid(readerid); if(r=null) cout該讀者不存在! delbook(); cout刪除成功!endl; getch(); break; case 4: coutttt* 1.按讀者編號(hào)查找 *endl; coutttt* 2.按讀者姓名查找 *endl; coutttt* 0.返 回 *endl; coutchoice2; switch(choice2) case 1: coutreaderid; r=queryid(readerid); if(r=null) cout該讀者不存在! endl; break; coutsetw(10)讀者編號(hào)setw(17)讀者姓名setw(20)已借書編號(hào)disp(); break; case 2: coutreadername; r=queryname(readername); if(r=null) cout該讀者不存在!endl; break; coutsetw(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械吊車安全合同
- 廠房水電施工合同:珠寶行業(yè)篇
- 房產(chǎn)租賃合同:學(xué)生公寓租賃協(xié)議
- 八年級(jí)道德與法治開學(xué)摸底考試卷(武漢專用)(答案及評分標(biāo)準(zhǔn))
- 八年級(jí)道德與法治開學(xué)摸底考試卷(江蘇徐州專用)(答題卡)A4版
- 體育場館門禁安裝合同
- 肥料書籍標(biāo)簽管理辦法
- 鐵路工程增項(xiàng)建造師合同
- 垃圾處理硅芯管道安裝合同
- 小區(qū)廉租房合同范例
- 鐵路物資管理模擬考試試題
- 初中歷史課堂教學(xué)如何體現(xiàn)學(xué)生的主體地位
- 部編版三年級(jí)上冊語文課件-習(xí)作六:這兒真美---(共19張PPT)部編版
- 2020湖南湖南省建筑施工開工安全生產(chǎn)條件承諾書
- 《白內(nèi)障》PPT課件.ppt
- 先進(jìn)先出(FIFO)
- 2020年四年級(jí)上冊語文素材-全冊課文梳理(1-27課)-人教(部編版)全冊可修改打印
- 汽輪機(jī)本體檢修規(guī)程
- 檔案數(shù)字化實(shí)施說明及報(bào)價(jià)表
- 翻板濾池設(shè)計(jì)計(jì)算
- 紅樓夢1——40回考點(diǎn)梳理
評論
0/150
提交評論