C課程設(shè)計(jì)圖書館管理系統(tǒng)_第1頁(yè)
C課程設(shè)計(jì)圖書館管理系統(tǒng)_第2頁(yè)
C課程設(shè)計(jì)圖書館管理系統(tǒng)_第3頁(yè)
C課程設(shè)計(jì)圖書館管理系統(tǒng)_第4頁(yè)
C課程設(shè)計(jì)圖書館管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 C+程序設(shè)計(jì)課程設(shè)計(jì)說明書題 目:圖書館管理系統(tǒng) 班 級(jí):09級(jí)電信2班 姓 名:姜有棟 學(xué) 號(hào):0967118237 指導(dǎo)教師:余金林 成 績(jī): 日 期:2011年6月內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱C+語言課程設(shè)計(jì)設(shè)計(jì)題目圖書館管理系統(tǒng)指導(dǎo)教師余金林時(shí)間一、教學(xué)要求1. 鞏固和加深學(xué)生對(duì)C+語言課程的基本知識(shí)的理解和掌握2. 掌握C+語言編程和程序調(diào)試的基本技能3. 利用C+語言進(jìn)行基本的軟件設(shè)計(jì)4. 掌握書寫程序設(shè)計(jì)說明文檔的能力5. 提高運(yùn)用C+語言解決實(shí)際問題的能力二、設(shè)計(jì)資料及參數(shù)每個(gè)學(xué)生在教師提供的課程設(shè)計(jì)題目中任意選擇一題,獨(dú)立完成,可根據(jù)設(shè)計(jì)內(nèi)容適當(dāng)修改題目名稱。圖書館

2、管理系統(tǒng)定義圖書基類和讀者類,并派生出各種所需類并在類中聲明各自的成員函數(shù);要求至少設(shè)計(jì)以下各功能模塊:v 輸入圖書和讀者記錄v 查詢圖書和讀者功能v 統(tǒng)計(jì)圖書和讀者v 顯示信息三、設(shè)計(jì)要求及成果1. 分析課程設(shè)計(jì)題目的要求2. 寫出詳細(xì)設(shè)計(jì)說明3. 編寫程序代碼,調(diào)試程序使其能正確運(yùn)行4. 設(shè)計(jì)完成的軟件要便于操作和使用4. 設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告四、進(jìn)度安排資料查閱與討論(1天)系統(tǒng)分析(2天)系統(tǒng)的開發(fā)與測(cè)試(5天)編寫課程設(shè)計(jì)說明書和驗(yàn)收(2天)五、評(píng)分標(biāo)準(zhǔn)1. 根據(jù)平時(shí)上機(jī)考勤、表現(xiàn)和進(jìn)度,教師將每天點(diǎn)名和檢查2. 根據(jù)課程設(shè)計(jì)完成情況,必須有可運(yùn)行的軟件。3. 根據(jù)課程設(shè)計(jì)報(bào)告

3、的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。六、建議參考資料1C+面向?qū)ο蟪绦蛟O(shè)計(jì),吳敏、楊國(guó)林 主編,內(nèi)蒙古大學(xué)出版社2C+語言程序設(shè)計(jì)(第三版),鄭莉,清華大學(xué)出版社目錄一、 問題描述 1二、 問題分析 1三、 數(shù)據(jù)模型 1 四、 設(shè)計(jì)流程圖 2五、 程序代碼 3六、程序運(yùn)行 8七、設(shè)計(jì)總結(jié) 81. 問題描述:圖書館管理系統(tǒng)定義圖書基類和讀者類,并派生出各種所需類并在類中聲明各自的成員函數(shù); 要求至少設(shè)計(jì)以下各功能模塊:v 輸入圖書和讀者記錄 v 查詢圖書和讀者功能 v 統(tǒng)計(jì)圖書和讀者數(shù)據(jù)v 顯示信息2. 問題分析:2.1闡述你對(duì)問題的理解、解決問題的方案說明。 在實(shí)際生活中,圖書館

4、工作人員都面臨著一個(gè)非常具體現(xiàn)實(shí)的問題,即圖書借閱的管理。當(dāng)圖書與讀者數(shù)量不大時(shí),工作人員可以根據(jù)相關(guān)紙質(zhì)紀(jì)錄進(jìn)行定期檢查與核對(duì)而清楚的掌握書籍與讀者信息,并對(duì)其行修改與維護(hù),但是現(xiàn)實(shí)生活中工作人員管理的數(shù)據(jù)數(shù)量龐大,不可能人工完成相關(guān)管理。為了迎合自動(dòng)化辦公的要求,現(xiàn)要求設(shè)計(jì)一個(gè)圖書借閱管理系統(tǒng)完成對(duì)于讀者、圖書相關(guān)信息的記錄操作及添加、修改、更新等維護(hù)操作。2.2系統(tǒng)功能模塊的劃分 3數(shù)據(jù)模型:3.1相關(guān)數(shù)據(jù)結(jié)構(gòu)的說明3.2類的設(shè)計(jì) 3.3全局變量,重要形式參數(shù)、局部變量等等,它們的命名及用途解釋4. 程序流程圖 5. 程序代碼#include <iostream>#inclu

5、de <iomanip>#include <fstream>#include <string>#include <stack>#include <queue>#include <list>#include <vector>using namespace std;const int MAX=10;const int MAXB=5;/圖書類,實(shí)現(xiàn)對(duì)圖書的描述,圖書的編號(hào),書名,借出,還入等 class Bookprivate:string bname;/書名string bnumber;/書號(hào)string bsty

6、pe;/藏書類型int tag;/1刪除,0表示未刪除int on;/0表示在書架,1表示已借出public:Book()tag=0;on=0;Book(const string &name,const string &number,const string &stype,int t,int o);Book();void Setbname(const string &name);/設(shè)置書名string Getbname();/返回書名 void Setbnumber(const string &number);/設(shè)置書號(hào)string Getbnumber

7、();/返回書號(hào)void Setbstype(const string &stype);/上架類型string Getstype();/返回上架類型void Settag(int i);int Gettag();/獲取刪除標(biāo)記void Seton(int i);int Geton();/獲取上架標(biāo)記void Dele();/刪除圖書void Add(const string name,const string num,const string stype);/增加圖書int Bbook();/借書void Rbook();/還書void Display();/顯示圖書信息;Book:B

8、ook(const string &name,const string &number,const string &stype,int t,int o) bname=name; bnumber=number; bstype=stype; tag=t; on=o;void Book:Setbname(const string &name)bname=name;string Book:Getbname()return bname;void Book:Setbnumber(const string &number) bnumber=number;string

9、Book:Getbnumber()return bnumber;void Book:Setbstype(const string &stype)bstype=stype;string Book: Getstype()return bstype;void Book:Settag(int i)tag=i;int Book:Gettag()return tag;void Book: Seton(int i)on=i;int Book: Geton()return on;void Book:Dele()tag=1;void Book: Add(const string name,const s

10、tring num,const string stype)Setbname(name);Setbnumber(num);Setbstype(stype);Settag(0);Seton(0);int Book:Bbook()if(Geton()=1) Seton(1);return 1;else return 0;void Book: Rbook()Seton(0);void Book: Display()if(tag=0)cout<<setw(3)<<"書名"<<setw(3)<<"書號(hào)"<<

11、setw(3)<<"上架類型"<<setw(3)<<"是否借出"<<endl;cout<<setw(3)<<Getbname()<<setw(3)<<Getbnumber()<<setw(3)<< Getstype();if(on=1) cout<<"已借出"else cout<<"在書架"cout<<endl;/圖書類的操作class Controlbookp

12、ublic:int i;/下表指針Book bMAX;/為了方面靜態(tài)插入操作,定義內(nèi)嵌對(duì)象數(shù)組public: Controlbook(); Controlbook(int ii); Controlbook(); void Controlbook1() i=-1; int n; cout<<"初始化圖書館中藏書個(gè)數(shù):"<<endl; cin>>n; string sa;string sb;string sc; while(n-) cout<<"輸入書名" cin>>sa; cout<<

13、"輸入書號(hào)" cin>>sb; cout<<"輸入藏書類型" cin>>sc; Book b0(sa,sb,sc,0,0); i+; bi=b0;/調(diào)用系統(tǒng)默認(rèn)的拷貝構(gòu)造函數(shù) int Geti() return i; bool Search1(const string &name,const string &number) for(int n=0;n<=Geti();n+) if(!(pare(bn.Getbname()&&!(pare(bn.Getbnumber()&&a

14、mp;bn.Gettag()=0) cout<<"圖書已經(jīng)在書架,請(qǐng)編寫不同編號(hào)"<<endl;return 0; / this->i+; /bthis->i.Add(name,number,stype); return 1; bool Search(const string &name,const string &number); bool Search(const string &name,const string &number,int &ii); void Addbook(const str

15、ing &name,const string &number,const string stype); void Delbook(const string &name,const string &number,const string stype); void Cbookmap(); void Display();Controlbook:Controlbook() i=-1;Controlbook:Controlbook(int ii) string sa;string sb;string sc; while(ii-) cout<<"輸入書

16、名" cin>>sa; cout<<"輸入書號(hào)" cin>>sb; cout<<"輸入藏書類型" cin>>sc; Book b0(sa,sb,sc,0,0); i+; bi=b0;/調(diào)用系統(tǒng)默認(rèn)的拷貝構(gòu)造函數(shù) bool Controlbook: Search(const string &name,const string &number) for(int n=0;n<=Geti();n+) if(!(pare(bn.Getbname()&&!(p

17、are(bn.Getbnumber()&&bn.Gettag()=0) cout<<"查找所要圖書"<<endl; bn.Seton(1); bn.Display(); return 0; return 1; bool Controlbook: Search(const string &name,const string &number,int &ii) for(int n=0;n<=Geti();n+) if(!(pare(bn.Getbname()&&!(pare(bn.Getbnum

18、ber()&&bn.Gettag()=0) ii=n; cout<<"查找所要圖書"<<endl; bn.Settag(1); bn.Display(); return 0; return 1; void Controlbook:Addbook(const string &name,const string &number,const string stype)if(Search1(name,number)this->i+;bthis->i.Add(name,number,stype);/* for(int

19、 n=0;n<=Geti();n+) if(!(pare(bn.Getbname()&&!(pare(bn.Getbnumber()&&bn.Gettag()=0) cout<<"圖書已經(jīng)在書架,請(qǐng)編寫不同編號(hào)"<<endl;break; this->i+; bthis->i.Add(name,number,stype); */ void Controlbook: Delbook(const string &name,const string &number,const string

20、stype) int n=0; if(!Search(name,number,n)bn.Dele(); else cout<<"不存在該書籍"<<endl; void Controlbook:Display()for(int n=0;n<=i;n+)if(bn.Gettag()=0)bn.Display(); void Controlbook: Cbookmap() char choose; / int n; / cout<<"初始化圖書館中藏書個(gè)數(shù):"<<endl; / cin>>n;

21、string sna; string snu; string sst; cout<<"-圖書操作-"<<endl; cout<<setw(8)<<"1->增加圖書"<<endl; cout<<setw(8)<<"2->刪除圖書"<<endl; cout <<setw(8)<<"3->查找圖書"<<endl; cout<<setw(8)<<&qu

22、ot;4->輸出操作"<<endl; cout <<setw(8)<<"5-> 初始化圖書"<<endl; cout <<setw(8)<<"0->退出操作"<<endl; while(1) cout<<"輸入你選擇的功能<0-1-2-3-4-5>"<<endl; cin>>choose; getchar(); if(choose='0') break; swi

23、tch (choose) case '5':/cout<<"初始化圖書館中藏書個(gè)數(shù):"<<endl; Controlbook1(); break; case '4':cout<<"輸出現(xiàn)有書籍"<<endl; Display(); break; case '3':cout<<"輸入書名" cin>>sna; cout<<"輸入書號(hào)" cin>>snu; cout<&l

24、t;"輸入藏書類型" cin>>sst; if(Search(sna,snu) cout<<"未查找所需的圖書"<<endl; ; break; case '2':cout<<"輸入書名" cin>>sna; cout<<"輸入書號(hào)" cin>>snu; cout<<"輸入藏書類型" cin>>sst; Delbook(sna,snu,sst); break; case &

25、#39;1':cout<<"輸入書名" cin>>sna; cout<<"輸入書號(hào)" cin>>snu; cout<<"輸入藏書類型" cin>>sst; Addbook(sna,snu,sst); break; default :cout<<"輸入選擇項(xiàng)有誤"<<endl;break; ; class Readprivate:string name;/讀者姓名int number;/學(xué)號(hào)int count;/借

26、書個(gè)數(shù)int tag;/0讀者存在,1表示不存在public:/int count;/借書個(gè)數(shù)string booknameMAXB;/借閱圖書名集合(最多借五本書)Read();Read(const string n,int num,int c,int t);Read();void Setname(const string na);string Getname();void Setnumber(int num);int Getnumber();void Setcount(int n)count+=n;int Getcount();int Gettag()return tag;void Del

27、reader();void Addreader(const string n,int num,int c,int t);void Display();Read:Read()count=0;tag=1;Read:Read(const string n,int num,int c,int t)name=n;number=num;count=c;tag=t;void Read:Setname(const string na)name=na;string Read:Getname()return name; void Read:Setnumber(int num) number=num; int Re

28、ad:Getnumber() return number; int Read:Getcount()return count;void Read: Delreader()tag=1;void Read:Addreader(const string n,int num,int c,int t)Read( n,num,c, t);void Read:Display()int ii=Getcount();cout<<setw(3)<<"讀者姓名"<<name<<setw(3)<<"學(xué)號(hào)"<<

29、number<<setw(3)<<"借書統(tǒng)計(jì)"<<Getcount();if(ii=0)cout<<"沒有借閱圖書"elsewhile(ii-)cout<<booknameii<<" "class ControlRead:public Controlbookprivate: int i; Read rMAX;public:ControlRead()i=-1;ControlRead(int rn,int rb): Controlbook(rb)string n;in

30、t num;i=-1;while(rn-)cout<<"讀者姓名"<<endl;cin>>n;cout<<"讀者學(xué)號(hào)"<<endl;cin>>num;Read re(n,num,0,0);+i;ri=re; ;void Controlreadinial() int rn;string n;int num;cout<<"初始化讀者個(gè)數(shù)"<<endl;cin>>rn;i=-1;while(rn-)cout<<"

31、讀者姓名"<<endl;cin>>n;cout<<"讀者學(xué)號(hào)"<<endl;cin>>num;Read re(n,num,0,0);+i;ri=re;void Addread();/增加讀者bool Searchread(int num);/查找是否存在這個(gè)讀者void Readrbook();/讀者歸還書籍void Readbbook();/讀者借閱的書籍void Searchreadbook();/讀者借書信息void Controlreadmap();void ControlRead:Control

32、readmap() char choose; cout<<"-讀者與圖書操作-"<<endl; cout<<setw(8)<<"1->增加讀者"<<endl; cout<<setw(8)<<"2->讀者歸還書籍"<<endl; cout <<setw(8)<<"3->讀者借閱的書籍"<<endl; cout<<setw(8)<<"4-

33、>讀者借書信息"<<endl; cout<<setw(8)<<"5->初始化讀者信息"<<endl; cout <<setw(8)<<"0->退出操作"<<endl; while(1) cout<<"輸入你選擇的功能<0-1-2-3-4-5>"<<endl; cin>>choose; getchar(); if(choose='0') break; switch (choose) case '1':Addread();break; case '2': Readrbook();break; case '3':Readbbook();break; case '4':Searchreadbook();brea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論