數(shù)據(jù)結(jié)構(gòu)——圖書管理系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)——圖書管理系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)——圖書管理系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)——圖書管理系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)——圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、WOR格式石河子大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機科學(xué)與技術(shù)專業(yè)課程設(shè)計報告、結(jié)構(gòu)圖1.功能結(jié)構(gòu)圖圖書 管理新增圖書信息2.主流程圖查詢在架的圖恢復(fù)被刪除圖書信息為讀者辦理借專業(yè)資料整理辦理借書手續(xù)辦理還書手續(xù)退出系WOR格式三、程序設(shè)計的想法和具體思路圖書管理系統(tǒng)分為圖書管理和會員管理兩大部分。設(shè)計一個圖書類Book,包括一本圖書的基本管理功能,具有以下私有數(shù)據(jù):inttag;/ 刪除標記1:已刪0:未刪intno;/圖書編號廠 charname20; 書名intonshelf;/ / 是否再架1:再架2:已借廠/設(shè)計一個圖書庫類BDatabase,具有以下私有數(shù)據(jù):專業(yè)資料整理WOR格式專業(yè)資料

2、整理WOR格式inttop; /圖書記錄指針BookbookMaxb; 圖書記錄在其構(gòu)造函數(shù)中,將book.txt文件的所有錄入讀到book中。處理完畢,在析構(gòu)函數(shù)中將book中的所有未刪除記錄笑道book.txt文件中,中間的處理是對book進行的。設(shè)計一個讀者類 Reader,包括一個讀者的基本管理功能,具有以下私有數(shù)據(jù):inttag;/刪除標記1:已刪0:未刪intno; /讀者編號charname10;讀者姓名intborbookMaxbor;所借圖書設(shè)計一個讀者庫類RDatabase,具有以下私有數(shù)據(jù):inttop; /讀者記錄指針ReaderreadMaxr;讀者記錄在其構(gòu)造函數(shù)中

3、,將reader.txt文件的所有記錄讀到read中。處理完畢,在析構(gòu)函數(shù)中將read中的所有未刪除記錄寫到reader.txt文件中,中間的處理都是對reader進行的。四、參考文獻1) 譚浩強,C+程序設(shè)計,北京,清華大學(xué)出版社,2006年2) 李振鵬,張小莉,鄭艷娟,數(shù)據(jù)結(jié)構(gòu),中國鐵道出版社,2007年3) 楊小平,VisualC+項目案例導(dǎo)航,北京,科學(xué)出版社,2002年4)DavidConger,軟件開發(fā):編程與設(shè)計,北京,清華大學(xué)出版社,2006年.5)FrancisGlassborowRobertaAllen,YouCanDolt !C+編程新手互動教程,北京,人民郵電出版社,2

4、005 年五、課程設(shè)計總結(jié)心得體會選到這個課程設(shè)計題目的時候,感覺挺簡單的,查找,增加,顯示,統(tǒng)計,這些平時都學(xué)過,用過,但是實際操作中還是遇到了很多問題,所以特意到圖書館專門借了幾本關(guān)于數(shù)據(jù)結(jié)構(gòu)程序設(shè)計方面的書,同時也希望能把平時沒有學(xué)好的地方好好補一補,能對知識有更深層次的理解.一切準備就緒,把平時寫的相關(guān)的程序出來參考,對比,慢慢才找到一些感覺,把源程序?qū)懗鰜?經(jīng)過幾天終于寫完了程序的初稿,然后輸入電腦,一編譯,發(fā)現(xiàn)錯誤幾十個,還有好多警告,只得一條一條的看,一個一個的改首當其沖的是再輸入電腦過程中不小心漏掉的標點符號,有些括號亠專業(yè)資料整理WOR格式忘了,有些是忘了寫分號等粗心導(dǎo)致的小

5、毛病,這些錯誤很容易改正.到后面的錯誤就有些麻煩了,當中有個頭文件忘了寫,編譯過程中好幾十個錯誤就是改不過來后來和同學(xué)討論才知道原來錯在什么地方,這樣一下就變成了幾個錯誤,這時信心大增,有些錯誤都看不懂錯在那里,由于英文水平不太好,只好去查字典,還要推敲這個單詞在這里到底是哪個意思,再加上以往的經(jīng)驗和同學(xué)的幫助下,好不容易才得到零錯誤零警告,那時真開心,我的程序終于可以運行了 ,激動的按下運行,得到了預(yù)想的界面,按照提示操作 都很順利,一個一個的實驗每一個功能,都以為成功了 ,當運行到了刪除功能時,突然出現(xiàn)死循環(huán),只見操作界面不停的閃這是邏輯錯誤,很難找,后 來只有一步一步的,一句一句的檢查,

6、找到了錯誤的根源,并改正從進入大學(xué)來,我們學(xué)習了 C+,數(shù)據(jù)結(jié)構(gòu)。特別是高老師的認真授課,精心講解下,同學(xué)們學(xué)到了很多東西,知識方面的很多,還有平時?心的習慣也養(yǎng)成了 .這對我們以后的學(xué)習生活很有好處,最后感謝常老師一學(xué)期以來對我們的教育幫助,對我們程序設(shè)計時的輔導(dǎo)六、程序運行結(jié)果圖書管理系統(tǒng)1 IB書2 還書3 圖書維護4 謖著維護0離開專業(yè)資料整理WOR格式2書維護1:新増 于入圖書編:01團書書名hi 書維護1;新増 1入圖書編號:012:更改2;更改3:圖書維護讀看維護4:4;查扶查技忌示6:6;0:Or退出=退出=1;入新冊書各:Cyuyan 拎維護b新増N更改1Cyuyanq書維護

7、h新增a.更改刪 拄衆(zhòng) 刪陣113:查找忌示0:0:退出=查找昱示6:王刪Or4t5:顯示6:u:退出二1i yr亟F 電F屮i, i BaBI f-j/S 辱開JMESE】二畳=;亶L&更更改4:查找51昱示61附錄:源代碼#include#include3;4:5:6;0:退出=1更改借書編號畫 借書編號 借書編號岸 更改3=刪隆3:刪除4:查找査找專業(yè)資料整理5:顯示6:0:退岀二56:全刪退出=WOR格式#include輸入/輸出文件流類#include usingnamespacestd;constintMaxr=100; constintMaxb=100; constintMaxb

8、or=5;最多的讀者最多的圖書每位讀者最多借五本書刪除標記1:已刪0:未刪讀者編號讀者姓名所借圖書/讀者類,實現(xiàn)對讀者的信息的描述 classReaderprivate:inttag;/intno; /charname10;intborbookMaxbor; public:Reader()char*getname()returnname; intgettag()returntag; / intgetno()returnno;voidsetname(charna)/獲取姓名 獲取刪除標記 獲取讀者編號 設(shè)置姓名strcpy(name,na);voiddelbook()tag=1; voidadd

9、reader(intn,char*na)設(shè)置刪除標記增加讀者1:已刪0:未刪tag=0;no=n;strcpy(name,na);for(inti=0;iMaxbor;i+)borbooki=0;voidborrowbook(intbookid)/借書操作for(inti=0;iMaxbor;i+)if(borbooki=0)borbooki=bookid;return;專業(yè)資料整理WOR格式intretbook(intbookid)/還書操作5專業(yè)資料整理WOR格式for(inti=0;iMaxbor;i+)if(borbooki=bookid)borbooki=0;returnl;retu

10、rn。;voiddisp()/ /讀出讀者信息借書編號:;coutvsetw(5)vvnovvsetw(10)vvnamevvfor(inti=0;iMaxbor;i+)if(borbooki!=0)coutvvborbookivv|; coutvvvvendl;/讀者類庫,實現(xiàn)建立讀者的個人資料classRDatabaseprivate:inttop; /ReaderreadMaxr;public:RDatabase() /Readers;top=-1;讀者記錄指針讀者記錄構(gòu)造函數(shù),將reader.txt讀到read中個輸入文件fstreamfile(reader.txt,ios:in);打

11、開while(1) file.read(char* )&s,sizeof(s); if(!file)break;top+;readtop=s;file.close();/ 關(guān)閉 reader.txtvoidclear()刪除所有讀者信息專業(yè)資料整理WOR格式top=-1;專業(yè)資料整理WOR格式intaddreader(intn,char*na)添加讀者時先查找是否存在Reader*p=query(n); if(p=NULL)top+;readtop.addreader(n,na);returnl;return。;Reader*query(intreaderid)/for(i nti=0;i=t

12、op;i+)if(readi.getno()=readerid& readi.gettag()=O)retu rn&readi; returnNULL;voiddisp()輸出所有讀者信息for(i nti=0;i=top;i+)readi.disp();voidreaderdata();讀者庫維護RDatabase()析構(gòu)函數(shù),將 read 寫到reader.txt 文件中fstreamfile(reader.txt,ios:out);for(i nti=0;ichoice;switch(choice)case1:coutvv輸入讀者編號:;cinreaderid;coutvv輸入讀者姓名:

13、;cinrname;addreader(readerid,rname);break;case2:coutvv輸入讀者編號:;cinreaderid;r=query(readerid);if(r=NULL)coutvv該讀者不存在vvendl;break;coutvv輸入新的姓名:;cinrname;r-setname(rname);break;case3:coutvv輸入讀者編號:;cinreaderid;r=query(readerid);if(r=NULL)coutvv該讀者不存在 vvendl;break;r-delbook();break;case4:coutvv讀入讀者編號:;7廠c

14、inreaderid;宀r=query(readerid);宀-if(r=NULL)專業(yè)資料整理WOR格式coutvv 該讀者不存在 break;vvendl;專業(yè)資料整理WOR格式r-disp();break;case5:disp();break;case6:clear();break;default:cout輸入錯誤,請從新輸入:”;break;/圖書類,實現(xiàn)對圖書的描述,classBook圖書的編號,書名,借出,還入等private:inttag;/intno;/ charname20; intonshelf;/已刪0:未刪刪除標記1:圖書編號書名是否再架1:再架2:已借public:B

15、ook()char*getname()returnname; intgetno()returnno; intgettag()returntag;/ voidsetname(charna)獲取姓名獲取圖書編號 獲取刪除標記 設(shè)置書名strcpy(name,na);voiddelbook()tag=1;刪除圖書voidaddbook(intn,char*na)增加圖書tag=0;no=n;strcpy(name,na);onshelf=1;intborrowbook() 借書操作一、 :./ if(onshelf=1)啟 onshelf=0;.廣專業(yè)資料整理WOR格式returnl;專業(yè)資料整理W

16、OR格式return。;voidretbook()還書操作onshelf=1;voiddisp() 輸出圖書coutvsetw(6)vvnovvsetw(18)vvnamevvsetw(10) vv(onshelf=1? 在架:已借)vvendl;;/圖書庫類,實現(xiàn)對圖書的維護,查找,刪除等classBDatabaseprivate:inttop; /圖書記錄指針BookbookMaxb; 圖書記錄public:BDatabase()構(gòu)造函數(shù),將 book.txt 讀到 book中Bookb;top=-1;fstreamfile(book.txt,ios:in);while(1)file.re

17、ad(char*)&b,sizeof(b);if(!file)break;top+;booktop=b;file.close();voidclear()全刪top=-1;intaddbook(intn,char*na)增加圖書Book*p=query (n);廠if(NULL=p)丄廠專業(yè)資料整理WOR格式top+;booktop.addbook(n,na);10專業(yè)資料整理WOR格式returnl;return。;Book*query(intbookid)查找圖書for(i nti=0;i=top;i+)if(booki.getno()=bookid&booki.gettag()=0)ret

18、u rn&booki; returnNULL;voidbookdata();圖書庫維護voiddisp()for(i nti=0;i=top;i+)if(booki.gettag()=0)booki.disp();BDatabase() 析構(gòu)函數(shù),將 book寫到book.txt 文件中fstreamfile(book.txt,ios:out);for(i nti=0;i=top;i+)if(booki.gettag()=0)file.write(char*)&booki,sizeof(booki); file.close();voidBDatabase:bookdata()charchoic

19、e;charbname40;intbookid;Book*b;while(choice!=0)coutvv圖書維護:t1 .新增t2 .更改t3 .刪除t4 .查找t5 .顯示t6 .全刪t0 .退出choice; /* 屮 switch(choice)廠*,7 ,一/case1:專業(yè)資料整理WOR格式coutvv 輸入圖書編號 :vvendl;cinbookid;11專業(yè)資料整理WOR格式coutvv輸入圖書書名 :endl;cinbname;addbook(bookid,bname);break;case2:coutvv 輸入圖書編號 :vvendl;cinbookid;b=query(b

20、ookid);if(b=NULL)coutvv該圖書不存在vvendl;break;coutvv 輸入新的書名 :vvendl;cinbname;b-setname(bname);break;case3:coutvv 讀入圖書編號:vvendl;cinbookid;b=query(bookid);if(b=NULL)coutvv該圖書不存在 vvendl;break;b-delbook();break;case4:coutvv讀入圖書編號:vvendl;cinbookid;b=query(bookid);if(b=NULL)coutvv該圖書不存在vvendl;break;b-disp(); 廠_Zbreak; /宀case5:“丘 disp();break;一專業(yè)資料整理WOR格式case6:clear();12專業(yè)資料整理WOR格式break;default:coutvv輸入錯誤,請從新輸入:main()函數(shù)的實現(xiàn),程序的主界面的引導(dǎo)voidmain()charchoice;intbookid,readerid;RDatabaseReaderDB;Reader*r;BDatabaseBookDB;Book*b;while(choice!=0)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論