面向對象程序設計A課程設計_第1頁
面向對象程序設計A課程設計_第2頁
已閱讀5頁,還剩35頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象程序課程設計(2017/2018學年第二學期第17周)指導教師:XXX班級:XXX學號:XXXX姓名:XXX面向對象程序課程設計任務書【題目】自助點餐系統【目的】通過設計一個小型的自助點餐系統,訓練綜合運用所學知識處理實際問題的能力,強化面向對象的程序設計理念,使自己的程序設計與調試水平有一個明顯的提高?!疽蟆?、每個學生必須獨立完成;2、課程設計時間為1周;3、設計語言采用C+;4、學生有事離校必須請假。課程設計期間,無故缺席按曠課處理;缺席時間達四分之一以上者,未按規定上交實驗報告的學生,其成績按不及格處理。【內容簡介】有一個小型餐廳,現在這個餐廳打算使用自助點餐系統,方便顧客自

2、己點餐,并提供對餐廳銷售情況的統計和管理功能。【考核標準】該系統為兩種角色的用戶提供服務,一種是餐廳管理員,一種是顧客。餐廳管理員根據賬號、密碼登錄系統。顧客無需登錄即可使用系統。1、顧客通過該餐廳在系統中提供的菜單為自己點餐,菜單以文件形式保存。系統能夠根據顧客的要求正確打出訂單,訂單內容包括訂單編號、菜品名稱、每個菜品的價格、份數、折扣等;訂單分兩種,一種是在店消費,在店消費要求包括餐桌號,是否有包廂費,另一種是外賣,外賣要求包括送餐時間,送餐地點,客戶手機號,外賣服務費。(要求用繼承和多態實現),成績60;2、系統退出后能保存當天的訂單信息,要求每天一個文檔,文檔名按照日期命名。餐廳管理

3、員可以根據訂單編號查找刪除修改某個訂單,訂單可以按照下單時間先后排序,成績70;3、能夠實現對餐廳菜式和價格的管理,包括對菜品和對應價格的增加、修改、刪除、查找,折扣的設置,成績80;4、系統可根據歷史記錄對銷售情況進行統計,根據餐廳管理員的輸入日期統計某天的銷售情況并顯示(包括一共接了多少單,銷售額是多少,各個菜品的銷售情況,外賣和在店銷售的占比),成績90;要求:用面向對象的程序設計方法設計該系統。本系統涉及的基本對象有訂單對象(包括外賣訂單和在店消費訂單)、訂單管理對象、菜單對象、菜品對象、菜品管理對象、系統界面。實現對這些對象的合理抽象和封裝,正確定義類之間的關系。界面合理,代碼文件組

4、織清晰,命名符合規范,代碼注釋清楚,課程設計報告質量高。面向對象程序課程設計目錄一、題目有一個小型餐廳,現在這個餐廳打算使用自助點餐系統,方便顧客自己點餐,并提供對餐廳銷售情況的統計和管理功能。二、需求分析有一個小型餐廳,該餐廳提供即時就餐和外賣服務。方便顧客自己點餐,并提供對餐廳銷售情況的統計和管理功能。1、根據顧客的選擇正確打出訂單。2、統計出每一天的訂單并將之保存在文件中。3、可以通過管理員功能對訂單,菜品等進行操作。三、系統結構圖昏陽界面宜看銷售情況管理員退出白助點餐系統退岀并保存四、類的設計-D-T戈E.ItlA*HTInlnJQ*i=二目tirhuzM-be-k、5-v-c=puv

5、v-vv4n8=puvv=swlgN8-vvM8=puvv-s-歸fgo七2SPOA-o=qndpellseuBIAIPO-9e>deoedsseo三pnouttIIIoedu匸ptt111oedPUJs-scgJEA*亠一B-:.l-*L.K-F亡?"片4&*Rf«E«W*s-fisa*S=E¥eUIH-aMnHI;pj口AlLrzl:罰+l77pJ3-.oqsu!B3W'3IPDP_廠1-;2宀H:.tqp-EPV十二=>"呈<eo>XE2+E=J9'E*+-JE.3*=JE5+SH=JVA-

6、3E3*-UE3+二L-=1UC-TWPW+-S-E5*n-0IK1rg40!isPUIFirt老-80-intm;cin>>m;if(m=1)Adm();inti;cin>>i;switch(i)case1:AdmOrder();breakcase2:AdmVege();break;case3:AdmSell();break;case4:break;elseclient。;找修改刪除訂單"<<endl;cout<<"ttt2.菜式和價格的管理"<<endl;cout<<"ttt3.

7、查看銷售情況"<<endl;cout<<"ttt4.退出"<<endl;cout<<ii<<endl;inti;cin>>i;switch(i)case1:AdmOrder();break;case2:AdmVege();break;case3:AdmSell();break;case4:start();break;start();找訂單"<<endl;cout<<"ttt2.修改訂單"<<endl;cout<<&q

8、uot;ttt3.刪除訂單"<<endl;cout<<"ttt4.退出"<<endl;cout<<""<<endl;inti;cin>>i;switch(i)case1:AdmOrderl();break;case2:AdmOrderII();break;case3:AdmOrderIII();break;case4:Adm1();break;Adm1();加菜品"<<endl;"|cout<<"ttt2.修改菜品&qu

9、ot;<<endl;cout<<"ttt3.刪除菜品"<<endl;cout<<"ttt4.查找菜品"<<endl;cout<<"ttt5.設置折扣"<<endl;cout<<"ttt6.退出"<<endl;cout<<""<<endl;inti;cin>>i;switch(i)case1:AdmVegel();break;case2:AdmVegeII

10、();break;case3:AdmVegelll();breakcase4:AdmVegeV();break;case5:AdmVegeVI();break;case6:Adm1();break;Adm1();xt"OrderManape;(day);cout<<"訂單數:"<<()<<endl;cout<<"銷售額:"<<()<<endl;cout<<"外賣和在店銷售的占比:"<<()<<endl;Adm1();|

11、賣"<<endl;|cout<<"ttt2.在店消費"<<endl;inti;|cin>>i;if(i=1)stringtime,address,phone;cout<<"請輸入送餐時間:"<<endl;cin>>time;cout<<"請輸入送餐地點:"<<endl;cin>>address;cout<<"請輸入手機號:"<<endl;cin>>ph

12、one;number=();cout<<"ttt外賣“<<endl;cout<<"ttt編號:“<<number<<endl;<<phone<<endl;cout<<"送餐時間:"<<time<<"t送餐地點:"<<address<<"t客戶手機號:"cout<<"菜品tt價格tt份數tt折扣"<<endl;();listvVeg

13、etalbe*>:iteratorit;for(it=it!=it+)money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;cout<<"總價:"<<money+5<<"元"<<endl;(&pe,time,address,phone,number);elseif(i=2)cout<<"請問是否選擇包廂(是/否):";stringi;cin>>i;bo

14、olr=0;if(i="是")r=1;intc;srand(unsigned)time(NULL);c=rand()%(50-1);number=();cout<<"ttt在店消費"<<endl;cout<<"ttt訂單編號:"<<number<<endl;cout<<"包廂費:"<<(int)r*50<<"元"<<endl;cout<<"座位號:"<

15、<c<<endl;|cout<<();"菜品tt價格tt份數tt折扣"vvendl;listvVegetalbe*>:iteratorit;for(it=it!=it+)money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;cout<<"總價:"<<money+(int)r*50<<"元"<<endl;(&pe,r,c,number);start

16、();xt",ios:trunc);for(it=it!=it+)outDate<<(*it)->getname()<<"tt"<<(*it)->getmoney()<<"tt"<<(*it)->getdiscount()<<endl;();cout<<"添加成功"<<endl;AdmVege();xt",ios:trunc);for(it=it!=it+)(*it)->getdiscount()

17、<<endl;outDate<<(*it)->getname()<<"tt"<<(*it)->getmoney()<<"tt"<<();cout<<"修改成功"<<endl;AdmVege();xt",ios:trunc);for(it=it!=it+)(*it)->getdiscount()<<endl;outDate<<(*it)->getname()<<"

18、tt"<<(*it)->getmoney()<<"tt"<<();cout<<"刪除成功"<<endl;AdmVege();xt",ios:trunc);for(it=it!=it+)<<(*it)->getdiscount()<<endl;outDate<<(*it)->getname()<<"tt"<<(*it)->getmoney()<<"tt&

19、quot;();cout<<"修改成功"<<endl;AdmVege();xt"cout<<"輸入查找訂單編號:"stringnumble;cin>>numble;OrderManape;(day);(numble);AdmOrder();xt"cout<<"輸入查找訂單編號:"stringnumble;cin>>numble;OrderManape;(day);xt"cout<<"輸入刪除訂單編號:string

20、numble;cin>>numble;OrderManape;(day);ofstreamoutDate(day,ios:trunc);list<Mana>:iteratorit;for(it=it!=it+)if(*it)->getKind()"外賣")outDate<<"ttt夕卜賣"<<endl;outDate<<"ttt編號"<<(*it)->getNumble()<<endl;outDate<<"送餐時間:&

21、quot;vv(*it)->getTim()<<"t送餐地點(*it)->getphone()<<endl;outDate<<"菜品tt價格tt份數tt折扣"<<endl;<<(*it)->getAddress()<<listvVegetalbe*>:iteratorI;"t客戶手機號:"<<for(I=(*it)->();I!=(*it)->();it+)outDate<<(*I)->getname()&l

22、t;<"tt"<<(*I)->getmoney()<<"tt"<<(*I)->getnum()<<"tt"<<(*I)->getdiscount()<<endl;outDate<<"總價:"<<(*it)->getAllmoney()<<"元"<<endl;elseoutDate<<"ttt在店消費"<<

23、endl;outDate<<"ttt訂單編號:"<<(*it)->getNumble()<<endl;元"<<endl;outDate<<"包廂費:"<<(int)(*it)->getA()*50<<outDate<<"座位號:"<<(*it)->getTable()<<endl;outDate<<"菜品tt價格tt份數tt折扣"<<endl;l

24、ist<Vegetalbe*>:iteratorI;for(I=(*it)->();I!=(*it)->();it+)outDate<<(*I)->getname()<<"tt"<<(*I)->getmoney()<<"tt"<<(*I)->getnum()<<(*l)->getdiscount()<<endl;outDate<<"總價:"<<(*it)->getAllmon

25、ey()<<"元"<<endl;();cout<<"刪除成功"<<endl;|#includenn#includenn#includenn#includenn#include<iostream>usingnamespacestd;voidmain()Facere;();#includemiphone)Mana:Mana(stringnumble,stringkind,stringtim,stringaddress,stringthis->Numble=numble;this->kin

26、d=kind;this->tim=tim;this->address=address;this->phone=phone;Mana:Mana(stringnumble,stringkind,inttable,boola)this->Numble=numble;this->kind=kind;this->table=table;this->a=a;voidMana:setAllmoney(intmoneyAllmoney=moneyvoidMana:insert(stringVegedoublemoneyintnumdoublediscount)list

27、<Vegetalbe*>:iteratorit;*it=newVegetalbe(Vegemoneynumdiscount);(*it);#include<iostream>#include<fstream>#include<iomanip>usingnamespacestd;xt");stringname;doublemoney;doublediscount;infile>>name>>money>>discount;p=newVegetalbe(name,money,discount);while

28、(!()(P);infile>>name>>money>>discount;p=newVegetalbe(name,money,discount);();voidMenu:pushnew(Vegetalbe&b)p=&b;(p);stringMenu:number()time_tt=time(0);chartmp32=NULL;strftime(tmp,sizeof(tmp),"%Y%m%d%H%MocS"time(&t);returntmp;voidMenu:dleinsert(stringVege)list&l

29、t;Vegetalbe*>:iteratorit;for(it=();it!=();it+)if(*it)->getname()!=Veg©(*it);discount)voidMenu:insert(stringVegedoublemoneyintnun,doublelist<Vegetalbe*>:iteratorit;*it=newVegetalbe(Vegemoneynumdiscount);(*it);Menu:Menu()|list<Vegetalbe*>:iteratorit;for(it=();it!=();it+)delete*i

30、t;for(it=();it!=();it+)delete*it;#include<fstream>usingnamespacestd;Order:Order(stringaccount,stringcode)this->account=account;this->code=code;boolOrder:judge()boolT=0;ifstreaminfile(管理員賬號.txt");stringAccount,Code;while(!()infile>>Account>>Code;if(this->account=Accoun

31、t)|(this->code=Code)T=1;break;();returnT;#include""#include<fstream>#include<iostream>usingnamespacestd;xt"#include<>ofstreamoutDate(day,ios:app);doublemoney=0;outDate<<endl<<"ttt外賣“<<endl;outDate<<"ttt訂單編號“<<number<<e

32、ndl;outDate<<"送餐時間“<<tim<<"t送餐地點“<<address<<"t客戶手機號"<<phone<<endl;listvVegetalbe*>:iteratorit;for(it=p->();it!=p->();it+)outDate<<(*it)->getname()<<"tt"<<(*it)->getmoney()<<"tt"&l

33、t;<(*it)->getnum()<<"tt"<<(*it)->getdiscount()<<endl;money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;outDate<<"總價"<<money+5<<endl;();xt"ofstreamoutDate(day,ios:app);doublemoney=0;outDate<<endl<

34、;<"ttt在店消費"vvendl;if(a=1)outDate<<"ttt訂單編號"<<number<<endl;|outDate<<"包廂費"<<(int)a*50<<endl;|outDate<<"座位號"<<x<<endl;|listvVegetalbe*>:iteratorit;|for(it=p->();it!=p->();it+)"tt"<<

35、;outDate<<(*it)->getname()<<"tt"<<(*it)->getmoney()<<"tt"<<(*it)->getnum()<<(*it)->getdiscount()<<endl;money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;outDate<<"總價“<<money+(int)a*5

36、0<<endl;elseoutDate<<"ttt訂單編號"<<number<<endl;outDate<<"包廂費"<<(int)a*50<<endl;outDate<<"座位號"<<x<<endl;listvVegetalbe*>:iteratorit;for(it=p->();it!=P->();it+)"tt"<<outDate<<(*it)-&g

37、t;getname()<<"tt"<<(*it)->getmoney()<<"tt"<<(*it)->getnum()<<(*it)->getdiscount()<<endl;money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;outDate<<"總價“<<money+(int)a*50<<endl;();voidOrd

38、erMana:txtinsertMana(stringday)ifstreaminfile(day);stringduoyu;stringkind;/訂單種類stringtim,address,phone;/送餐時間,送餐地點,客戶手機號/座位號,總價/是否有包廂費/訂單編號inttable,Allmoney;boola;stringNumble;stringname;doublemoneyV;intnum;doublediscount;intf;while(!()infile>>kind;if(kind="外賣")infile>>duoyu>

39、>Numble>>duoyu>>tim>>duoyu>>address>>duoyu>>phone;p=newMangNumble,kind,tim,address,phone);while(1)infile>>name;if(name="總價")infile>>Allmoney;p->setAllmoney(Allmoney);(p);BossMoney+=Allmoney;Fre+=1;TakeOut+=1;break;elseinfile>>mone

40、yV>>num>>discount;p->insert(name,moneyV,num,discount);elseif(kind="在店消費")infile>>duoyu>>Numble>>duoyu>>f>>duoyu>>table;a=(bool)(f/50);p=newMangNumble,kind,a,table);while(1)infile>>name;if(name="總價")BossMoney+=Allmoney;infil

41、e>>Allmoney;p->setAllmoney(Allmoney);(p);Fre+=1;InShop+=1;break;elseinfile>>moneyV>>num>>discount;p->insert(name,moneyV,num,discount);kind"0"();voidOrderMana:findMana(stringnumble)list<Mana>:iteratorit;for(it=();it!=();it+)if(*it)->Numble=numble)pushi

42、t(*it);voidOrderMana:pushit(Manare)if(re->getKind()="外賣")cout<<"ttt外賣"<<endl;|cout<<"ttt編號"<<re->getNumble()<<endl;|cout<<"送餐時間:"<<re->getTim()<<"t送餐地點:"<<re->getAddress()<<"

43、;t客戶手機號:"<<re->getphone()<<endl;cout<<"菜品tt價格tt份數tt折扣"<<endl;|re->printord();cout<<"總價:”<<re->getAllmoney()<<"元"<<endl;elsecout<<"ttt在店消費"<<endl;cout<<"ttt訂單編號:"<<re->

44、;getNumble()<<endl;|cout<<"包廂費:"<<(int)re->getA()*50<<"元"<<endl;cout<<"座位號"<<re->getTable()<<endl;|cout<<"菜品tt價格tt份數tt折扣"<<endl;re->printord();cout<<"總價:”<<re->getAllmoney()<<"元"<<endl;voidOrderMana:dleinsertM(stringnumble)list<Mana>:iteratorit;for(it=();it!=();it+)if(*it)->getNumble()!=numble)(*it);六、運行結果與分析歡迎便用口助點餐系統請輸入操作模代1管理員2顧客棄單菜品名稱價格折扣紅燒肉30元7擴鐵板15元10折炒飯15兀10折拉It20元10折請輸入購買菜品和份數:拉面2是否繼續購買(是/否):是炒飯1是否繼續購買(是/否

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論