版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《C++程序設(shè)計》課程設(shè)計設(shè)計說明書課程名稱:《C++程序設(shè)計》課程設(shè)計設(shè)計題目:圖書管理程序指導(dǎo)教師:班級:學(xué)號:學(xué)生姓名:同組人員:成績:成績:評語:計算機(jī)科學(xué)與工程學(xué)院2014年06月20日《圖書管理程序》課程設(shè)計實驗報告 -PAGE1-目錄TOC\o"1-3”\h\z\uHYPERLINK\l”_Toc375575807"第1章概述 21.2選題的背景和意義 2HYPERLINK\l”_Toc375575810"1.3團(tuán)隊分工和個人貢獻(xiàn) 3HYPERLINK\l”_Toc375575811"第2章系統(tǒng)分析(需求分析) 3HYPERLINK\l”_Toc375575812"2.1系統(tǒng)的整體需求 3HYPERLINK\l”_Toc375575813"2.2系統(tǒng)的功能需求 3HYPERLINK\l”_Toc375575814"2.3系統(tǒng)主要模塊流程圖 3HYPERLINK\l”_Toc375575815”第3章系統(tǒng)設(shè)計 5HYPERLINK\l”_Toc375575816"3.1系統(tǒng)的整體設(shè)計 5HYPERLINK\l”_Toc375575817"3.2系統(tǒng)的主要模塊設(shè)計 5第5章結(jié)束語 12; cout〈〈”\t\t\t\t歡迎使用圖書管理系統(tǒng)”〈<endl; cout〈<”\t\t\t\t\t請選擇操作\n”〈<endl; cout〈〈”\t\t\t\t1創(chuàng)建新書信息”<<endl; cout〈<"\t\t\t\t2顯示所有圖書"〈<endl; cout<〈"\t\t\t\t3按指定條件查詢書目"〈<endl; cout〈<"\t\t\t\t4按書號刪除書目”〈〈endl;cout<<"\t\t\t\t5退出系統(tǒng)并保存修改"<<endl;cout〈<”\t\t\t(查詢可按書號/作者/書名查詢)”〈〈endl;cout<<"\t******************************************************************\n”;調(diào)試運行代碼后結(jié)果如下:2、創(chuàng)建圖書信息當(dāng)選擇按鈕1,執(zhí)行main函數(shù)中function=='1'的條件語句,首先定義字符串stringa,b,c,d,e,f;然后調(diào)用#include<iostream〉,根據(jù)提示輸入相應(yīng)的書本信心,建立對象booknewbook(a,b,c,d,e,f);,利用添加函數(shù)Book。add(newbook)把數(shù)據(jù)添加到新建對象里,然后調(diào)用display()函數(shù)顯示此次輸入的信息。輸入數(shù)字1后按提示輸入相應(yīng)信息,結(jié)果如下:顯示所有圖書信息當(dāng)選擇按鈕2,執(zhí)行function==’2’的條件語句。Main函數(shù)調(diào)用#include<iostream>,利用如下語句:cout<<"這是所有藏書:"<<endl; cout〈〈"*********************************"<〈endl;輸出相應(yīng)的提示信息和圖案,然后調(diào)用函數(shù)display_all(),顯示出所有信息。按條件查詢當(dāng)選擇按鈕3,執(zhí)行function=='3’的條件語句。main函數(shù)調(diào)用#include<iostream〉,輸出相應(yīng)選擇的提示,執(zhí)行如下代碼:cout〈〈"請選擇查詢方式”〈〈endl; cout<〈”1按ISBN查詢”〈<endl; cout〈〈"2按書名查詢”〈<endl; cout<<”3按作者查詢”〈<endl;然后定義字符j和字符串search,此時j是作為按鈕使用,search是為了輸入你要查詢的內(nèi)容。子按鈕功能的實現(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()實現(xiàn)書名查找,按作者查找的功能。(1)按書號查詢查詢書號為001的圖書步驟一:在主界面選擇3步驟二:回車后點擊“1”,然后輸入001,回車。(2)按書名查詢查詢書名為“考研英語”這本書步驟一:在主界面選擇3步驟二:回車后點擊“2”,然后輸入“考研英語”,回車(3)按作者名查詢步驟一:在主界面選擇3步驟二:回車后點擊“3”,然后輸入“宮東風(fēng)”,回車按書號刪除圖書信息 當(dāng)選擇按鈕4,執(zhí)行function=='4'的條件語句。首先定義字符串a(chǎn),然后main函數(shù)調(diào)用#include〈iostream〉,輸入相應(yīng)的書號,接下來建立對象del(a,””,"","","”,"”),調(diào)用刪除函數(shù)delete_by_isbn(),實現(xiàn)刪除功能.例如刪除001號圖書步驟一:在登陸界面輸入“4",回車;步驟二:按提示輸入要刪除的書號“001”,回車。退出圖書管理系統(tǒng)當(dāng)選擇按鈕5,執(zhí)行function=='5'的條件語句。此時執(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è)計歷時數(shù)個星期,通過課程設(shè)計,我發(fā)現(xiàn)了自己的很多不足,知識上還存在很多漏洞,我看到了自己的實踐經(jīng)驗還比較缺乏,理論聯(lián)系實際的能力還急需提高。為完成這次課程設(shè)計我確實付出很多,有苦有樂,這十幾天的工作日子,怎么形容呢,每次在實驗室回來就會心情不好,感覺自己什么都沒有做成,慢慢的摸索著,開始入門,而且有了一點成就感,就這樣每一次都比前一次收獲多,心情也慢慢好了,而且我的系統(tǒng)也一天比一天的完善。畢竟沒有白費心血,以艱辛的付出最終還是獲得不少回報!總之,計算機(jī)是一門實踐性很強(qiáng)的學(xué)科,要想學(xué)好,就必須多練習(xí),多總結(jié),只有這樣,才能夠更加深入地了解,才能夠?qū)W會如何去運用它。參考文獻(xiàn)[1]鄭莉,董淵,何江舟。C++程序設(shè)計[M].清華大學(xué)出版社,2010.[2]譚浩強(qiáng).C程序設(shè)計[M]。清華大學(xué)出版社.2007[3]李強(qiáng),賈云霞。VisualC++項目開發(fā)實踐。北京:中國鐵道出版社,2004.[4]李書賢?!禖++Primer中文版》[M]。人民郵電出版社附錄源代碼:#include<iostream>#include〈cstdio>#include〈stdlib。h>//cstdio是將stdio。h的內(nèi)容用C++頭文件的形式表示出來。usingnamespacestd;#include<string>classbook{private: stringisbn;//書號stringname;//書名 stringwriter;//作者 stringpublisher;//出版社 stringtime;//出版時間 stringprice;//圖書價格public: book(){} book(stringa,stringb,stringc,stringd,stringe,stringf) {isbn=a; name=b; writer=c; publisher=d; time=e;price=f; }stringget_name() {returnname;} stringget_isbn() {returnisbn;}stringget_writer() {returnwriter;}voiddisplay()//圖書內(nèi)容的顯示 {cout<<”書號:"〈〈isbn<〈endl〈〈"書名:”<<name〈〈endl<<”作者:”<<writer<<endl<<”出版社:"〈<publisher〈<endl<<”出版時間:”〈<time<<endl〈〈”價格:"<〈price<〈"元"<<endl<<"*********************************”〈<endl; }};classdatabase:publicbook//公有繼承(public)的定義classB:publicA{<派生類新定義成員>};{private:bookshumu[100];intsum;public: database(){sum=0;} voidadd(booka) { if(sum>=100) {cout〈<"添加失敗,內(nèi)存已滿!”<<endl; } else {shumu[sum]=a; sum++; cout<<”添加新書目成功,以下是本書信息"<〈endl;cout<〈”*********************************”<<endl; }} voiddelete_by_isbn(booka) {intflag=0; if(sum==0) {cout〈〈”刪除失敗,已經(jīng)沒有存檔了!”<<endl; }else { for(inti=0;i<sum;i++) {if(shumu[i].get_isbn()==a.get_isbn()) {cout<〈”刪除書目成功,以下是刪除的書信息”〈<endl; shumu[i]。display(); for(intj=i;j<sum-1;j++) {shumu[j]=shumu[j+1];} flag=1; sum——; break;} } if(!flag) {cout〈<”thebookdoes'texist!”〈〈endl; } } } voidsearch_by_name(stringnames)//按書名查找 {intflag=0; for(inti=0;i〈sum;i++) {if(shumu[i]。get_name()==names) {shumu[i]。display(); flag=1;} } if(flag==0) {cout〈<”thebookdoes'texist!”〈〈endl; } }voidsearch_by_isbn(stringnames)//按書號查找 {intflag=0; for(inti=0;i<sum;i++) {if(shumu[i].get_isbn()==names) {shumu[i].display(); flag=1;} } if(flag==0) {cout〈<"thebookdoes’texist!"〈〈endl; } } voidsearch_by_writer(stringnames)//按作者查找 {intflag=0; for(inti=0;i〈sum;i++) {if(shumu[i]。get_writer()==names) {shumu[i].display(); flag=1;} } if(flag==0) {cout〈〈"thebookdoes’texist!"〈〈endl; } }voiddisplay_all()//顯示全部信息 { for(inti=0;i<sum;i++) {shumu[i].display();}} voidread() {FILE*fp;if((fp=fopen(”C:\\Users\\fei\\Desktop\\圖書館.txt","rb+"))==NULL)//注意路徑;rb+讀寫打開一個二進(jìn)制文件,只允許讀寫數(shù)據(jù)。{cout<<"文件打開失敗\n”; system("PAUSE");exit(0);} fread(&sum,2,1,fp);//從一個文件中讀數(shù)據(jù)&sum:用于接收數(shù)據(jù)的地址(指針);4:單個元素的大小,單位是字節(jié);1:.元素個數(shù),每次讀取個元素;fp:提供數(shù)據(jù)的文件指針 for(inti=0;i〈sum;i++) { fread(&shumu[i],sizeof(shumu[i]),1,fp);} fclose(fp);} voidwrite() { FILE*fp2;if((fp2=fopen(”C:\\Users\\fei\\Desktop\\圖書館.txt","wb+”))==NULL)//注意路徑;wb+只寫打開或新建一個二進(jìn)制文件;只允許寫數(shù)據(jù)。{cout<〈"文件打開失敗\n"; system("PAUSE”);exit(0);//exit(0)表示正常退出} fwrite(&sum,2,1,fp2); for(inti=0;i<sum;i++) { fwrite(&shumu[i],sizeof(shumu[i]),1,fp2);}//sizeof計算數(shù)據(jù)(包括數(shù)組、變量、類型、結(jié)構(gòu)體等)所占內(nèi)存空間,用字節(jié)數(shù)表示。 fputc(’EOF’,fp2);//將字符ch寫到文件指針fp所指向的文件的當(dāng)前寫指針的位置;EOF是EndOfFile的縮寫,表示“文件結(jié)束"。 fclose(fp2); }};//主函數(shù)intmain(){databaseBook; charfunction='0’; Book。read(); //界面 while(function!=’5') { cout〈<endl; cout<<"\t******************************************************************\n”; cout<〈"\t\t\t\t歡迎使用圖書管理系統(tǒng)"<〈endl; cout<〈”\t\t\t\t\t請選擇操作\n”<〈endl; cout〈〈”\t\t\t\t1創(chuàng)建新書信息"〈〈endl; cout<<”\t\t\t\t2顯示所有圖書”〈〈endl; cout〈<”\t\t\t\t3按指定條件查詢書目"〈<endl; cout〈<”\t\t\t\t4按書號刪除書目”<<endl;cout〈<"\t\t\t\t5退出系統(tǒng)并保存修改”〈<endl;cout<<"\t\t\t(查詢可按書號/作者/書名查詢)”〈<endl;cout〈<"\t******************************************************************\n"; cin〉>function;//圖書書號、書名、作者、出版社、出版時間、價格信息的錄入換碼符'\t',表示水平制表位(horizeontaltab),它的作用是將光標(biāo)移到最接近8的倍數(shù)的位置,使得后面的輸入從此開始。換句話說,讓所有的數(shù)據(jù)都緊跟在HYPERLINK”http:///view/1138182。htm”制表符后面輸出。//換碼符'\t’,表示水平制表位,它的作用是將光標(biāo)移到最接近8的倍數(shù)的位置,使得后面的輸入從此開始。換句話說,讓所有的數(shù)據(jù)都緊跟在制表符后面輸出。 if(function==’1’) {stringa,b,c,d,e,f;//定義字符串 cout<〈”請輸入書的isbn編號”〈〈endl; cin〉>a; cout<〈"請輸入書名”<〈endl; cin>〉b; cout〈<”請輸入書作者名”〈〈endl; cin>〉c; cout〈〈"請輸入書的出版社"〈〈endl; cin〉〉d; cout<<"請輸入書的出版時間"<〈endl; cin〉〉e; cout〈<”請輸入書的價格"<<endl; cin〉>f; booknewbook(a,b,c,d,e,f); Book.add(newbook); newbook。display(); system("PAUSE"); system(”CLS”); }//顯示所有圖書信息 elseif(function=='2') {cout〈<"這是所有藏書:"<<endl; cout〈〈”*********************************"<<endl; Book。display_all(); system(”PAUSE"); system(”CLS”); }//按條件查詢圖書,輸入按書號查詢,輸入按書名查詢,輸入按作者查詢 elseif(function=='3’) {cout〈〈”請選擇查詢方式"<〈endl; cout<〈”1按ISBN查詢"<〈endl; cout<<”2按書名查詢”<<endl; cout〈〈”3按作者查詢"〈<endl; charj; stringsearch; cin〉〉j; if(j=='1') {cout<<”請輸入ISBN號"<<endl;//按書號查詢 cin>>search; cout<〈"以下是查詢結(jié)果”<〈endl; cout<〈”*********************************"<〈endl;Book.search_by_isbn(search);//按書號查詢圖書信息函數(shù)的調(diào)用 system(”PAUSE”); system(”CLS”); } elseif(j==’2’) {cout〈〈"請輸入書名"<<endl;//按書名查詢 cin〉〉search;cout〈<”以下是查詢結(jié)果”〈〈endl;cout〈<"*********************************"〈<endl;Book.search_by_name(search);//按書名查詢圖書信息函數(shù)的調(diào)用system("PAUSE"); system("CLS”); } elseif(j==’3’)//按作者查詢 {cout<〈”請輸入作者名”<<endl; cin>〉search;cout<<"以下是查詢結(jié)果"〈〈endl;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度模特時尚品牌合作開發(fā)合同3篇
- 二零二五年度櫥柜行業(yè)知識產(chǎn)權(quán)保護(hù)合同16篇
- 專賣店勞動合同(2024版)
- 2025年度面包磚行業(yè)環(huán)保標(biāo)準(zhǔn)執(zhí)行合同范本3篇
- 2025年鋁制件行業(yè)深度研究分析報告
- 2025年度個人房產(chǎn)抵押擔(dān)保貸款風(fēng)險控制合同范本
- 2025年商用表格撕頁機(jī)項目投資可行性研究分析報告
- 2025年空壓機(jī)空氣濾芯項目節(jié)能評估報告(節(jié)能專)
- 二零二五年度船舶船員聘用及船舶航線規(guī)劃合同3篇
- 二零二五年度股權(quán)借貸合同-利率規(guī)定與利息支付方式2篇
- 選煤廠安全知識培訓(xùn)課件
- 項目前期選址分析報告
- 急性肺栓塞搶救流程
- 《統(tǒng)計學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時間序列分析和預(yù)測
- 《形象價值百萬》課件
- 紅色文化教育國內(nèi)外研究現(xiàn)狀范文十
- 中醫(yī)基礎(chǔ)理論-肝
- 小學(xué)外來人員出入校門登記表
- 《土地利用規(guī)劃學(xué)》完整課件
- GB/T 25283-2023礦產(chǎn)資源綜合勘查評價規(guī)范
- 《汽車衡全自動智能稱重系統(tǒng)》設(shè)計方案
評論
0/150
提交評論