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

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)(C+語(yǔ)言)課程設(shè)計(jì) 設(shè)計(jì)說(shuō)明書圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)起止日期: 年 月 日 至 年 月 日學(xué)生姓名班級(jí)學(xué)號(hào)成績(jī)指導(dǎo)教師(簽字)計(jì)算機(jī)與通信學(xué)院年 月 日?qǐng)D書管理系統(tǒng)一.需求分析圖書館是目前生活中除了網(wǎng)絡(luò)外的另一個(gè)獲取知識(shí)的重要場(chǎng)所.利用圖書管理系統(tǒng)對(duì)圖書記錄進(jìn)行統(tǒng)一管理,包括新增圖書記錄,更改圖書記錄,刪除圖書記錄等功能,實(shí)現(xiàn)圖書管理工作的系統(tǒng)化,規(guī)范化和自動(dòng)化,為圖書管理提供便利.同時(shí)是學(xué)習(xí)完面向?qū)ο蟪绦蛟O(shè)計(jì)課程后進(jìn)行的一次全面的綜合練習(xí)。有助于加深對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)中基礎(chǔ)理論和基本知識(shí)的理解,培養(yǎng)了實(shí)踐能力,促進(jìn)理論與實(shí)踐的結(jié)合。二。設(shè)計(jì)要求:1.圖書信息包括:登錄號(hào)、

2、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等.試設(shè)計(jì)一圖書信息管理系統(tǒng),使之能提供以下功能:2。系統(tǒng)以菜單方式工作v3。圖書信息錄入功能(圖書信息用文件保存)輸入v4。圖書信息瀏覽功能輸出v5。查詢和排序功能:(至少一種查詢方式)算法v6.按書名查詢7。按作者名查詢8。圖書信息的刪除與修改(可選項(xiàng))v三.概要設(shè)計(jì)1、類的設(shè)計(jì)、Book類的設(shè)計(jì)(內(nèi)部函數(shù)流程圖):Class Book獲取圖書類型獲取書名獲取圖書編號(hào)獲取刪除標(biāo)志設(shè)置書名設(shè)置類型刪除圖書增加圖書輸出圖書、BDatabase類的設(shè)計(jì):Class BDatabase圖書記錄刪除全部記錄增加記錄查找圖書記錄圖書庫(kù)(函數(shù))、主函數(shù)流程圖

3、:4多態(tài)的實(shí)現(xiàn)class People public:virtual void card()cout<"card people"<endl;;class Student:public Peoplepublic:virtual void card()cout<"card student”<endl;;四、詳細(xì)設(shè)計(jì):define StrNum 20define Type 20include <iostream>include iomanipinclude string>include <fstream> /輸入/輸

4、出文件流類using namespace std;const int Maxb=100; /最多可存儲(chǔ)的圖書class People public:virtual void card()cout<"card people”endl;;class Student:public Peoplepublic:virtual void card()cout<"card student”endl;class Bookprivate: int lab; /刪除標(biāo)記int num; /圖書編號(hào)int add; /增加標(biāo)記char numberStrNum; /編號(hào)char bo

5、oknameStrNum; /書名char bookkindType; /圖書類型public:Book()char getkind() /獲取圖書類型return bookkindType; char getname() /獲取書名 return booknameStrNum; int getnum() /獲取圖書編號(hào) return num; int getlab() /獲取刪除標(biāo)記 return lab;void setname(char na) /設(shè)置書名strcpy(bookname,na);void setkind(char kin) /設(shè)置類型strcpy(bookkind,kin

6、);void delbook() /刪除圖書lab=1;void addbook(int n,char *na,char *kin) /增加圖書lab=0;num=n;strcpy(bookname,na);strcpy(bookkind,kin);void disp() /輸出圖書cout.flags (ios::left); /設(shè)置對(duì)齊的標(biāo)志位為左cout<setw(15)<num<<setw(20)<bookname<setw(15)bookkind<endl;class BDatabaseprivate: int top; Book bookM

7、axb; /圖書記錄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(); void clear() /全刪top=-1; int addbook(int n,char na,char kin) /增加圖書Book p=query(n);if(NULL=p)top+;booktop。addbook(n,na,

8、kin);return 1;return 0;Book *query(int bookid) /查找圖書for (int i=0;i=top;i+)if (booki.getnum()=bookid &booki。getlab()=0)return booki;return NULL;void disp() /圖書庫(kù) for (int i=0;i=top;i+) if (booki。getlab()=0) booki.disp();BDatabase() /析構(gòu)函數(shù),將book寫到book.txt文件中,實(shí)現(xiàn)文本的寫入fstream file(”book.txt",ios:o

9、ut); for (int i=0;i=top;i+)if (booki。getlab()=0)file。write(char *)booki,sizeof(booki);file.close();void main() BDatabase BookDB; char choice;char bname40;char bkind40;char newType20;int bookid;Book *b;while (choice!=0) cout<"t*n”;cout<" nn";cout<<"ttt圖 書 管 理 系 統(tǒng)nn&quo

10、t;cout”ttt1 新增圖書記錄n”; cout<"ttt2 更改圖書記錄n" cout<<"ttt3 刪除圖書記錄n";cout"ttt4 查找圖書記錄n"cout<”ttt5 顯示圖書記錄n”;cout"ttt6 清空全部記錄(慎用)n”;cout<”ttt0 退出系統(tǒng)n”;cout<”ttt7 人員n”;cout<<” nn";cout<<"t*n"; cout”請(qǐng)選擇(1,2,3,4,5,6,0):”;cin>choi

11、ce;switch (choice) case 1:cout<”輸入圖書編號(hào):”<<endl;cinbookid;cout<"輸入圖書類型:”endl;cin>>newType; cout<<"輸入圖書書名:"<endl;cinbname;BookDB。addbook(bookid,bname,newType);break; case 2:cout<"輸入圖書編號(hào):”endl;cin>bookid;b=BookDB.query(bookid);if(b=NULL)cout"該圖書

12、不存在”<endl; break;cout<”輸入新的書名:"<endl;cinbname;b-setname(bname);cout<”輸入新的類型:”<endl;cin>bkind;bsetkind(bkind); break; case 3: cout<<"讀入圖書編號(hào):"endl;cin>bookid;b=BookDB.query(bookid);if(b=NULL) cout<<”該圖書不存在"<endl; break;char tg1;cout<"確定要?jiǎng)h

13、除此記錄嗎?(Y/N)"<<endl;cin>tg1;if(tg1!='n'&tg1!='N)bdelbook();cout<<"已成功刪除該書記錄!”endl;break;case '4:cout<"讀入圖書編號(hào):"<endl;cin>bookid;b=BookDB.query(bookid);if (b=NULL)cout<"該圖書不存在”endl;break;cout<<"圖書編號(hào) 圖書名稱 圖書類型 n”;b->di

14、sp();break;case 5':cout<"圖書編號(hào) 圖書名稱 圖書類型 n”;b=BookDB。query(bookid); b->disp();break;case 6: char tg2;cout<”確定要清空所有記錄嗎?(Y/N)"<endl;cin>tg2;if(tg2!=n'&&tg2!='N')BookDB.clear(); cout<"已成功清空記錄!”<endl;break;case '0':break;default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入(數(shù)字為06):";case'7:Student student;People ppeople=student;People &ref=student;ppeople>card();ref.card();break; 五。用戶使用說(shuō)明本系統(tǒng)實(shí)現(xiàn)了圖書管理系統(tǒng)的典型功能,包括查詢所有記錄的信息,添加查找等功能,基本符合設(shè)計(jì)要求,利用類的封裝實(shí)現(xiàn)了一定的安全性,函數(shù)的實(shí)現(xiàn)與調(diào)用

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論