




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C+程序設(shè)計(jì)課程設(shè)計(jì)設(shè)計(jì)說明書課程名稱: 程序設(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)題目: 圖書管理程序 指導(dǎo)教師: 班 級(jí): 學(xué) 號(hào): 學(xué)生姓名: 同組人員: 成 績: 評(píng) 語: 計(jì)算機(jī)科學(xué)與工程學(xué)院2014年06月 20 日目 錄第1章 概述21.1 選題21.2選題的背景和意義21.3團(tuán)隊(duì)分工和個(gè)人貢獻(xiàn)3第2章 系統(tǒng)分析(需求分析)32.1系統(tǒng)的整體需求32.2 系統(tǒng)的功能需求32.3系統(tǒng)主要模塊流程圖3第3章 系統(tǒng)設(shè)計(jì)53.1 系統(tǒng)的整體設(shè)計(jì)53.2 系統(tǒng)的主要模塊設(shè)計(jì)5第4章 系統(tǒng)實(shí)現(xiàn)6第5章 結(jié)束語12參考文獻(xiàn)12第1章 概述1.1 選題第十題:圖書管理程序圖書信息的組成部分為:書號(hào)、書名、作者名、出
2、版社、出版時(shí)間、價(jià)格等。要求用類和對(duì)象實(shí)現(xiàn):1) 新書上架:添加圖書信息2) 圖書瀏覽:輸出所有圖書信息3) 圖書查詢:可按書號(hào)、書名或作者名查詢(按書號(hào)查詢時(shí),因書號(hào)唯一,結(jié)果僅為一條記錄;按書名或作者名查詢時(shí),結(jié)果可能為多條記錄)4)圖書下架:刪除指定圖書信息,如按書號(hào)1.2選題的背景和意義選題背景:圖書館是我們?nèi)粘I钪斜夭豢缮俚膶W(xué)習(xí)、閱讀的場所,借閱圖書則是我們進(jìn)入圖書館進(jìn)行閱讀的首要行為。為了能夠借閱到我們想要借閱的圖書,我們需要借助電腦查詢需要借閱的圖書的具體信息,然后找出圖書后再去借閱處刷卡登記。如今我們處于一個(gè)知識(shí)大爆炸的時(shí)代,圖書種類數(shù)量劇增,工作人員每天不僅要登記借閱者借閱
3、的圖書,還要登記新購進(jìn)的圖書,工作量繁重。而隨著科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)日益進(jìn)入我們的生活工作之中,我們能否利用計(jì)算機(jī)技術(shù),取代原來的手工登記,提高圖書管理的效率呢?答案是肯定的。選題意義:借助計(jì)算機(jī)C+中的知識(shí),編寫相應(yīng)的圖書管理程序就可以實(shí)現(xiàn)這一功能。利用圖書管理程序記錄圖書信息,不僅能節(jié)省我們大量的工作時(shí)間,減輕巨大的工作量,提高工作效率,還能夠減少工作失誤。1.3團(tuán)隊(duì)分工和個(gè)人貢獻(xiàn)第一章 概述第四章 系統(tǒng)實(shí)現(xiàn)源代碼中:(1) 圖書瀏覽功能(2) 圖書刪除功能第2章 系統(tǒng)分析(需求分析)2.1系統(tǒng)的整體需求該系統(tǒng)需要完成的內(nèi)容:用類和對(duì)象實(shí)現(xiàn)新書上架、 圖書瀏覽、 圖書查詢、圖書下架。該系
4、統(tǒng)需要完成的整體目標(biāo):系統(tǒng)能夠正常運(yùn)行,基本上實(shí)現(xiàn)添加、刪除圖書信息,顯示所有信息,能夠由相應(yīng)條件查閱圖書信息這四種功能。2.2 系統(tǒng)的功能需求必須完成的模塊:(1)界面模塊:當(dāng)進(jìn)入該管理系統(tǒng)時(shí)候,提示相應(yīng)的說明,引導(dǎo)如何操作(2) 新書上架模塊:能夠添加書號(hào)、書名、作者名、出版社、出版時(shí)間、價(jià)格這些圖書信息。(3) 圖書瀏覽模塊:能夠輸出所有圖書信息。(4) 圖書查詢模塊:可按條件查詢圖書信息,當(dāng)輸入書號(hào)或書名或作者名時(shí)候,相對(duì)應(yīng)的圖書信息便可自動(dòng)搜索出來。(5) 圖書下架模塊:可按書號(hào)刪除指定圖書信息。創(chuàng)新模塊:2.3系統(tǒng)主要模塊流程圖顯示主界面yyy操作6退出系統(tǒng)顯示所有圖書信息1按書號(hào)
5、2按書名3按作者結(jié)束結(jié)束yyyynnn結(jié)束nn判斷進(jìn)行16中的哪項(xiàng)操作操作1操作2操作3輸入圖書信息按書號(hào)刪除圖書圖書信息圖書信息查詢操作4結(jié)束注:數(shù)字代表相應(yīng)操作下的子操作第3章 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)的整體設(shè)計(jì)圖書查詢調(diào)用所有信息調(diào)用書號(hào)調(diào)用書號(hào)、書名或作者保存圖書信息錄入錄入圖書信息到txt刪除信息顯示所有圖書信息顯示操作信息退出系統(tǒng)保存保存3.2 系統(tǒng)的主要模塊設(shè)計(jì)(1)登陸界面模塊。該模塊顯示管理程序的名稱,提示相應(yīng)的操作。(2)信息錄入模塊。登陸界面錄入ISBN、書名、書號(hào)、作者、出版社、出版時(shí)間、價(jià)格保存到txt文件中(2)圖書瀏覽模塊調(diào)用txt文件中所有圖書信息輸入瀏覽所有圖書信
6、息指令顯示所有圖書信息(3)圖書查詢模塊登陸界面輸入相應(yīng)查詢指令圖書查詢界面調(diào)用圖書信息文件顯示圖書信息(4)圖書下架模塊登陸界面輸入刪除指令根據(jù)刪除提示輸入要?jiǎng)h除的圖書號(hào)提示刪除內(nèi)容,并刪除第4章 系統(tǒng)實(shí)現(xiàn)1登入界面實(shí)現(xiàn)方式:調(diào)用主函數(shù),利用Book.read ()讀入數(shù)據(jù),同時(shí)定義功能選項(xiàng)按鈕char function='0',對(duì)function的真假進(jìn)行判斷,若function為真,即與初值相同,實(shí)現(xiàn)while循環(huán)內(nèi)語句。界面主要程序語句:cout<<endl;cout<<"t*n"cout<<"tttt歡
7、迎使用圖書管理系統(tǒng)"<<endl;cout<<"ttttt請(qǐng)選擇操作n"<<endl;cout<<"tttt1 創(chuàng)建新書信息"<<endl;cout<<"tttt2 顯示所有圖書"<<endl;cout<<"tttt3 按指定條件查詢書目"<<endl;cout<<"tttt4 按書號(hào)刪除書目"<<endl; cout<<"tttt5
8、 退出系統(tǒng)并保存修改"<<endl; cout<<"ttt(查詢可按書號(hào)/ 作者/ 書名查詢)"<<endl; cout<<"t*n"調(diào)試運(yùn)行代碼后結(jié)果如下:2、創(chuàng)建圖書信息當(dāng)選擇按鈕1,執(zhí)行main函數(shù)中function='1'的條件語句,首先定義字符串string a,b,c,d,e,f; 然后調(diào)用#include<iostream>,根據(jù)提示輸入相應(yīng)的書本信心,建立對(duì)象book newbook(a,b,c,d,e,f);,利用添加函數(shù)Book.add(newboo
9、k)把數(shù)據(jù)添加到新建對(duì)象里,然后調(diào)用display()函數(shù)顯示此次輸入的信息。 輸入數(shù)字1后按提示輸入相應(yīng)信息,結(jié)果如下:3、 顯示所有圖書信息當(dāng)選擇按鈕2,執(zhí)行function='2'的條件語句。Main函數(shù)調(diào)用#include<iostream>,利用如下語句: cout<<"這是所有藏書:"<<endl; cout<<"*"<<endl;輸出相應(yīng)的提示信息和圖案,然后調(diào)用函數(shù)display_all (),顯示出所有信息。 4、 按條件查詢 當(dāng)選擇按鈕3,執(zhí)行function
10、='3'的條件語句。main函數(shù)調(diào)用#include<iostream>,輸出相應(yīng)選擇的提示,執(zhí)行如下代碼: cout<<"請(qǐng)選擇查詢方式"<<endl; cout<<"1 按ISBN查詢"<<endl; cout<<"2 按書名查詢"<<endl; cout<<"3 按作者查詢"<<endl;然后定義字符j和字符串search,此時(shí)j是作為按鈕使用,search是為了輸入你要查詢的內(nèi)容。子按
11、鈕功能的實(shí)現(xiàn)再次調(diào)用#include<iostream>文件,當(dāng)輸入好相應(yīng)的信息,執(zhí)行如下語句: cout<<"以下是查詢結(jié)果"<<endl; cout<<"*"<<endl;給出提示后執(zhí)行搜索函數(shù)search_by_isbn(),同理利用search_by_name()、search_by_writer()實(shí)現(xiàn)書名查找,按作者查找的功能。(1)按書號(hào)查詢查詢書號(hào)為001的圖書步驟一:在主界面選擇3步驟二:回車后點(diǎn)擊“1”,然后輸入001,回車。(2)按書名查詢查詢書名為“考研英語”這本書步驟一
12、:在主界面選擇3步驟二:回車后點(diǎn)擊“2”,然后輸入“考研英語”,回車(3)按作者名查詢步驟一:在主界面選擇3步驟二:回車后點(diǎn)擊“3”,然后輸入“宮東風(fēng)”,回車5、 按書號(hào)刪除圖書信息 當(dāng)選擇按鈕4,執(zhí)行function='4'的條件語句。首先定義字符串a(chǎn),然后main函數(shù)調(diào)用#include<iostream>,輸入相應(yīng)的書號(hào),接下來建立對(duì)象del(a," "," "," "," "," "),調(diào)用刪除函數(shù)delete_by_isbn(),實(shí)現(xiàn)刪除功能。例如刪除001
13、號(hào)圖書步驟一:在登陸界面輸入“4”,回車;步驟二:按提示輸入要?jiǎng)h除的書號(hào)“001”,回車。6、 退出圖書管理系統(tǒng) 當(dāng)選擇按鈕5,執(zhí)行function='5'的條件語句。此時(shí)執(zhí)行空操作,跳出while循環(huán),執(zhí)行main函數(shù)后續(xù)語句,利用system("CLS");清屏后由寫函數(shù)Book.write ();把操作后的數(shù)據(jù)讀入到文件中,最后調(diào)用頭文件#include<iostream>輸出相應(yīng)的提示信息后退出系統(tǒng)。 在登錄界面輸入“5”,回車。第5章 結(jié)束語這次課程設(shè)計(jì)歷時(shí)數(shù)個(gè)星期,通過課程設(shè)計(jì),我發(fā)現(xiàn)了自己的很多不足,知識(shí)上還存在很多漏洞,我看到了自
14、己的實(shí)踐經(jīng)驗(yàn)還比較缺乏,理論聯(lián)系實(shí)際的能力還急需提高。為完成這次課程設(shè)計(jì)我確實(shí)付出很多,有苦有樂,這十幾天的工作日子,怎么形容呢,每次在實(shí)驗(yàn)室回來就會(huì)心情不好,感覺自己什么都沒有做成,慢慢的摸索著,開始入門,而且有了一點(diǎn)成就感,就這樣每一次都比前一次收獲多,心情也慢慢好了,而且我的系統(tǒng)也一天比一天的完善。畢竟沒有白費(fèi)心血,以艱辛的付出最終還是獲得不少回報(bào)!總之,計(jì)算機(jī)是一門實(shí)踐性很強(qiáng)的學(xué)科,要想學(xué)好,就必須多練習(xí),多總結(jié),只有這樣,才能夠更加深入地了解,才能夠?qū)W會(huì)如何去運(yùn)用它。參考文獻(xiàn)1鄭莉,董淵,何江舟.C+程序設(shè)計(jì)M.清華大學(xué)出版社,2010.2譚浩強(qiáng).C程序設(shè)計(jì)M.清華大學(xué)出版社.200
15、73李強(qiáng),賈云霞.Visual C+項(xiàng)目開發(fā)實(shí)踐.北京:中國鐵道出版社,2004.4李書賢.C+Primer中文版M.人民郵電出版社附錄源代碼:#include<iostream>#include<cstdio>#include<stdlib.h> /cstdio是將stdio.h的內(nèi)容用C+頭文件的形式表示出來。using namespace std;#include<string>class book private:string isbn; /書號(hào) string name; /書名string writer; /作者string publi
16、sher; /出版社string time; /出版時(shí)間string price; /圖書價(jià)格public:book()book(string a,string b,string c,string d,string e,string f) isbn=a;name= b;writer=c;publisher=d;time=e; price=f; string get_name()return name; string get_isbn()return isbn; string get_writer()return writer; void display() /圖書內(nèi)容的顯示 cout<&
17、lt;"書號(hào):"<<isbn<<endl<<"書名:"<<name<<endl<<"作者:"<<writer<<endl<<"出版社:"<<publisher<<endl<<"出版時(shí)間:"<<time<<endl<<"價(jià)格:"<<price<<"元"<
18、;<endl<<"*"<<endl; ; class database:public book /公有繼承(public)的定義class B:public A < 派生類新定義成員> ;private: book shumu100; int sum;public: database()sum=0; void add(book a) if(sum>=100) cout<<"添加失敗,內(nèi)存已滿!"<<endl; else shumusum=a; sum+; cout<<&q
19、uot;添加新書目成功,以下是本書信息"<<endl; cout<<"*"<<endl; void delete_by_isbn(book a) int flag=0; if(sum=0) cout<<"刪除失敗,已經(jīng)沒有存檔了!"<<endl; else for(int i=0;i<sum;i+) if(shumui.get_isbn()=a.get_isbn() cout<<"刪除書目成功,以下是刪除的書信息"<<endl; shu
20、mui.display (); for(int j=i;j<sum-1;j+) shumuj=shumuj+1; flag=1; sum-; break; if(!flag) cout<<"the book does't exist!"<<endl; void search_by_name(string names) /按書名查找 int flag=0; for(int i=0;i<sum;i+) if(shumui.get_name()=names) shumui.display (); flag=1; if(flag=0) c
21、out<<"the book does't exist!"<<endl; void search_by_isbn(string names) /按書號(hào)查找 int flag=0; for(int i=0;i<sum;i+) if(shumui.get_isbn()=names) shumui.display (); flag=1; if(flag=0) cout<<"the book does't exist!"<<endl; void search_by_writer(string
22、names) /按作者查找 int flag=0; for(int i=0;i<sum;i+) if(shumui.get_writer()=names) shumui.display (); flag=1; if(flag=0) cout<<"the book does't exist!"<<endl; void display_all() /顯示全部信息 for(int i=0;i<sum;i+) shumui.display (); void read() FILE *fp; if(fp=fopen("C:User
23、sfeiDesktop圖書館.txt","rb+")=NULL)/注意路徑; rb+讀寫打開一個(gè)二進(jìn)制文件,只允許讀寫數(shù)據(jù)。 cout<<"文件打開失敗n" system("PAUSE"); exit(0); fread(&sum,2,1,fp); /從一個(gè)文件中讀數(shù)據(jù)&sum:用于接收數(shù)據(jù)的地址(指針);4:單個(gè)元素的大小,單位是字節(jié);1:.元素個(gè)數(shù),每次讀取個(gè)元素;fp:提供數(shù)據(jù)的文件指針for(int i=0;i<sum;i+) fread(&shumui,sizeof(shu
24、mui),1,fp);fclose(fp); void write() FILE *fp2; if(fp2=fopen("C:UsersfeiDesktop圖書館.txt","wb+")=NULL)/注意路徑;wb+只寫打開或新建一個(gè)二進(jìn)制文件;只允許寫數(shù)據(jù)。 cout<<"文件打開失敗n" system("PAUSE"); exit(0);/exit(0)表示正常退出 fwrite(&sum,2,1,fp2); for(int i=0;i<sum;i+)fwrite(&shumu
25、i,sizeof(shumui),1,fp2);/sizeof計(jì)算數(shù)據(jù)(包括數(shù)組、變量、類型、結(jié)構(gòu)體等)所占內(nèi)存空間,用字節(jié)數(shù)表示。 fputc('EOF',fp2);/將字符ch寫到文件指針fp所指向的文件的當(dāng)前寫指針的位置;EOF是End Of File 的縮寫,表示“文件結(jié)束”。 fclose(fp2); ; /主函數(shù)int main() database Book;char function='0'Book.read (); /界面while (function!= '5')cout<<endl;cout<<&qu
26、ot;t*n"cout<<"tttt歡迎使用圖書管理系統(tǒng)"<<endl;cout<<"ttttt請(qǐng)選擇操作n"<<endl;cout<<"tttt1 創(chuàng)建新書信息"<<endl;cout<<"tttt2 顯示所有圖書"<<endl;cout<<"tttt3 按指定條件查詢書目"<<endl;cout<<"tttt4 按書號(hào)刪除書目"&l
27、t;<endl; cout<<"tttt5 退出系統(tǒng)并保存修改"<<endl; cout<<"ttt(查詢可按書號(hào)/ 作者/ 書名查詢)"<<endl; cout<<"t*n"cin>>function;/圖書書號(hào)、書名、作者、出版社、出版時(shí)間、價(jià)格信息的錄入換碼符't',表示水平制表位(horizeontal tab),它的作用是將光標(biāo)移到最接近8的倍數(shù)的位置,使得后面的輸入從此開始。換句話說,讓所有的數(shù)據(jù)都緊跟在制表符后面輸出。/換碼符&
28、#39;t',表示水平制表位,它的作用是將光標(biāo)移到最接近8的倍數(shù)的位置,使得后面的輸入從此開始。換句話說,讓所有的數(shù)據(jù)都緊跟在制表符后面輸出。if(function='1') string a,b,c,d,e,f; /定義字符串cout<<"請(qǐng)輸入書的isbn編號(hào)"<<endl;cin>>a;cout<<"請(qǐng)輸入書名"<<endl;cin>>b;cout<<"請(qǐng)輸入書作者名"<<endl;cin>>c;c
29、out<<"請(qǐng)輸入書的出版社"<<endl;cin>>d;cout<<"請(qǐng)輸入書的出版時(shí)間"<<endl;cin>>e;cout<<"請(qǐng)輸入書的價(jià)格"<<endl;cin>>f;book newbook(a,b,c,d,e,f);Book.add(newbook); newbook.display();system("PAUSE");system("CLS"); /顯示所有圖書信息else
30、 if(function='2')cout<<"這是所有藏書:"<<endl; cout<<"*"<<endl;Book.display_all (); system("PAUSE");system("CLS"); /按條件查詢圖書,輸入按書號(hào)查詢,輸入按書名查詢,輸入按作者查詢else if(function='3') cout<<"請(qǐng)選擇查詢方式"<<endl; cout<<&
31、quot;1 按ISBN查詢"<<endl; cout<<"2 按書名查詢"<<endl; cout<<"3 按作者查詢"<<endl; char j; string search; cin>>j; if(j='1') cout<<"請(qǐng)輸入ISBN號(hào)"<<endl; /按書號(hào)查詢 cin>>search; cout<<"以下是查詢結(jié)果"<<endl; cout
32、<<"*"<<endl; Book.search_by_isbn (search); /按書號(hào)查詢圖書信息函數(shù)的調(diào)用 system("PAUSE"); system("CLS"); else if(j='2') cout<<"請(qǐng)輸入書名"<<endl; /按書名查詢 cin>>search; cout<<"以下是查詢結(jié)果"<<endl; cout<<"*"<<endl; Book.search_by_name (search); /按書名查詢圖書信息函數(shù)的調(diào)用 system("PAUSE"); system("CLS"); else if(j='3') /按作者查詢 cout<<"請(qǐng)輸入作者名"<<endl; cin>>search;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 童年測試題及答案
- 2025年書法教學(xué)指導(dǎo)協(xié)議
- 2025年舞蹈培訓(xùn)機(jī)構(gòu)合作伙伴協(xié)議書
- 2025年企業(yè)策劃經(jīng)營權(quán)與所有權(quán)協(xié)議書樣本
- 2025年天貓商家轉(zhuǎn)會(huì)協(xié)議書范文
- 2025年規(guī)范離婚子女撫養(yǎng)費(fèi)用協(xié)議指南
- 2025年策劃共同設(shè)立教育培訓(xùn)機(jī)構(gòu)合作框架協(xié)議
- 2025年標(biāo)準(zhǔn)住宅購買預(yù)約協(xié)議樣式
- 2025年星級(jí)酒店管理協(xié)議書范例
- 企業(yè)創(chuàng)新中的法律合規(guī)框架
- 駐足思考瞬間整理思路并有力表達(dá)完整版
- 傳熱學(xué)在日常生活中的應(yīng)用教學(xué)課件
- 藥物合成設(shè)計(jì)原理-課件
- 出境旅游會(huì)務(wù)合同范本
- 第二講 堅(jiān)持和發(fā)展中國特色社會(huì)主義的總?cè)蝿?wù)PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 危險(xiǎn)化學(xué)品品名及編號(hào)規(guī)則
- 重慶.住宅物業(yè)單位服務(wù)等級(jí)標(biāo)準(zhǔn)
- 爆破工程安全前提驗(yàn)收記錄表張
- 淅川縣石槽溝-打磨溝釩礦礦產(chǎn)資源開采與生態(tài)修復(fù)方案
- 電磁場與電磁波電磁波的輻射
- 四羊方尊專題知識(shí)
評(píng)論
0/150
提交評(píng)論