《圖書管理系統(tǒng)》word版

上傳人:dus****log 文檔編號:127056195 上傳時間:2022-07-29 格式:DOC 頁數(shù):14 大?。?1.71KB
收藏 版權(quán)申訴 舉報 下載
《圖書管理系統(tǒng)》word版_第1頁
第1頁 / 共14頁
《圖書管理系統(tǒng)》word版_第2頁
第2頁 / 共14頁
《圖書管理系統(tǒng)》word版_第3頁
第3頁 / 共14頁

下載文檔到電腦,查找使用更方便

8 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《圖書管理系統(tǒng)》word版》由會員分享,可在線閱讀,更多相關(guān)《《圖書管理系統(tǒng)》word版(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、1、問題描述:對一個有N本書籍的圖書館進(jìn)行計算機(jī)管理,通過該系統(tǒng)實(shí)現(xiàn)對該圖書圖的基本功能的管理,包括:增加新書、借書、還書、查詢書籍等操作。2、功能要求:1)本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:書號、書名、作者姓名、借書證號、借還標(biāo)志、借還書日期等。2)本系統(tǒng)顯示這樣的菜單:請選擇系統(tǒng)功能項(xiàng):a. 增加新書b. 書籍查詢(1)按書號查詢(2)按書名查詢(3)按作者查詢c. 借還書(1)借書(2)還書d. 退出系統(tǒng)3)執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示菜單。也可以通過判斷“借書日期”的內(nèi)容是否為0來確定該書是否借出。3、算法提示:1、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組2、數(shù)

2、據(jù)庫結(jié)構(gòu):該系統(tǒng)的基本數(shù)據(jù)庫如下:書號書名作者姓名借書證號借書日期Charchar charCharchar4、測試數(shù)據(jù):圖書數(shù)N=5高級語言程序設(shè)計(2)課程設(shè)計?一 程序設(shè)計說明書【設(shè)計題目】 圖書館借閱管理【問題描述】圖書館,適合用C+面向?qū)ο蟮墓δ軄砻枋?。圖書館管理系統(tǒng)分為借書、還書、圖書管理和讀者服務(wù)等四個部分。設(shè)計一個讀者類Reader,記錄每個讀者基本信息;讀者庫類Rdatabase,記錄所有讀者信息;圖書類Book, 記錄每本書的基本信息;圖書庫類Bdatabase, 記錄所有圖書信息?!净疽蟆?讀者庫類RDatabase中,其構(gòu)造函數(shù)中,將read.txt文件中所有讀入讀

3、者記錄rede中。處理完畢,在析構(gòu)函數(shù)中將read中的所有未刪記錄寫入到read.txt中。2圖書庫類BDatabase中,其構(gòu)造函數(shù)中,將book.txt文件中所有讀入圖書記錄book中。處理完畢,在析構(gòu)函數(shù)中將book中的所有未刪記錄寫入到book.txt中。3 利用構(gòu)造函數(shù)完成讀者和圖書數(shù)據(jù)初始化,完成內(nèi)存分配。程序結(jié)束前,析構(gòu)函數(shù)完成所申請的堆內(nèi)存空間。4 編寫主函數(shù),對所編寫的矩陣類進(jìn)行全面測試。要求用戶界面采用菜單方式。測試中需要讀者和圖書數(shù)據(jù)通過I/O流從磁盤文件讀入,同時顯示在屏幕上。得到的數(shù)據(jù)通過I/O流寫入磁盤文件保存,同時顯示在屏幕上。5 源程序中要有充分的注釋,報告中要

4、有詳細(xì)的流程圖和文字材料?!绢惖脑O(shè)計】該程序包含了四個類,如下:1. Reader類,有讀者的基本管理功能,具有以下私有數(shù)據(jù):int tag;/刪除標(biāo)記 1:已刪;0:未刪int no;/讀者編號char name10;/讀者姓名int borbookMaxbor;/所借圖書2. 讀者庫類Rdatabase, 具有以下私有數(shù)據(jù):int top;/讀者記錄指針Reader readMaxr;/讀者記錄3. 圖書庫類Book,有一本圖書的基本功能,有以下私有數(shù)據(jù):int tag;/刪除標(biāo)記 1:已刪;0:未刪int no;/圖書編號char name20;/書名int onshelf;/是否在架

5、1在架 0已借4. 圖書庫類BDatabase,有以下私有數(shù)據(jù):int top;/圖書記錄指針Book bookMaxb;/圖書記錄【特殊函數(shù)的設(shè)計說明】構(gòu)造函數(shù)1. Reader類中構(gòu)造函數(shù)Reader(),初始化函數(shù);2. 讀者庫類RDatabase中,其構(gòu)造函數(shù)Rdatabase(),將read.txt文件中所有讀入讀者記錄rede中。3. Book類中構(gòu)造函數(shù)Book(),初始化函數(shù);4. 圖書庫類BDatabase中,其構(gòu)造函數(shù)中,將book.txt文件中所有讀入圖書記錄book中。?拷貝構(gòu)造函數(shù)Reader類中的拷貝構(gòu)造函數(shù)將getname()的返回值讀者姓名拷貝到setname(

6、)中,Book類中的拷貝構(gòu)造函數(shù)將getname()函數(shù)的返回值圖書名拷貝到圖書名設(shè)置函數(shù)setname()中。?析構(gòu)函數(shù)1. 讀者庫類RDatabase中,其析構(gòu)函數(shù)Rdatabase(),將read中的所有未刪記錄寫入到read.txt中;2. 圖書庫類BDatabase中,其析構(gòu)函數(shù)Bdatabase(),將book中的所有未刪記錄寫入到book.txt中。?運(yùn)算符重載重載了“=”,當(dāng)比較讀者編號和圖書編號時,重載;重載位運(yùn)算符“”和“”等。?【主要函數(shù)算法流程圖】?【程序的使用方法】1. 進(jìn)入操作頁面,按提示操作;2. 首先,新增圖書和讀者信息,之后就可以對以存在的信息進(jìn)行操作;3.

7、操作當(dāng)中,可以隨時增加,更改和刪除圖書或讀者信息;4. 當(dāng)選擇退出時,進(jìn)行清屏。?二 程序上機(jī)調(diào)試報告【語法錯誤及其排除】1在敲程序時,有很多拼寫錯誤,例好多處把Readdata()誤打Readdate();結(jié)束的分號,在不同的輸入法狀態(tài)下輸入,這些小錯誤剛開始很難發(fā)現(xiàn),不過有了經(jīng)驗(yàn),就很容易了。2創(chuàng)建新的構(gòu)造函數(shù)時,使用出現(xiàn)了錯誤。重載構(gòu)造函數(shù)要注意函數(shù)的訪問權(quán)限,結(jié)果就不會出現(xiàn)錯誤?!舅惴ㄥe誤及其排除】1. 讀者類中借書操作函數(shù)中,采用循環(huán)語句時判斷讀者已借圖書量時for(int i=0;iMaxbor;i+)誤寫為for(int i=1;iMaxbor;i+),使循環(huán)發(fā)生錯誤。2. 指針

8、使用錯誤,指針b和r混淆,導(dǎo)致編譯錯誤得到“error C2660: retbook : function does not take 1 parameters”錯誤報告。三 程序測試結(jié)果【收獲及體會】除了課堂外,課程設(shè)計是最能學(xué)到東西的,最考驗(yàn)人的。在做課程設(shè)計這段時間,時刻都感覺自己有好多不懂,要學(xué)的太多了!經(jīng)過這次課程設(shè)計,讓我對C+這門語言有了更深的認(rèn)識,操作能力有了提高。要想得到敲的代碼運(yùn)行出來后的滿足感,需要耐心細(xì)心,毅力以及充沛的體力。只有經(jīng)過多次編輯,多次編譯,再多次運(yùn)行,才能編寫出更好的程序,有時候需要多次的更正才達(dá)到所要的運(yùn)行結(jié)果。學(xué)習(xí)編程,需要多揣摩,實(shí)踐,實(shí)踐,再實(shí)踐,

9、編程技能才能更上一層樓,此外還得多向高手請教!【源程序代碼】/*/圖書館借閱管理/班級:/學(xué)號:/姓名:/*#include#include#include#includeconst int Maxr=1000;/最多的讀者const int Maxb=10000;/最多的圖書const int Maxbor=8;/每位讀者最多借8本書class Reader /讀者類int tag;/刪除標(biāo)記 1已刪;0未刪int no;/讀者編號char name10;/讀者姓名int borbookMaxbor;/所借圖書public :Reader()/構(gòu)造函數(shù)char *getname()retur

10、n name;/獲取讀者姓名int gettag()return tag;/獲取刪除標(biāo)記int getno()return no;/獲取讀者編號void setname(char na)/設(shè)置讀者姓名strcpy(name,na);void delbook()tag=1;/設(shè)置刪除標(biāo)記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(bor

11、booki=0)borbooki=bookid;int retbook(int bookid)/還書操作for(int i=0;iMaxbor;i+)if (borbooki=bookid)borbooki=0;return 1;return 0;void disp()/輸出讀者信息coutsetw(5)nosetw(10)name借書編號:;for(int i=0;i,Maxbor;i+)if(borbooki!=0)coutborbookiendl;?class RDatabase/讀者庫類int top;/讀者記錄指針Reader readMaxr;/讀者記錄public:RDataba

12、se()/構(gòu)造函數(shù),將reader.txt讀到read中Reader s;top=-1;fstream file(reader.txt,ios:in);while(1)file.read(char*)&s,sizeof(s);if(!file)break;top+;readtop=s;file.close();void clear()/刪除所有讀者信息top=-1;int addreader(int n,char *na)/添加讀者,檢查是否已存在Reader *p=query(n);if(p=NULL)top+;readtop.addreader(n,na);return 1;return

13、0;Reader*query(int readerid)/按編號查找for(int i=0;i=top;i+)if(readi.getno()=readerid&readi.gettag=0)return &readi;return NULL;void disp()/刪除讀者所有信息for(int i=0;i=top;i+)readi.disp();void readerdata();/讀者庫維護(hù)RDatabase()/析構(gòu)函數(shù),將read寫入reader.txt文件中fstream file(reader.txt,ios:out);for(int i=0;i=top;i+)if(readi.

14、gettag()=0)file.write(char*)&readi,sizeof(readi);file.close();void RDatabase:readerdata()int choice=1;char rname20;int readerid;Reader*r;while(choice!=0)cout讀者服務(wù) 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出choice;switch(choice)case 1:coutreaderid;coutrname;addreader(readerid,rname);break;case 2:coutreaderid;r=query(

15、readerid);if(r=NULL)cout讀者不存在endl;break;coutrname;r-setname(rname);break;case 3:coutreaderid;r=query(readerid);if(r=NULL)cout讀者不存在delbook();break;case 4:coutreaderid;r=query(readerid);if(r=NULL)cout該讀者編號不存在endl;break;case 5:disp();break;case 6:clear();break;?class Book/圖書類int tag;/刪除標(biāo)記 1:已刪;0:未刪int

16、no;/圖書編號char name20;/書名int onshelf;/是否在架 1在架 0已借public:Book()char*getname()return name;/獲取讀者姓名int getno()return no;/獲取圖書編號int gettag()return tag;/獲取刪除標(biāo)記void setname(char na)/設(shè)置書名strcpy(name,na);void delbook()tag=1;/刪除圖書void addbook(int n,char*na)/增加圖書tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbo

17、ok()/借書操作if(onshelf=1)onshelf=0;return 1;return 0;void retbook()/還書操作onshelf=1;void disp()/輸出圖書coutsetw(6)nosetw(18)namesetw(10)(onshelf=1?在架:已借)endl;?class BDatabase/圖書庫類int top;/圖書記錄指針Book bookMaxb;/圖書記錄public:BDatabase()/構(gòu)造函數(shù),將book.txt讀到book中Book b;top=-1;fstream file(book.txt,ios:in);while(1)fil

18、e.read(char*)&b,sizeof(b);if(!file)break;top+;booktop=b;file.close();void clear()/全刪top=-1;int addbook(int n,char*na)/增加圖書Book*p=query(n);if(p=NULL)top+;booktop.addbook(n,na);return 1;cout新增成功!endl;Book*query(int bookid)/查找圖書for(int i=0;i=top;i+)if(booki.getno()=bookid&booki.gettag()=0)return NULL;v

19、oid bookdata();/圖書庫維護(hù)void disp()for(int i=0;i=top;i+)if(booki.gettag()=0)booki.disp();BDatabase()/析構(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()int choice;char bname40;int bo

20、okid;Book *b;while(choice!=0)cout圖書管理 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出choice;switch(choice)case 1:coutbookid;coutbname;addbook(bookid,bname);break;case 2:coutbookid;b=query(bookid);if(b=NULL)cout該圖書不存在endl;break;coutbname;b-setname(bname);cout更名成功!endl;break;case 3:coutbookid;b=query(bookid);if(b=NULL)co

21、ut該圖書不存在!delbook();break;case 4:coutbookid;b=query(bookid);if(b=NULL)cout該書不存在!disp();break;case 5:disp();break;case 6:clear();break;?void main()int choice=1,bookid,readerid;RDatabase ReaderDB;Reader *r;BDatabase BookDB;Book *b;while(choice!=0)cout 1借書? endl;cout 2還書? endl;cout 3圖書維護(hù)? endl;cout 4讀者維

22、護(hù)? endl;cout 0離開? choice;switch(choice)case 1:coutreaderid;coutbookid;r=ReaderDB.query(readerid);if(r=NULL)cout哈哈,借書成功!;break;b=BookDB.query(bookid);if(b=NULL)cout不存在該書!borrowbook()=0)cout該書已借borrowbook(b-getno();break;cout借書成功!endl;case 2:coutreaderid;coutbookid;r=ReaderDB.query(readerid);if(r=NULL

23、)cout不存在該讀者!retbook();r-retbook(b-getno();break;cout還書成功!endl;case 3:BookDB.bookdata();break;case 4:ReaderDB.readerdata();break;【輸出結(jié)果】1借書2還書3圖書管理4讀者服務(wù)0退出3圖書管理 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出1輸入圖書編號:1111輸入圖書書名:武林外傳新增成功!圖書管理 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出1輸入圖書編號:2222輸入圖書書名:今夜無眠新增成功!圖書管理 1新增 2更該 3刪除 4查找 5顯示 6

24、全刪 0退出01借書2還書3圖書管理4讀者服務(wù)0退出4讀者服務(wù) 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出1請輸入讀者編號:001讀入讀者姓名:周強(qiáng)讀者服務(wù) 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出01借書2還書3圖書管理4讀者服務(wù)0退出1借書,請輸入讀者編號:001圖書編號:1111哈哈,借書成功! 1借書2還書3圖書管理4讀者服務(wù)0退出2還書,請輸入讀者編號:001請輸入圖書編號;1111還書成功!1借書2還書3圖書管理4讀者服務(wù)0退出3圖書管理 1新增 2更該 3刪除 4查找 5顯示 6全刪 0退出2輸入圖書編號:2222輸入新書名:金庸全集更名成功!Press any key to continue

展開閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!