C++圖書管理系統(tǒng)大型實(shí)驗(yàn)報告_第1頁
C++圖書管理系統(tǒng)大型實(shí)驗(yàn)報告_第2頁
C++圖書管理系統(tǒng)大型實(shí)驗(yàn)報告_第3頁
C++圖書管理系統(tǒng)大型實(shí)驗(yàn)報告_第4頁
C++圖書管理系統(tǒng)大型實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 基于C+的圖書館管理系統(tǒng)實(shí)現(xiàn)方式圖書館管理系統(tǒng)為各大學(xué)校提供了方便。從設(shè)計開始采用了以數(shù)據(jù)為中心的面向?qū)ο笏枷?。為了提高對?shù)據(jù)操作的理解,提高自身的編程邏輯,采用鏈表保存所有信息,程序結(jié)束存放在文本文件中。,C+作為一款面向?qū)ο蟮母呒壘幾g型語言,編寫圖書館最基本的人員操作類:讀者類,工作人員類,管理類以及對數(shù)據(jù)操作的DBFile類。實(shí)驗(yàn)?zāi)康膶?shí)現(xiàn)以下功能:使用對象功能詳細(xì)功能讀者查看/修改個人信息查找館藏圖書信息工作人員查詢讀者信息(個人信息和讀者借書情況)還書借書查詢圖書信息(根據(jù)id號查找圖書,顯示基本信息和是否被借閱)管理人員維護(hù)圖書信息添加、刪除、編輯圖書信息

2、維護(hù)讀者信息添加、刪除、編輯讀者信息維護(hù)人員信息(包括下級管理員)添加、刪除、編輯工作人員信息查詢圖書信息具體實(shí)現(xiàn)方式1. 數(shù)據(jù)的存儲方式所有人員都有:用戶名,密碼,真實(shí)姓名,性別,年齡讀者特有:借書總數(shù),所借書的書號圖書:書號,書名,作者,出版社,館藏量,借出數(shù)量。用文本文件reader.dat存儲讀者信息,worker.dat存儲工作人員信息,manager.dat存儲管理員信息,book.dat存儲所有書本信息。運(yùn)行時所有數(shù)據(jù)保存在內(nèi)存中,其類型均為 string。2. 類的關(guān)系圖書館管理系統(tǒng)菜單類Menu人員類People讀者類Reader數(shù)據(jù)操作類DBFile 繼 承管理員類Mana

3、ger工作人員類Worker類的關(guān)系3.功能模塊圖3.1 讀者模塊讀者登錄輸入用戶名及密碼 用戶名或密碼錯誤NO YES NO選擇1 YES查看個人信息選擇2NOYES修改個人信息查找館藏書選擇1NO YES結(jié)束 讀者功能圖相關(guān)功能代碼:1.查看個人信息void Reader:See_Infor() Book* pbook=NULL; cout 用戶名: Usernameendl; cout 密碼: Passwordendl; cout 真實(shí)姓名: Nameendl; cout 性別: Sexendl; cout 年齡: Ageendl; cout 總借圖書數(shù): Totle_borrowend

4、l;cout 所借的書為: ; for(int i=0;iTotle_borrow;+i) pbook=DB.book_by_number(borrowbooknumi); coutBookName ; coutendl; 2.修改個人信息void Reader:Edit_Infor()Reader* reader=NULL;reader=DB.reader_by_username(Username);string username;/ 更改用戶名 string password;/ 密碼 、 string name;/ 姓名 string sex;/ 性別 。 int age;/ 年齡int

5、 n=-1;/標(biāo)記作用cout 讀者信息修改: endl;coutusername;coutendl;coutpassword;coutendl;coutname;coutendl;coutsex;coutendl;coutage;coutendl;if(DB.reader_by_username(username)cout 用戶名已存在.endl;n=0;if(sex!=男&sex!=女)cout 性別輸入錯誤.99&age0)cout 年齡輸入錯誤.endl;n=0;if(n=0)cout 信息更改失敗.Username=username;reader-Password=password;

6、reader-Name=name;reader-Sex=sex;reader-Age=age;cout 恭喜您信息更改成功.endl;3.查找館藏書void People:See_book()system(cls);Book* book=NULL;string booknum; coutendlendlendlendlendlendl;cout -歡迎進(jìn)入查詢圖書系統(tǒng)-endl;coutbooknum;book=DB.book_by_number(booknum);if(book=NULL)cout 不存在此書號.endl;elsecout 此書基本信息如下:endl;coutsetw(31)

7、書號: BookNumendl;coutsetw(31)書名: BookNameendl;coutsetw(31)作者: Autherendl;coutsetw(31)出版社: Pressendl;coutsetw(31)館藏量: StoreNumendl;coutsetw(31)借出書: BorrowNumendl;3.2工作人員模塊工作人員輸入用戶名和密碼用戶名和密碼是否正確正確Y進(jìn)入工作人員界面選擇1Y查詢讀者信息(個人信息和讀者借書情況)選擇2選擇3NNYNN還書借書查詢圖書信息Y選擇1N結(jié)束Y工作人員功能模塊圖相關(guān)功能代碼:1.查詢讀者信息void Worker:See_Reader

8、()string username;Book* pbook;coutusername;Reader* reader=DB.reader_by_username(username);if(reader=NULL)coutsetw(25) 不存在該讀者號.endl;elsecoutsetw(38) 讀者號: Usernameendl;coutsetw(38) 讀者密碼: Passwordendl;coutsetw(38) 讀者真實(shí)姓名: Nameendl;coutsetw(38) 讀者性別: Sexendl;coutsetw(38) 讀者年齡: Ageendl;coutsetw(38) 讀者所接書

9、得總數(shù)及書名: Totle_borrow ;for(int i=0;iTotle_borrow;+i) pbook=DB.book_by_number(reader-borrowbooknumi); coutBookName ; 2.借書void Worker:Borrow_Book()system(cls);int n=0;string username;string booknum;Book* pbook=NULL;coutendlendlendlendlendlendl;cout -歡迎使用借書系統(tǒng)-endl; coutusername;Reader* reader=DB.reader_

10、by_username(username);if(reader=NULL) cout 不存在該讀者或讀者號輸入錯誤.endl;return;coutbooknum;while(1)pbook=DB.book_by_number(booknum);if(pbook=NULL)cout 對不起,該系統(tǒng)沒有這本書.BorrowNum=pbook-StoreNum)cout 該書已達(dá)借閱數(shù)上限.endl;break; for(int i=0;iTotle_borrow;i+) if(reader-borrowbooknumi=booknum) cout 您已借了該書,不能重復(fù)借閱.Totle_borr

11、ow=10) cout 您的可借書已達(dá)上限.endl; break; cout 借閱成功.BorrowNum+;reader-Totle_borrow+;reader-borrowbooknumreader-Totle_borrow-1=booknum;break;3.還書 void Worker:Back_Book()int n=0;system(cls);string username;string booknum;coutendlendlendlendlendlendl;cout -歡迎進(jìn)入還書系統(tǒng)-endl;coutusername;coutbooknum;Book* pbook=DB

12、.book_by_number(booknum);Reader* reader=DB.reader_by_username(username);while(1) if(pbook=NULL) cout 該系統(tǒng)沒有這本書.endl;break; if(reader=NULL) cout 讀者用戶名輸入錯誤或不存在該讀者.endl;break; for(int i=0;iTotle_borrow;+i)if(reader-borrowbooknumi=booknum)n=1;if(n!=1)cout 該讀者沒有借過該書.endl;break; cout 還書成功.BorrowNum-;for(in

13、t i=0;iTotle_borrow;+i)if(reader-borrowbooknumi=booknum)reader-borrowbooknumi=0;int remain = reader-Totle_borrow - i - 1;for(int j = 0; j borrowbooknumi+j = reader-borrowbooknumi+j+1;reader-Totle_borrow-;break;4.查詢圖書信息void People:See_book()system(cls);Book* book=NULL;string booknum; coutendlendlendl

14、endlendlendl;cout -歡迎進(jìn)入查詢圖書系統(tǒng)-endl;coutbooknum;book=DB.book_by_number(booknum);if(book=NULL)cout 不存在此書號.endl;elsecout 此書基本信息如下:endl;coutsetw(31)書號: BookNumendl;coutsetw(31)書名: BookNameendl;coutsetw(31)作者: Autherendl;coutsetw(31)出版社: Pressendl;coutsetw(31)館藏量: StoreNumendl;coutsetw(31)借出書: BorrowNume

15、ndl;3.3管理員功能模塊管理人員功能模塊圖管理人員輸入用戶名和密碼用戶名和密碼是否正確正確Y進(jìn)入管理人員界面選擇1Y維護(hù)圖書信息選擇2選擇3NNYNN維護(hù)讀者信息維護(hù)人員信息查詢圖書信息Y選擇1N結(jié)束Y添加編輯刪除圖書信息添加編輯刪除讀者信息添加編輯刪除人員信息相關(guān)功能代碼:1.維護(hù)圖書信息void Manager:Add_Book()/添加圖書 Book* newbook=new Book(); coutnewbook-BookNum; coutendl; coutnewbook-BookName; coutendl; coutnewbook-Auther; coutendl; cout

16、newbook-Press; coutendl; coutnewbook-StoreNum; coutBorrowNum=0; Book* book=DB.book_by_number(newbook-BookNum); if(book=NULL) cout 添加成功.endl; DB.Add_Book(newbook); else cout 此書已存在.endl;void Manager:Mod_Book()string booknum;Book* book=NULL;while(1)coutbooknum;coutendl; book=DB.book_by_number(booknum);

17、if(book=NULL)cout 不存在該書號,請重新輸入endl; coutendl;else coutbooknum;Book* book1=DB.book_by_number(booknum);if(book1=NULL)book-BookNum=booknum;break;else coutendl;cout 已存在該書號,請重新輸入endlendl; coutendl;coutbook-BookName;coutendl; coutbook-Auther;coutendl;coutbook-Press;coutendl;coutbook-StoreNum;coutendl;cout

18、 修改成功.endl;void Manager:Remove_Book()string booknum;coutbooknum;coutBorrowNum=0)cout 成功的刪除該書.endl;DB.Remove_Book(booknum);elsecout 有讀者未歸還該書,不能刪除.endl;elsecout 不存在該書或輸入書號錯誤.endl;2.維護(hù)讀者信息void Manager:Add_Reader()Reader* newreader=new Reader();coutnewreader-Username;coutendl;coutnewreader-Password;cout

19、endl;coutnewreader-Name;coutendl;coutnewreader-Sex;coutendl;coutnewreader-Age;coutTotle_borrow=0;for(int i=0;iborrowbooknumi=0;if(!DB.reader_by_username(newreader-Username)cout 添加讀者成功.endl;DB.Add_Reader(newreader);elsecout 添加讀者失敗.endl;void Manager:Mod_Reader()string username;Reader* reader=NULL;whil

20、e(1)coutusername;coutendl;reader=DB.reader_by_username(username);if(reader=NULL)cout 該讀者號不存在.請重新輸入.endl;coutendl;elsecoutusername;Reader* reader1=DB.reader_by_username(username);if(reader1=NULL)reader-Username=username;break;else coutendl; cout 該讀者號已存在.請重新輸入.endlendl; coutendl;coutreader-Password;co

21、utendl; coutreader-Name;coutendl;coutreader-Sex;coutendl;coutreader-Age;coutendl;cout 修改成功.endl;void Manager:Remove_Reader()string username;coutusername;coutendl;Reader* reader=DB.reader_by_username(username);if(reader)cout 成功的刪除該讀者.endl;DB.Remove_Reader(username);elsecout 不存在該讀者或讀者號不存在.endl;3.維護(hù)工作人

22、員信息void Manager:Add_Worker()Worker* newworker=new Worker();coutnewworker-Username;coutendl;coutnewworker-Password;coutendl;coutnewworker-Name;coutendl;coutnewworker-Sex;coutendl;coutnewworker-Age;coutUsername)cout 添加工作人員成功.endl;DB.Add_Worker(newworker);elsecout 用戶名已有.添加工作人員失敗.endl;void Manager:Mod_W

23、orker()string username;Worker* worker=NULL;while(1)coutusername;coutendl;worker=DB.worker_by_username(username);if(worker=NULL)cout 該工作人員的用戶名不存在.請重新輸入.endl;coutendl;elsecoutusername;Worker* worker1=DB.worker_by_username(username);if(worker1=NULL)worker-Username=username;break;else coutendl; cout 該工作

24、人員的用戶名已存在.請重新輸入.endlendl; coutendl;coutworker-Password;coutendl; coutworker-Name;coutendl;coutworker-Sex;coutendl;coutworker-Age;coutendl;cout 修改成功.endl;void Manager:Remove_Worker()string username;coutusername;coutendl;Worker* worker=DB.worker_by_username(username);if(worker)cout 成功的刪除該工作人員.endl;DB.

25、Remove_Worker(username);elsecout 不存在該工作人員或工作人員用戶名不存在.endl;4.查看圖書信息:根據(jù)類的繼承機(jī)制,同工作人員4.設(shè)計概要本圖書館管理系統(tǒng)通過使用鏈表來存放書本與人員, 考慮到安全性, 效率性并沒有自己寫鏈表, 而是使用STL的list, 并作為DBFile的私有成員。DBFile的接口:class DBFile public: DBFile();/全部初始化 void Initialize_Book();/ 圖書信息的初始化,即把文件中的數(shù)據(jù)存到listbooks; void Initialize_Reader();/讀者的初始化 void

26、 Initialize_Worker();/工作人員的初始化 void Initialize_Manager();/管理員的初始化 Book* book_by_number(const string&)const;/通過書號來查找書 Reader* reader_by_username(const string&)const;/通過用戶名查找讀者并可核對讀者的用戶名 Worker* worker_by_username(const string&)const;/通過用戶名查找工作人員 Manager* manager_by_username(const string&)const;/通過用戶名

27、查找管理員 void Reader_Login();/讀者登錄 void Worker_Login();/工作人員登錄 void Manager_Login();/管理員登錄 void Allbook_infor()const;/顯示全部書的信息,并顯示是否可借 void Add_Book(Book*);/添加圖書 void Mod_Book(Book*);/修改圖書 void Remove_Book(const string&);/刪除圖書 void Add_Reader(Reader*);/添加讀者 void Mod_Reader(Reader*);/修改讀者 void Remove_Re

28、ader(const string&);/刪除讀者 void Add_Worker(Worker*);/添加工作人員 void Mod_Worker(Worker*);/修改工作人員 void Remove_Worker(const string&);/刪除工作人員 void Save_Book();/保存圖書 void Save_Reader();/保存讀者 void Save_Worker();/保存工作人員 void Save_Manager();/保存管理員 DBFile();/保存所有文件 private: list books;/建立圖書的鏈表 list readers;/建立讀者

29、的鏈表 list workers;/建立工作人員的鏈表 list managers;/建立管理員的鏈表 ;People父類接口:class People public: string Username;/ 用戶名 string Password;/ 密碼 string Name;/ 姓名 string Sex;/ 性別 int Age;/ 年齡 void See_book();/按書號查詢圖書信息virtual void Read(istream& in);/讀文件里的數(shù)據(jù) ; Reader類接口:class Reader:public:People public: Reader() Totle_borrow=0;for(int i=0;i10;+i)borrowbooknumi=0;/簡單的構(gòu)造函數(shù) int Totle_borrow;/所借書的總數(shù) string borrowbooknum10;/該讀者所借的書號,最多可借十本書 void See_Infor();/查看讀者信息 void Edit_Infor();/修改讀者信息virtual void Read(i

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論