版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北華大學(xué)C++課程實(shí)習(xí)報(bào)告餐廳點(diǎn)菜系統(tǒng)學(xué)院:電氣信息工程學(xué)院專業(yè):電子信息工程班級(jí):學(xué)號(hào):姓名:指導(dǎo)教師:餐廳點(diǎn)菜系統(tǒng)需求分析該程序?qū)τ诓蛷d菜單進(jìn)行管理,顯示所有菜,顧客可以點(diǎn)餐廳的所有菜,也可以按類查找,自動(dòng)生成菜單,自動(dòng)計(jì)算消費(fèi)金額,可以使用優(yōu)惠劵顯示菜的編號(hào)、菜名、類別和單價(jià)菜可以按類查找:炒菜、炒飯和面類點(diǎn)菜a)增加點(diǎn)菜b)刪除一個(gè)點(diǎn)菜c)輸出點(diǎn)菜信息并保存d)計(jì)算消費(fèi)金額優(yōu)惠卷1)金額優(yōu)惠2)打折優(yōu)惠設(shè)計(jì)實(shí)現(xiàn)該餐廳點(diǎn)菜系統(tǒng)共有兩個(gè)類和一個(gè)構(gòu)造函數(shù),Cmenu類(菜的屬性)和array類(菜的數(shù)組),與函數(shù)youhui〔計(jì)算有優(yōu)惠卷時(shí)的價(jià)格〕在Cmenu類中,定義:name菜的編號(hào),name菜名,price菜的單價(jià),kind菜的種類,sort菜的數(shù)量,函數(shù)getnum錄入菜的編號(hào)函數(shù)實(shí)現(xiàn):函數(shù)getname實(shí)現(xiàn):錄入菜的名字,函數(shù)getprice實(shí)現(xiàn):錄入菜的單價(jià),函數(shù)getkind實(shí)現(xiàn):錄入菜的類別,函數(shù)getsort實(shí)現(xiàn):錄入所點(diǎn)菜的數(shù)量,函數(shù)menudisplay實(shí)現(xiàn):菜譜顯示,函數(shù)selectdisplay實(shí)現(xiàn):對(duì)所點(diǎn)的菜進(jìn)行輸出,函數(shù)returnnum實(shí)現(xiàn):返回菜的編號(hào),函數(shù)returnname實(shí)現(xiàn):返回菜名,函數(shù)returnprice實(shí)現(xiàn):返回菜的單價(jià),函數(shù)returnkind實(shí)現(xiàn):返回菜的類別,函數(shù)returnsort實(shí)現(xiàn):返回菜的數(shù)量。在array類中,定義:sort菜的類別,num菜的數(shù)量函數(shù)實(shí)現(xiàn):函數(shù)getnum實(shí)現(xiàn):初始化num,函數(shù)getsort實(shí)現(xiàn):初始化sort,函數(shù)returnnum實(shí)現(xiàn):返回num,函數(shù)returnsort實(shí)現(xiàn):返回sort主函數(shù)main的運(yùn)行流程圖:退出界面getnum()getsort()returnnum()returnsort()selectdisplay()file(“select.txt〞)returnprice()returnsort()returnkind()youhui()點(diǎn)菜退出界面getnum()getsort()returnnum()returnsort()selectdisplay()file(“select.txt〞)returnprice()returnsort()returnkind()youhui()點(diǎn)菜array類菜單顯示menudisplay〔〕〔〕按類查找returnkind〔〕201顯示界面選擇操作定義變量:Intsort,geshu,NUMStringNAME,KIND文件輸入菜單信息f1(“menu.txt〞)開始測(cè)試結(jié)果首頁(yè):菜的信息:按類查找:炒菜炒飯面類點(diǎn)菜菜的信息:增加點(diǎn)菜:刪除點(diǎn)菜:計(jì)算消費(fèi)金額:1、沒有擁有優(yōu)惠卷?yè)碛袃?yōu)惠卷:a〕20元的優(yōu)惠卷0.85折優(yōu)惠卷退出系統(tǒng):結(jié)論及需改良的問題餐廳點(diǎn)菜系統(tǒng)是在圖書管理系統(tǒng)的根底上,慢慢自己改良的,其中增加點(diǎn)菜,刪除點(diǎn)菜,輸出菜單,按類查詢都是按照?qǐng)D書管理系統(tǒng)中增加圖書,刪除圖書,顯示圖書,按類查詢中改良的,其中最重要的是菜單的錄用,自己想了很多方法,最后用文本輸入函數(shù)做的,把菜單完全的輸入進(jìn)去,還有一點(diǎn)新穎的地方,源于優(yōu)惠劵的使用,不僅可以使用金額的優(yōu)惠,并且還會(huì)使用打折卷的優(yōu)惠,雖然這里面的算法很簡(jiǎn)單,但是增加的程序的實(shí)用性。我感覺缺乏的是,應(yīng)該有一個(gè)會(huì)進(jìn)人后臺(tái)的功能,進(jìn)去可以增加菜單里的菜,刪除菜,更改類別和金額,更方便餐廳的管理者,當(dāng)然進(jìn)人的時(shí)候,參加管理員密碼。餐廳點(diǎn)菜系統(tǒng)C++代碼#include<iostream>#include<iomanip>#include<fstream>#include<string>usingnamespacestd;classCmenu//創(chuàng)立Cmenu類菜的屬性{ intnum;//菜的編號(hào)stringname;//菜名floatprice;//菜的單價(jià)stringkind;//菜的種類intsort;//菜的數(shù)量public: voidgetnum(inti);//錄入菜的編號(hào) voidgetname(stringName);//錄入菜的名字 voidgetprice(floatPrice);//錄入菜的單價(jià) voidgetkind(stringKind);//錄入菜的類別 voidgetsort(intSORT);//錄入所點(diǎn)菜的數(shù)量 voidmenudisplay();//菜譜顯示 voidselectdisplay();//對(duì)所點(diǎn)的菜進(jìn)行輸出 floatreturnnum()//返回菜的編號(hào) {returnnum;} stringreturnname()//返回菜名 {returnname;} floatreturnprice()//返回菜的單價(jià){returnprice;} stringreturnkind()//返回菜的類別 {returnkind;} intreturnsort()//返回菜的數(shù)量 {returnsort;}};voidCmenu::getnum(inti)//錄入菜的編號(hào)函數(shù){ num=i;}voidCmenu::getname(stringName)//錄入菜的名字{ name=Name;}voidCmenu::getprice(floatPrice)//錄入菜的單價(jià){ price=Price;}voidCmenu::getkind(stringKind)//錄入菜的類別{ kind=Kind;}voidCmenu::getsort(intSORT)//錄入所點(diǎn)菜的數(shù)量{ sort=SORT;}voidCmenu::menudisplay()//菜單的信息顯示{ cout<<setw(3)<<num<<setw(22)<<name<<setw(16)<<kind<<setw(16)<<price<<endl;}voidCmenu::selectdisplay()//對(duì)所點(diǎn)的菜進(jìn)行輸出{ cout<<setw(3)<<num<<setw(24)<<name<<setw(16)<<kind<<setw(16)<<price<<setw(19)<<sort<<endl;}floatyouhui(floatsum,floatpoint)//函數(shù)計(jì)算有優(yōu)惠卷時(shí)的價(jià)格{ if(point>1.0) { sum=sum-point; } if(point<=1.0) { sum=sum*point; }returnsum;}classarray//創(chuàng)立一個(gè)array數(shù)組{public: voidgetnum(intNUM);//初始化num的函數(shù)voidgetsort(intSORT);//初始化sort的函數(shù)intreturnnum()//返回num的函數(shù) {returnnum;}intreturnsort()//返回sort的函數(shù) {returnsort;}private: intsort,num;};voidarray::getnum(intNUM)//初始化num的函數(shù)體{ num=NUM;}voidarray::getsort(intSORT)//初始化sort的函數(shù)體{ sort=SORT;}voidmain()//主函數(shù){ inti,id,m,q,z,sort,b; charj;intgeshu; intNUM; stringNAME,KIND; floatPRICE,POINT,sum=0; Cmenufood[40];//創(chuàng)立Cmenu類的對(duì)象數(shù)組 ifstreamf1("menu.txt");//文件輸入菜單信息for(j=0;j<12;j++) { f1>>NUM; f1>>KIND; f1>>NAME; f1>>PRICE; food[j].getnum(NUM); food[j].getkind(KIND); food[j].getname(NAME); food[j].getprice(PRICE); food[0].getnum(1); food[0].getkind("炒菜"); food[0].getname("麻辣豆腐"); food[0].getprice(8); food[1].getnum(2); food[1].getkind("炒菜"); food[1].getname("燒茄子"); food[1].getprice(10); food[2].getnum(3); food[2].getkind("炒菜"); food[2].getname("香辣肉絲"); food[2].getprice(15); food[3].getnum(4); food[3].getkind("炒菜"); food[3].getname("鍋包肉"); food[3].getprice(15); food[4].getnum(5); food[4].getkind("炒飯"); food[4].getname("蛋炒飯"); food[4].getprice(5); food[5].getnum(6); food[5].getkind("炒飯"); food[5].getname("揚(yáng)州炒飯"); food[5].getprice(6); food[6].getnum(7); food[6].getkind("炒飯"); food[6].getname("火腿炒飯"); food[6].getprice(6); food[7].getnum(8); food[7].getkind("炒飯"); food[7].getname("魷魚炒飯"); food[7].getprice(7); food[8].getnum(9); food[8].getkind("面類"); food[8].getname("刀削面"); food[8].getprice(5); food[9].getnum(10); food[9].getkind("面類"); food[9].getname("羊肉面"); food[9].getprice(8); food[10].getnum(11); food[10].getkind("面類"); food[10].getname("熱干面"); food[10].getprice(5); food[11].getnum(12); food[11].getkind("面類"); food[11].getname("手搟面"); food[11].getprice(6); } f1.close(); cout<<"━*━*━*━*━*━*━*━*━*━*━*━歡送光臨本店━*━*━*━*━*━*━*━*━*━*━*"<<endl;//菜單 while(1){ cout<<"━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━"<<endl; cout<<endl;cout<<"┏━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃0---------------顯示菜單里所有的菜的信息┃"<<endl; cout<<"┃1---------------在菜單里按類查找。┃"<<endl; cout<<"┃2---------------點(diǎn)菜。┃"<<endl;cout<<"┃┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl; cout<<endl;cout<<"━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━"<<endl; cin>>q; if(q==0)//顯示菜單里所有的菜名 { cout<<"-------------------------------菜單---------------------------"<<endl; cout<<"菜的編號(hào)菜名類別單價(jià)/元"<<endl; for(j=0;j<12;j++) food[j].menudisplay(); cout<<"-------------------------------------------------------------"<<endl; }if(q==1)//在菜單里按類查找 { cout<<"1--------------炒菜"<<endl; cout<<"2--------------炒飯"<<endl; cout<<"3--------------面類"<<endl;cin>>z; if(z>3) { system("cls"); cout<<"請(qǐng)輸入正確序號(hào)"<<endl; }switch(z) { case1://輸出炒菜類 for(j=0;j<40;j++) { if(food[j].returnkind()=="炒菜") food[j].menudisplay(); } break; case2: //輸出炒飯類 for(j=0;j<40;j++) {if(food[j].returnkind()=="炒飯") food[j].menudisplay(); } break; case3://輸出面類 for(j=0;j<40;j++) {if(food[j].returnkind()=="面類") food[j].menudisplay(); } break; } } if(q>2) { system("cls"); cout<<"請(qǐng)輸入正確序號(hào)"<<endl; }if(q==2)break;//退出進(jìn)入點(diǎn)菜環(huán)節(jié)} cout<<"你要點(diǎn)多少個(gè)菜?"<<endl;//點(diǎn)菜 cin>>i;array*a=newarray[i];//動(dòng)態(tài)創(chuàng)立i個(gè)array類的數(shù)組來儲(chǔ)存菜的編號(hào)和數(shù)量for(j=0;j<i;j++){ cout<<"請(qǐng)選擇第"<<j+1<<"個(gè)菜的編號(hào):"<<endl; cin>>id;//輸入每個(gè)菜的編號(hào)cout<<"請(qǐng)輸入數(shù)量:"<<endl; cin>>sort;//輸入每個(gè)菜的數(shù)量 a[j].getnum(id); a[j].getsort(sort); }for(;;)//對(duì)定的菜進(jìn)行操作 { cout<<""<<endl; cout<<""<<endl; cout<<"┏━━━━━━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃1--------增加點(diǎn)菜┃"<<endl; cout<<"┃2--------刪除一個(gè)菜┃"<<endl; cout<<"┃3--------輸出點(diǎn)菜信息并保存┃"<<endl;cout<<"┃4--------計(jì)算消費(fèi)金額┃"<<endl; cout<<"┃0--------退出系統(tǒng)┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━━━━━━┛"<<endl; cin>>b; if(b==1) { cout<<"你要增加多少個(gè)菜?"<<endl;//增加多少個(gè)菜 cin>>geshu; array*p=newarray[i]; for(j=0;j<i;j++) { p[j].getnum(a[j].returnnum()); p[j].getsort(a[j].returnsort()); } delete[]a; i=i+geshu; a=newarray[i]; for(j=0;j<i-geshu;j++) {a[j].getnum(p[j].returnnum()); a[j].getsort(p[j].returnsort()); }delete[]p;for(j=i-geshu;j<i;j++) { cout<<"請(qǐng)輸入增加的一個(gè)菜的編號(hào)和數(shù)量:"<<endl;cin>>id;cin>>sort; a[j].getnum(id); a[j].getsort(sort); } cout<<"增加點(diǎn)菜成功。"<<endl; }if(b==2) { cout<<"請(qǐng)輸入要?jiǎng)h除的菜的編號(hào):"<<endl;//刪除菜的操作 cin>>id; for(j=0;j<i;j++) { if(a[j].returnnum()==id) { m=j; for(j=m;j<i;j++) { a[j]=a[j+1]; } i--; cout<<"刪除點(diǎn)菜成功。"<<endl;break; } } if(j==i){ cout<<"你沒有點(diǎn)這個(gè)菜!!錯(cuò)誤。"<<endl; } } if(b==3)//輸出所點(diǎn)菜的信息 {charbaocun; cout<<"菜的編號(hào)菜名類別單價(jià)/元數(shù)量"<<endl; for(m=0;m<i;m++) { for(j=0;j<40;j++) { if(a[m].returnnum()==food[j].returnnum()) {food[j].getsort(a[m].returnsort()); food[j].selectdisplay(); } } }cout<<"是否保存并退出?"<<endl;cout<<"請(qǐng)按y(是)或n(否)"<<endl; cin>>baocun;if(baocun=='y'){ofstreamfile("select.txt");file<<"菜的編號(hào)菜名類別單價(jià)/元數(shù)量"<<endl;for(m=0;m<i;m++) { for(j=0;j<40;j++) { if(a[m].returnnum()==food[j].returnnum()) {file<<food[j].returnnum()<<""<<food[j].returnname()<<""<<food[j].returnkind()<< ""<<food[j].returnprice()<<""<<food[j].returnsort()<<endl; } } } file.close(); cout<<"已成功保存!"<<endl; break;} } if(b==4) { sum=0; cout<<"你是否擁有優(yōu)惠券?"<<endl;//優(yōu)惠券的操作 cout<<"0----------是"<<endl; cout<<"1----------否"<<endl; cin>>q;for(m=0;m<i;m++) { for(j=0;j<40;j++) { if(a[m].returnnum()==food[j].returnnum()) {food[j].getsort(a[m].returnsort()); sum=sum+food[j].returnprice()*food[j].returnsort();//計(jì)算所點(diǎn)菜的總金 } } } if(q>1){system("cls");cout<<"請(qǐng)輸入正確序號(hào)"<<endl;}//清屏函數(shù) if(q==0) { cout<<"請(qǐng)輸入優(yōu)惠券的優(yōu)惠金額(大于1)或者是優(yōu)惠的折扣比:"<<endl;//輸入優(yōu)惠券的折扣比 cin>>POINT; cout<<"打折后的總的金額是:"<<youhui(sum,POINT)<<"元"<<endl; } if(q==1) { cout<<"總的金額是:"<<sum<<"元"<<endl;} }if(b==0){system("cls");//退出cout<<endl;cout<<endl;cout<<endl;cout<<"*****************謝謝使用************謝謝使用****************謝謝使用****************"<<endl;cout<<endl;cout<<endl;break;}if(b>4){system("cls");cout<<"請(qǐng)輸入正確序號(hào)"<<endl;}}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國(guó)表面肌電測(cè)試系統(tǒng)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)一次鋰亞硫酰氯電池行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)動(dòng)態(tài)圖像粒度粒形分析系統(tǒng)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2023年全球及中國(guó)無人駕駛接駁小巴行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025小飯店員工的勞動(dòng)合同范本
- 出境旅游合同書
- 2025辦公室裝修合同書集錦
- 房產(chǎn)股權(quán)轉(zhuǎn)讓合同
- 存量房買賣合同合同范本
- 陸路貨物運(yùn)輸合同承運(yùn)人定義年
- 2023學(xué)年度第一學(xué)期高三英語(yǔ)備課組工作總結(jié)
- 臨建標(biāo)準(zhǔn)化圖集新版
- 安監(jiān)人員考核細(xì)則(2篇)
- 生活老師培訓(xùn)資料課件
- 2020年新概念英語(yǔ)第一冊(cè)lesson97-102單元檢測(cè)
- 腹主動(dòng)脈瘤(護(hù)理業(yè)務(wù)學(xué)習(xí))
- 注射用醋酸亮丙瑞林微球
- 大學(xué)生就業(yè)指導(dǎo)PPT(第2版)全套完整教學(xué)課件
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報(bào)
- envi二次開發(fā)素材包-idl培訓(xùn)
評(píng)論
0/150
提交評(píng)論