版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C+圖書管理系統(tǒng)大型實驗報告 基于C+的圖書館管理系統(tǒng)實現(xiàn)方式圖書館管理系統(tǒng)為各大學校提供了方便。從設計開始采用了以數(shù)據(jù)為中心的面向對象思想。為了提高對數(shù)據(jù)操作的理解,提高自身的編程邏輯,采用鏈表保存所有信息,程序結束存放在文實驗目的 具體實現(xiàn)方式1. 數(shù)據(jù)的存儲方式所有人員都有:用戶名,密碼,真實姓名,性別,年齡讀者特有:借書總數(shù),所借書的書號圖書:書號,書名,作者,出版社,館藏量,借出數(shù)量。用文有數(shù)據(jù)保存在內存中,其類型均為 string。2. 類的關系類的關系3.功能模塊圖3.1 讀者模塊 讀者功能圖相關功能代碼:1.查看個人信息void Reader:See_Infor()Book*
2、pbook=NULL;cout<<" 用戶名: "<<Username<<endl; cout<<" 密碼: "<<Password<<endl; cout<<" 真實姓名: "<<Name<<endl; cout<&
3、lt;" 性別: "<<Sex<<endl;cout<<" 年齡: "<<Age<<endl;cout<<" 總借圖書數(shù): "<<Totle_borrow<<endl; cout<<" 所借的書為: "f
4、or(int i=0;i<Totle_borrow;+i)pbook=DB.book_by_number(borrowbooknumi); cout<<pbook->BookName<<" " cout<<endl;2.修改個人信息void Reader:Edit_Infor() Reader* reader=NULL;reader=DB.reader_by_username(Username);string username;/ 更改用戶名str
5、ing password;/ 密碼 、string name;/ 姓名string sex;/ 性別 。int age;/ 年齡int n=-1;/標記作用cout<<" 讀者信息修改: "<<endl;cout<<" 新用戶名: "cin>>username;cout<<endl;cout<<" 新密碼: "cin&am
6、p;gt;>password;cout<<endl;cout<<" 真實姓名: "cin>>name;cout<<endl;cout<<" 性別: "cin>>sex;cout<<endl;cout<<" 年齡: "cin>>
7、age;cout<<endl;if(DB.reader_by_username(username)cout<<" 用戶名已存在."<<endl;n=0;if(sex!="男"&&sex!="女")cout<<" 性別輸入錯誤."<<endl;n=0;if(age>99&
8、amp;amp;&age<0)cout<<" 年齡輸入錯誤."<<endl;n=0;if(n=0)cout<<" 信息更改失敗."<<endl;elsereader->Username=username;reader->Password=password;reader->Name=name;reader->Sex=sex;rea
9、der->Age=age;cout<<" 恭喜您信息更改成功."<<endl; 3.查找館藏書void People:See_book()system("cls");Book* book=NULL;string booknum;cout<<endl<<endl<<endl<<endl<<endl<&am
10、p;lt;endl;cout<<" -歡迎進入查詢圖書系統(tǒng)-"<<endl; cout<<" 請輸入所要查詢圖書的書號:" cin>>booknum;book=DB.book_by_number(booknum);if(book=NULL)cout<<" 不存在此書號."<<endl; elsecout<&a
11、mp;lt;" 此書基本信息如下:"<<endl; cout<<setw(31)<<"書號: "<<book->BookNum<<endl;cout<<setw(31)<<"書名: "<<book->BookName<&
12、;lt;endl;cout<<setw(31)<<"作者: "<<book->Auther<<endl;cout<<setw(31)<<"出版社: "<<book->Press<<endl;cout<<setw(31)<<
13、;"館藏量: "<<book->StoreNum<<endl;cout<<setw(31)<<"借出書: "<<book->BorrowNum<<endl; 3.2工作人員模塊工作人員功能模塊圖 相關功能代碼:1.查詢讀者信息void Worker:See_Reader()string username; Book* pbook;
14、cout<<" 歡迎查看讀者信息,請輸入讀者號: "cin>>username;Reader* reader=DB.reader_by_username(username);if(reader=NULL)cout<<setw(25)<<" 不存在該讀者號."<<endl; elsecout<<setw(38)<<"
15、; 讀者號: "<<reader->Username<<endl; cout<<setw(38)<<" 讀者密碼: "<<reader->Password<<endl; cout<<setw(38)<<" 讀者真實姓名: "<<r
16、eader->Name<<endl; cout<<setw(38)<<" 讀者性別: "<<reader->Sex<<endl; cout<<setw(38)<<" 讀者年齡: "<<reader->Age<<endl; cout&a
17、mp;lt;<setw(38)<<" 讀者所接書得總數(shù)及書名:"<<reader->Totle_borrow<<" "for(int i=0;i<reader->Totle_borrow;+i)pbook=DB.book_by_number(reader->borrowbooknumi);cout<<pbook->BookName
18、<<" "2.借書void Worker:Borrow_Book()system("cls");int n=0;string username;string booknum;Book* pbook=NULL;cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<<&
19、amp;quot; -歡迎使用借書系統(tǒng)-"<<endl;cout<<" 請輸入讀者號: "cin>>username;Reader* reader=DB.reader_by_username(username);if(reader=NULL)cout<<" 不存在該讀者或讀者號輸入錯誤."<<endl;return;cout<<&q
20、uot; 請輸入書號: "cin>>booknum;while(1)pbook=DB.book_by_number(booknum);if(pbook=NULL)cout<<" 對不起,該系統(tǒng)沒有這本書."<<endl;break;if(pbook->BorrowNum=pbook->StoreNum)cout<<" 該書已達借閱數(shù)上限."<&l
21、t;endl;break;for(int i=0;i<reader->Totle_borrow;i+)if(reader->borrowbooknumi=booknum)cout<<" 您已借了該書,不能重復借閱."<<endl;n=1;break;if(n=1) break;if(reader->Totle_borrow>=10)cout<<" 您的可借書已達上限."&
22、amp;lt;<endl;break;cout<<" 借閱成功."<<endl; pbook->BorrowNum+;reader->Totle_borrow+;reader->borrowbooknumreader->Totle_borrow-1=booknum; break;3.還書void Worker:Back_Book()int n=0;system("cls");string usern
23、ame;string booknum;cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<<" -歡迎進入還書系統(tǒng)-"<<endl;cout<<" 請輸入讀者號: " cin>>username;cout&a
24、mp;lt;<" 請輸入所還書號: " cin>>booknum;Book* pbook=DB.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<<&quo
25、t; 讀者用戶名輸入錯誤或不存在該讀者."<<endl;break;for(int i=0;i<reader->Totle_borrow;+i)if(reader->borrowbooknumi=booknum)n=1;if(n!=1)cout<<" 該讀者沒有借過該書."<<endl;break;cout<<" 還書成功."<&l
26、t;endl;pbook->BorrowNum-;for(int i=0;i<reader->Totle_borrow;+i)if(reader->borrowbooknumi=booknum)reader->borrowbooknumi="0"int remain = reader->Totle_borrow - i - 1; for(int j = 0; j < remain; +j)reader->borrowbooknumi+j =read
27、er->borrowbooknumi+j+1;reader->Totle_borrow-;break; 4.查詢圖書信息void People:See_book()system("cls");Book* book=NULL;string booknum;cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<&
28、;lt;" -歡迎進入查詢圖書系統(tǒng)-"<<endl;cout<<" 請輸入所要查詢圖書的書號:" cin>>booknum;book=DB.book_by_number(booknum);if(book=NULL)cout<<" 不存在此書號."<<endl; elsecout<<" 此書基本信息如下:&
29、amp;quot;<<endl; cout<<setw(31)<<"書號: "<<book->BookNum<<endl;cout<<setw(31)<<"書名: "<<book->BookName<<endl;cout<&l
30、t;setw(31)<<"作者: "<<book->Auther<<endl;cout<<setw(31)<<"出版社: "<<book->Press<<endl;cout<<setw(31)<<"館藏量: "&
31、amp;lt;<book->StoreNum<<endl; cout<<setw(31)<<"借出書: "<<book->BorrowNum<<endl; 3.3管理員功能模塊管理人員功能模塊圖 相關功能代碼:1.維護圖書信息void Manager:Add_Book()/添加圖書Book* newbook=new Book(); cout<<&
32、;quot; 請輸入新書號: "cin>>newbook->BookNum;cout<<endl;cout<<" 請輸入新書名: "cin>>newbook->BookName;cout<<endl;cout<<" 請輸入作者: "cin>>newbook->Auther
33、;cout<<endl;cout<<" 請輸入出版社: "cin>>newbook->Press;cout<<endl;cout<<" 請輸入館藏量: "cin>>newbook->StoreNum;cout<<endl;newbook->BorrowNum=0;Book* book=DB
34、.book_by_number(newbook->BookNum); if(book=NULL)cout<<" 添加成功."<<endl; DB.Add_Book(newbook);elsecout<<" 此書已存在."<<endl; void Manager:Mod_Book() string booknum;Book* book=NULL;while(1)cout<<
35、" 請輸入您要修改圖書的書號: " cin>>booknum;cout<<endl;book=DB.book_by_number(booknum);if(book=NULL)cout<<" 不存在該書號,請重新輸入"<<endl; cout<<endl;elsecout<<" 請輸入新書號: "cin>&am
36、p;gt;booknum;Book* book1=DB.book_by_number(booknum);if(book1=NULL)book->BookNum=booknum;break;elsecout<<endl;cout<<" 已存在該書號,請重新輸入"<<endl<<endl; cout<<endl;cout<<" 請輸入新書名: "c
37、in>>book->BookName;cout<<endl;cout<<" 請輸入作者: "cin>>book->Auther;cout<<endl;cout<<" 請輸入出版社: "cin>>book->Press;cout<<endl;cout<
38、;<" 請輸入館藏量: "cin>>book->StoreNum;cout<<endl;cout<<" 修改成功."<<endl;void Manager:Remove_Book()string booknum;cout<<" 請輸入刪除書的書號: "cin>>booknum;cout&
39、lt;<endl;Book* book=DB.book_by_number(booknum);if(book!=NULL)if(book->BorrowNum=0)cout<<" 成功的刪除該書."<<endl;DB.Remove_Book(booknum);elsecout<<" 有讀者未歸還該書,不能刪除."<<endl; elsecout<<&
40、quot; 不存在該書或輸入書號錯誤."<<endl; 2.維護讀者信息void Manager:Add_Reader()Reader* newreader=new Reader(); cout<<" 請輸入添加讀者的讀者號: "cin>>newreader->Username;cout<<endl;cout<<" 請輸入密碼: "cin>
41、>newreader->Password;cout<<endl;cout<<" 請輸入真實姓名: "cin>>newreader->Name;cout<<endl;cout<<" 請輸入性別: "cin>>newreader->Sex;cout<<endl;cout&
42、lt;<" 請輸入年齡: "cin>>newreader->Age;cout<<endl;newreader->Totle_borrow=0;for(int i=0;i<10;+i)newreader->borrowbooknumi="0"if(!DB.reader_by_username(newreader->Username)cout<<&quo
43、t; 添加讀者成功."<<endl;DB.Add_Reader(newreader);elsecout<<" 添加讀者失敗."<<endl; void Manager:Mod_Reader() string username;Reader* reader=NULL;while(1)cout<<" 請輸入您要修改的讀者號: "cin>>username;cout&
44、;lt;<endl;reader=DB.reader_by_username(username);if(reader=NULL)cout<<" 該讀者號不存在.請重新輸入."<<endl; cout<<endl;elsecout<<" 請輸入新讀者號: "cin>>username;Reader* reader1=DB.reader_by_username(usernam
45、e);if(reader1=NULL)reader->Username=username;break;elsecout<<endl;cout<<" 該讀者號已存在.請重新輸入."<<endl<<endl; cout<<endl;cout<<" 請輸入新密碼: "cin>>reader->Password
46、;cout<<endl;cout<<" 請輸入新姓名: "cin>>reader->Name;cout<<endl;cout<<" 請輸入性別: "cin>>reader->Sex;cout<<endl;cout<<" 請輸入年齡: "ci
47、n>>reader->Age;cout<<endl;cout<<" 修改成功."<<endl;void Manager:Remove_Reader()string username; cout<<" 請輸入需刪除的讀者號: "cin>>username;cout<<endl;Reader* reader=DB.rea
48、der_by_username(username);if(reader)cout<<" 成功的刪除該讀者."<<endl; DB.Remove_Reader(username);elsecout<<" 不存在該讀者或讀者號不存在."<<endl; 3.維護工作人員信息void Manager:Add_Worker()Worker* newworker=new Worker(); cout<&
49、lt;" 請輸入添加工作人員的用戶名: "cin>>newworker->Username;cout<<endl;cout<<" 請輸入密碼: "cin>>newworker->Password;cout<<endl;cout<<" 請輸入真實姓名: "cin>>ne
50、wworker->Name;cout<<endl;cout<<" 請輸入性別: "cin>>newworker->Sex;cout<<endl;cout<<" 請輸入年齡: "cin>>newworker->Age;cout<<endl;if(!DB.worker_by_username(
51、newworker->Username)cout<<" 添加工作人員成功."<<endl; DB.Add_Worker(newworker);elsecout<<" 用戶名已有.添加工作人員失敗."<<endl; void Manager:Mod_Worker() string username;Worker* worker=NULL;while(1)cout<<&
52、;quot; 請輸入您要修改的工作人員的用戶名: " cin>>username;cout<<endl;worker=DB.worker_by_username(username);if(worker=NULL)cout<<" 該工作人員的用戶名不存在.請重新輸入."<<endl;cout<<endl;elsecout<<" 請輸入新工作人員的用戶名: &a
53、mp;quot;cin>>username;Worker* worker1=DB.worker_by_username(username); if(worker1=NULL)worker->Username=username;break;elsecout<<endl;cout<<" 該工作人員的用戶名已存在.請重新輸入."<<endl<<endl;cout<<endl;cout&
54、amp;lt;<" 請輸入新密碼: "cin>>worker->Password;cout<<endl;cout<<" 請輸入新姓名: "cin>>worker->Name;cout<<endl;cout<<" 請輸入性別: "cin>>worker-&
55、amp;gt;Sex;cout<<endl;cout<<" 請輸入年齡: "cin>>worker->Age;cout<<endl;cout<<" 修改成功."<<endl;void Manager:Remove_Worker()string username; cout<<" 請輸入需刪除的工作人
56、員的用戶名: " cin>>username;cout<<endl;Worker* worker=DB.worker_by_username(username);if(worker)cout<<" 成功的刪除該工作人員."<<endl; DB.Remove_Worker(username);elsecout<<" 不存在該工作人員或工作人員用戶名不存在."&l
57、t;<endl;4.查看圖書信息:根據(jù)類的繼承機制,同工作人員4.設計概要本圖書館管理系統(tǒng)通過使用鏈表來存放書本與人員, 考慮到安全性, 效率性并沒有自己寫鏈表, 而是使用STL的list, 并作為DBFile的私有成員。DBFile的接口:class DBFilepublic:DBFile();/全部初始化void Initialize_Book();/ 圖書信息的初始化,即把文件中的數(shù)據(jù)存到list<Book*>books;void Initialize_Reader();/讀者的初始化void Initialize_Worker();/工作人員的
58、初始化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;/通過用戶名查找管理員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(R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北邢臺地區(qū)2023-2024學年上學期期末考試九年級理綜試卷-初中化學
- 領導家電行業(yè)的品牌發(fā)展計劃
- 2025年河南省八省聯(lián)考高考地理模擬試卷
- 2022年安徽省安慶市公開招聘警務輔助人員輔警筆試自考題2卷含答案
- 2024年河南省平頂山市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2023年湖南省岳陽市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2022年山西省朔州市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 英文商務邀請函范本
- 福建省寧德市(2024年-2025年小學六年級語文)部編版階段練習(上學期)試卷及答案
- 2024年免疫抗疲勞保健品項目項目投資申請報告代可行性研究報告
- 建筑施工易發(fā)事故防治安全標準JGJT 429-2018
- 《改造我們的學習》《人的正確思想從哪里來》聯(lián)讀-統(tǒng)編版高中語文選擇性必修中冊
- 3DSMAX教程(全套詳細教案)
- JJF 1102-2003內徑表校準規(guī)范
- GB/T 325.2-2010包裝容器鋼桶第2部分:最小總容量208L、210L和216.5L全開口鋼桶
- GB/T 17426-1998鐵道特種車輛和軌行機械動力學性能評定及試驗方法
- 第十一章 全球化與人類學.課件電子教案
- 鐵路基礎知識課件
- 解讀義務教育生物課程標準(2022年版)《2022生物新課標》PPT
- 保安上墻制度管理辦法
- 醫(yī)院危險化學品管理制度
評論
0/150
提交評論