




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊畢業(yè)設(shè)計(jì)(論文)紙共共31頁第13頁目錄TOC\o"1-3"\h\u8289一、設(shè)計(jì)目的 230014二、設(shè)計(jì)內(nèi)容 21921三、設(shè)計(jì)要求 26936四、設(shè)計(jì)過程 3190411、面向?qū)ο蠓治?3252912、數(shù)據(jù)結(jié)構(gòu)分析 7147033、系統(tǒng)執(zhí)行流程 824015五、程序運(yùn)行結(jié)果 118186六、設(shè)計(jì)總結(jié) 174870參考文獻(xiàn) 1730440附錄 18圖書銷售管理系統(tǒng)設(shè)計(jì)目的本圖書銷售管理系統(tǒng),主要用于小型的書店,進(jìn)行簡(jiǎn)單的圖書的管理,為了能夠更好的管理書店的銷售的情況和庫(kù)存的情況書店銷售管理系統(tǒng)主要的功能有:(1)圖書入庫(kù)管理:維護(hù)入庫(kù)圖書信息,圖書編號(hào)、書名、價(jià)格等,自動(dòng)計(jì)算庫(kù)存。(2)圖書查詢統(tǒng)計(jì):可以根據(jù)圖書分類、出版社、書名、作者等條件查詢圖書的詳細(xì)信息。(3)銷售管理:銷售過的圖書都記錄在銷售列表中,方便統(tǒng)計(jì)收入。圖書銷售后,要記錄圖書庫(kù)存,按每天統(tǒng)計(jì)銷售額、每個(gè)月或季度生成報(bào)表,并生成暢銷書單。二、設(shè)計(jì)內(nèi)容(1)圖書信息包括書名、書號(hào)、作者、出版社、單價(jià)、庫(kù)存數(shù)量、進(jìn)價(jià)、售價(jià)、利潤(rùn);(2)用戶登錄界面設(shè)計(jì)(3)信息維護(hù):包括子模塊有增加圖書信息、刪除圖書信息、修改圖書信息(4)查詢功能:可按書名查詢、作者查詢、或出版社查詢(5)排序功能:能實(shí)現(xiàn)按圖書銷售利潤(rùn)進(jìn)行排序的功三、設(shè)計(jì)要求(1)只能使用C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2)至少采用文本菜單界面(如果能采用圖形菜單界面更好)(3)學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)(4)寫出課程設(shè)計(jì)報(bào)告,具體要求見相關(guān)說明文檔四、設(shè)計(jì)過程1、面向?qū)ο蠓治觯?)對(duì)象模型設(shè)計(jì)(2)各個(gè)類設(shè)計(jì)系統(tǒng)中說明了4個(gè)類,每個(gè)類的詳細(xì)設(shè)計(jì)如下:1.Book類classbook{//book基類protected: stringname;//名稱 floatprice;//價(jià)格 intnum;//編號(hào) intkucun,xcl,salel;//庫(kù)存,現(xiàn)存量,銷售量public: intgetnum(){ returnnum;}//編號(hào)接口函數(shù) stringgetname(){//名稱接口函數(shù) returnname;} floatgetprice(){returnprice;}//價(jià)格接口函數(shù) intgetkucun(){returnkucun;}//庫(kù)存量接口函數(shù) intgetxcl(){returnxcl;}//現(xiàn)存量接口函數(shù) intgetsalel(){returnsalel;}//銷售量接口函數(shù) virtualvoidinput()=0;//輸入虛函數(shù) virtualvoidoutput()=0;//輸出虛函數(shù)說明:Book類是一個(gè)基類,用于定義圖書基本的信息。例如:其中stringgetname()是一個(gè)接口函數(shù),能獲得圖書的姓名。2.Yule(娛樂類)classyule:publicbook{//娛樂的派生類public: voidinput(){//輸入 cin>>name; cin>>num; cin>>price; cin>>kucun; cin>>salel; cin>>xcl; } voidoutput(){//輸出 cout<<"Yule:"<<endl; cout<<name<<""<<num<<""<<price<<""<<kucun<<""<<salel<<""<<xcl<<endl; } voidcompute(){//計(jì)算售出剩余函數(shù) intcounts; cout<<"輸入售出的圖書的本數(shù)"<<endl; cin>>counts; cout<<"售后剩余:"<<endl;kucun=kucun-counts;//計(jì)算庫(kù)存量 salel=salel+counts;//計(jì)算銷售量xcl=xcl-counts;//計(jì)算剩余量說明:yule類用于定義娛樂圖書的信息,它是Book類的公有派生類。其中:Compute()是一個(gè)計(jì)算售出圖書數(shù)量和剩余的函數(shù),input()和output()函數(shù)是對(duì)圖書信息的輸入和輸出而且他們是在基類中定義的純虛函數(shù)。study(學(xué)習(xí)類圖書)classstudy:publicbook{//學(xué)習(xí)類public: voidinput(){ cin>>name; cin>>num; cin>>price; cin>>kucun; cin>>salel; cin>>xcl; } voidoutput(){ cout<<"Learn:"<<endl; cout<<name<<""<<num<<""<<price<<""<<kucun<<""<<salel<<""<<xcl<<endl; } voidcompute1(){ intcounts; cout<<"輸入售出的圖書的本數(shù)"<<endl; cin>>counts; cout<<"售后剩余:"<<endl;kucun=kucun-counts; salel=salel+counts;xcl=xcl-counts;study類用于定義學(xué)習(xí)類圖書的信息,它是Book類的公有派生類。其中:Compute1()是一個(gè)計(jì)算售出圖書數(shù)量和剩余的函數(shù),input()和output()函數(shù)是對(duì)圖書信息的輸入和輸出而且他們是在基類中定義的純虛函數(shù)。operate(功能類)typedefvector<yule>STRVEC;//定義stl模版的容器typedefvector<study>STRVEC1;classoperate{//定義功能類 STRVECstrvec; STRVEC1strvec1;public: voidsearch_yulenum(intm)//娛樂類圖書按編號(hào)查找 voidsearch_yulename(strings)//查找娛樂類圖書按名稱 voiddel_yulenum(intn)//刪除娛樂類圖書按編號(hào) voiddel_yulename(stringp)//按圖書名稱刪除 voidadd_study()//添加學(xué)習(xí)類圖書的基本信息 voidadd_yule()//添加娛樂類圖書的基本信息 voidsearch_studynum(intm)//查找學(xué)習(xí)類圖書的編號(hào) voidsearch_studyname(strings)//查找學(xué)習(xí)類圖書的名稱 voidxiugai_yule(intm)//修改娛樂類圖書的剩余量 voidxiugai_study(intm)//修改學(xué)習(xí)類圖書的剩余量voiddel_studynum(intn)//刪除售完圖書voiddel_studyname(stringp)//按名稱刪除圖書voidshow_yule()//顯示娛樂類圖書voidshow_study()//顯示學(xué)習(xí)類圖書voidsaleamounts()//計(jì)算銷售額voidchangxiao1()//娛樂類圖書暢銷voidchangxiao()//學(xué)習(xí)類圖書暢銷voidsave()//娛樂類入庫(kù)單voidsave1()//學(xué)習(xí)類入庫(kù)單voidload()//讀取娛樂類文件voidload1()//讀取學(xué)習(xí)類文件voidMenu()//應(yīng)用菜單說明:operate類用來實(shí)現(xiàn)圖書管理系統(tǒng)的功能,它是用來查找、添加、刪除圖書的信息的基本點(diǎn)的信息,對(duì)系統(tǒng)進(jìn)行維護(hù),生成入庫(kù)單、暢銷書和一天的銷售額。2、數(shù)據(jù)結(jié)構(gòu)分析書店銷售管理系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):英文名稱中文名稱Book圖書類Yule娛樂類圖書Study學(xué)習(xí)類圖書Strvec娛樂類的STL模版Strvec1學(xué)習(xí)類的STL模版Operate運(yùn)算類search_yulenum娛樂類編號(hào)查找search_yulename娛樂類書名查找del_yulenum娛樂類編號(hào)刪除del_yulename娛樂類書名刪除add_study添加學(xué)習(xí)類圖書add_yule添加娛樂類圖書search_studynum學(xué)習(xí)類編號(hào)查詢search_studyname學(xué)習(xí)類書名查詢del_studynum學(xué)習(xí)類編號(hào)刪除del_studyname學(xué)習(xí)類書名刪除show_yule顯示娛樂類信息show_study顯示學(xué)習(xí)類信息save保存娛樂類文件load顯示娛樂類文件Menu菜單main主函數(shù)Save1保存學(xué)習(xí)類文件Load1顯示娛樂類文件saleamounts銷售量的計(jì)算xiugai_yule娛樂類圖書的修改xiugai_study學(xué)習(xí)類圖書的修改changxiao娛樂類暢銷圖書Changxiao1學(xué)習(xí)類暢銷圖書系統(tǒng)執(zhí)行流程(1)主頁面流程圖如圖(1)圖(1)主頁面流程圖(2)顧客登陸簡(jiǎn)述:用戶在圖書銷售系統(tǒng)里顧客登陸并查詢圖書內(nèi)容?;玖鞒?1顧客:在圖書銷售系統(tǒng)畫面,選擇顧客登陸,顯示圖書基本信息,按提示內(nèi)容進(jìn)行查找2查詢:顧客在圖書銷售系統(tǒng)中能查詢圖書的信息;3顯示:顧客能在顧客界面能看到最近的圖書;4結(jié)束。流程圖如圖(2)圖(2)顧客登錄流程圖(3)收銀員登陸簡(jiǎn)述:收銀員在圖書銷售系統(tǒng)里能看到圖書信息并能修改出售圖書的數(shù)量?;玖鞒蹋?收銀員:在圖書銷售系統(tǒng)畫面,選擇收銀員登陸,輸入密碼,進(jìn)入收銀員界面。2修改:收銀員在圖書銷售系統(tǒng)中能修改圖書的售出情況;3顯示:收銀員能在顧客界面能看到最近錄入的圖書;4結(jié)束。流程圖如圖(3)圖(3)收銀員登錄流程圖管理員登陸簡(jiǎn)述:管理員在圖書銷售系統(tǒng)填加、刪除和查找圖書信息,并能顯示銷售額?;玖鞒蹋?管理員:在圖書銷售系統(tǒng)畫面,選擇管理員登陸,輸入密碼,進(jìn)入收銀員界面。2添加:管理員在圖書銷售系統(tǒng)中能填加圖書的基本情況;3刪除:管理員在圖書銷售系統(tǒng)中能刪除圖書的基本信息;4查找:管理員在圖書銷售系統(tǒng)中能查找圖書的基本信息。5銷售額:管理員在圖書銷售系統(tǒng)中能看到銷售額的輸出6暢銷書:管理員在圖書銷售系統(tǒng)中能查詢暢銷書7結(jié)束流程圖如圖(4)圖(4)管理員登錄流程圖程序運(yùn)行結(jié)果管理員登錄在書店開始售書之前先由管理員添加書籍內(nèi)容,在管理員將需要添加的書籍添加完畢后顧客還有收銀員才能執(zhí)行自己相應(yīng)的功能。選擇管理員功能會(huì)進(jìn)入登陸界面;密碼輸入正確方能進(jìn)入使用,錯(cuò)誤則會(huì)返回輸入密碼界面,直到密碼正確,進(jìn)入使用界面。按1添加娛樂類的圖書及相關(guān)內(nèi)容添加成功后好可以繼續(xù)按1添加娛樂類書籍相關(guān)內(nèi)容,也可按5繼續(xù)添加學(xué)習(xí)類的圖書添加完畢后可返回主菜單(11選項(xiàng))收銀員登錄在主界面按2可進(jìn)入收銀員的登錄界面,同管理員一樣,收銀員也一樣需要輸入密碼,密碼對(duì)方可進(jìn)入修改界面,在這里收銀員可以對(duì)圖書的銷售情況進(jìn)行修改,以便以后對(duì)圖書銷售情況便于管理輸入圖書編號(hào)(娛樂類/學(xué)習(xí)類)并且輸入將要售出的本數(shù),系統(tǒng)將會(huì)顯示圖書(娛樂類/學(xué)習(xí)類)的售后情況顧客登錄(張海東負(fù)責(zé))在主界面選擇1可以進(jìn)入顧客的使用界面,在這里顧客可以看到所以書籍(娛樂類和學(xué)習(xí)類),并可以按照編號(hào)或者圖書名稱查詢相應(yīng)圖書的詳細(xì)內(nèi)容到此顧客使用功能結(jié)束。當(dāng)然管理員也有對(duì)圖書查詢的功能,對(duì)圖書的銷售情況時(shí)時(shí)了解娛樂類圖書查詢:學(xué)習(xí)類圖書查詢:銷售額顯示在一段時(shí)間后書籍可能售完,這樣管理員需要將此類書籍刪除,以免誤導(dǎo)顧客,在圖書刪除后,顧客在查詢系統(tǒng)中將不會(huì)再查詢到相關(guān)的內(nèi)容娛樂類圖書刪除學(xué)習(xí)類圖書刪除管理員在執(zhí)行完所有的步驟后可以選擇回到住界面,也可以選擇退出系統(tǒng)回到主界面選擇:退出系統(tǒng)選擇:設(shè)計(jì)總結(jié)(1)完成本課題花了很長(zhǎng)的時(shí)間,真正體會(huì)了作為一個(gè)程序員的辛苦,并且必須具備細(xì)心、耐心的品質(zhì),想要完成一項(xiàng)出色的項(xiàng)目,必須精益求精,反復(fù)操作與實(shí)踐。(2)在做了本課程設(shè)計(jì)以后,我對(duì)C++的了解更深了,很多知識(shí)得到了鞏固,一些不懂的知識(shí)也漸漸明了!這其中主要是對(duì)指針的使用收獲很多,在指針使用的過程中,對(duì)指針的指向以及對(duì)各函數(shù)中指針的賦值會(huì)影響到整個(gè)程序的運(yùn)行;還有就是對(duì)文件的輸入輸出流了解得更透徹了,知道了打開一個(gè)文件后必須還要對(duì)其關(guān)閉,否則程序無法運(yùn)行,對(duì)各種文件的輸入輸出控制符都能基本融會(huì)貫通。(3)雖然本課題已完成,可是還是存在一些問題,比如說界面還不夠好看,為了用戶用得舒服,界面是很重要的。參考文獻(xiàn)鄭莉等編著.《C++語言程序設(shè)計(jì)》.清華大學(xué)出版社鄭莉等編著.《C++語言程序設(shè)計(jì)習(xí)題與實(shí)驗(yàn)指導(dǎo)》.清華大學(xué)出版社張基溫編著.《C++程序設(shè)計(jì)基礎(chǔ)例題與習(xí)題》.高等教育出版社黃明等編著.《面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題詳解》.機(jī)械工業(yè)出版社附錄源代碼:#include<iostream>#include<iomanip>#include<string>#include<fstream>usingnamespacestd;constintMaxr=100;constintMaxb=100;constintMaxbor=5;classReader{private:inttag;intno;charname[10];intborbook[Maxbor];public:Reader(){}char*getname(){returnname;}intgettag(){returntag;}intgetno(){returnno;}voidsetname(charna[]){strcpy(name,na);}voiddelbook(){tag=1;}voidaddreader(intn,char*na){tag=0;no=n;strcpy(name,na);for(inti=0;i<Maxbor;i++)borbook[i]=0;}voidborrowbook(intbookid){for(inti=0;i<Maxbor;i++){if(borbook[i]==0){borbook[i]=bookid;return;}}}intretbook(intbookid){for(inti=0;i<Maxbor;i++){if(borbook[i]==bookid){borbook[i]=0;return1;}}return0;}voiddisp(){cout<<setw(5)<<no<<setw(10)<<name<<"借書編號(hào):[";for(inti=0;i<Maxbor;i++)if(borbook[i]!=0)cout<<borbook[i]<<"|";cout<<"]"<<endl;}};classRDatabase{private:inttop;Readerread[Maxr];public:RDatabase(){Readers;top=-1;fstreamfile("reader.txt",ios::in);while(1){file.read((char*)&s,sizeof(s));if(!file)break;top++;read[top]=s;}file.close();}voidclear(){top=-1;}intaddreader(intn,char*na){Reader*p=query(n);if(p==NULL){top++;read[top].addreader(n,na);return1;}return0;}Reader*query(intreaderid){for(inti=0;i<=top;i++)if(read[i].getno()==readerid&&read[i].gettag()==0){return&read[i];}returnNULL;}voiddisp(){for(inti=0;i<=top;i++)read[i].disp();}voidreaderdata();~RDatabase(){fstreamfile("reader.txt",ios::out);for(inti=0;i<=top;i++)if(read[i].gettag()==0)file.write((char*)&read[i],sizeof(read[i]));file.close();}};voidRDatabase::readerdata(){charchoice;charrname[20];intreaderid;Reader*r;while(choice!='0'){cout<<"******歡迎使用圖書銷售管理系統(tǒng)終極版******”<<endl;cin>>choice;switch(choice){case'1':cout<<"******操作菜單******:";cin>>readerid;cout<<"******收銀員******";cin>>rname;addreader(readerid,rname);break;case'2':cout<<"******管理員******:";cin>>readerid;r=query(readerid);if(r==NULL){cout<<"******顧客******"<<endl;break;}cout<<"輸入新的姓名:";cin>>rname;r->setname(rname);break;case'3':cout<<"輸入圖書編號(hào):";cin>>readerid;r=query(readerid);if(r==NULL){cout<<"該圖書不存在"<<endl;break;}r->delbook();break;case'4':cout<<"讀入圖書編號(hào):";cin>>readerid;r=query(readerid);if(r==NULL){cout<<"該圖書不存在"<<endl;break;}r->disp();break;case'5':disp();break;case'6':clear();break;default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break;}}}classBook{private:inttag;intno;charname[20];intonshelf;public:Book(){}char*getname(){returnname;}intgetno(){returnno;}intgettag(){returntag;}voidsetname(charna[]){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;return1;}return0;}voidretbook(){onshelf=1;}voiddisp(){cout<<setw(6)<<no<<setw(18)<<name<<setw(10)<<(onshelf==1?"缺貨")<<endl;}};classBDatabase{private:inttop;Bookbook[Maxb];public:BDatabase(){Bookb;top=-1;fstreamfile("book.txt",ios::in);while(1){file.read((char*)&b,sizeof(b));if(!file)break;top++;book[top]=b;}file.close();}voidclear(){top=-1;}intaddbook(intn,char*na){Book*p=query(n);if(NULL==p){top++;book[top].addbook(n,na);return1;}return0;}Book*query(intbookid){for(inti=0;i<=top;i++)if(book[i].getno()==bookid&&book[i].gettag()==0){return&book[i];}returnNULL;}voidbookdata();voiddisp(){for(inti=0;i<=top;i++)if(book[i].gettag()==0)book[i].disp();}~BDatabase(){fstreamfile("book.txt",ios::out);for(inti=0;i<=top;i++)if(book[i].gettag()==0)file.write((char*)&book[i],sizeof(book[i]));file.close();}};voidBDatabase::bookdata(){charchoice;charbname[40];intbookid;Book*b;while(choice!='0'){cout<<"\n\n\n\t\t\t圖書維護(hù)"<<endl<<endl;cin>>choice;switch(choice){case'1':cout<<"輸入圖書編號(hào):"<<endl;cin>>bookid;cout<<"輸入圖書書名:"<<endl;cin>>bname;addbook(bookid,bname);break;case'2':cout<<"輸入圖書編號(hào):"<<endl;cin>>bookid;b=query(bookid);if(b==NULL){cout<<"該圖書缺貨"<<endl;break;}cout<<"輸入新的書名:"<<endl;cin>>bname;b->setname(bname);break;case'3':cout<<"讀入圖書編號(hào):"<<endl;cin>>bookid;b=query(bookid);if(b==NULL){cout<<"該圖書缺貨"<<endl;break;}b->delbo
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 考試心態(tài)調(diào)整特許金融分析師考試試題及答案
- 證券投資中的人機(jī)結(jié)合分析試題及答案
- 2025年財(cái)務(wù)報(bào)告標(biāo)準(zhǔn)變動(dòng)試題及答案
- 2025年CFA考試資本市場(chǎng)操作試題及答案
- 微生物分析報(bào)告的撰寫技巧試題及答案
- 2024年項(xiàng)目管理新挑戰(zhàn)及應(yīng)對(duì)策略試題及答案
- 預(yù)備工作2025年證券從業(yè)資格證試題及答案
- 礦山安全應(yīng)急預(yù)案與演練-石墨滑石考核試卷
- 2025年審計(jì)審查重點(diǎn)試題及答案
- 礦山環(huán)境管理與生態(tài)斷層監(jiān)測(cè)考核試卷
- 2023裝配式建筑標(biāo)準(zhǔn)化產(chǎn)品系列圖集(預(yù)制內(nèi)墻條板)SJT 03-2023
- 遠(yuǎn)動(dòng)設(shè)備故障處理措施
- 《真空熱處理爐》課件
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全管理手冊(cè)
- 企業(yè)財(cái)務(wù)管理優(yōu)化方案
- NB-T 47013.2-2015 承壓設(shè)備無損檢測(cè) 第2部分-射線檢測(cè)
- 實(shí)用版建筑工程工程合同模板
- 新型馬路劃線機(jī)設(shè)計(jì)
- 《兒科學(xué)》課件第9章第九節(jié) 腹瀉病
- 小學(xué)生主題班會(huì) 拒絕作弊+誠(chéng)信考試+宣傳教育 課件(共28張PPT)
- 職業(yè)病危害與防治培訓(xùn)PPT模板(含完整內(nèi)容)13
評(píng)論
0/150
提交評(píng)論