C++餐廳管理系統(tǒng)_第1頁
C++餐廳管理系統(tǒng)_第2頁
C++餐廳管理系統(tǒng)_第3頁
C++餐廳管理系統(tǒng)_第4頁
C++餐廳管理系統(tǒng)_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

北華大學(xué)C++課程實習(xí)報告餐廳點(diǎn)菜系統(tǒng)學(xué)院:電氣信息工程學(xué)院專業(yè):電子信息工程班級:學(xué)號:姓名:指導(dǎo)教師:餐廳點(diǎn)菜系統(tǒng)需求分析該程序?qū)τ诓蛷d菜單進(jìn)行管理,顯示所有菜,顧客可以點(diǎn)餐廳的所有菜,也可以按類查找,自動生成菜單,自動計算消費(fèi)金額,可以使用優(yōu)惠劵顯示菜的編號、菜名、類別和單價菜可以按類查找:炒菜、炒飯和面類點(diǎn)菜a)增加點(diǎn)菜b)刪除一個點(diǎn)菜c)輸出點(diǎn)菜信息并保存d)計算消費(fèi)金額優(yōu)惠卷1)金額優(yōu)惠2)打折優(yōu)惠設(shè)計實現(xiàn)該餐廳點(diǎn)菜系統(tǒng)共有兩個類和一個構(gòu)造函數(shù),Cmenu類(菜的屬性)和array類(菜的數(shù)組),與函數(shù)youhui〔計算有優(yōu)惠卷時的價格〕在Cmenu類中,定義:name菜的編號,name菜名,price菜的單價,kind菜的種類,sort菜的數(shù)量,函數(shù)getnum錄入菜的編號函數(shù)實現(xiàn):函數(shù)getname實現(xiàn):錄入菜的名字,函數(shù)getprice實現(xiàn):錄入菜的單價,函數(shù)getkind實現(xiàn):錄入菜的類別,函數(shù)getsort實現(xiàn):錄入所點(diǎn)菜的數(shù)量,函數(shù)menudisplay實現(xiàn):菜譜顯示,函數(shù)selectdisplay實現(xiàn):對所點(diǎn)的菜進(jìn)行輸出,函數(shù)returnnum實現(xiàn):返回菜的編號,函數(shù)returnname實現(xiàn):返回菜名,函數(shù)returnprice實現(xiàn):返回菜的單價,函數(shù)returnkind實現(xiàn):返回菜的類別,函數(shù)returnsort實現(xiàn):返回菜的數(shù)量。在array類中,定義:sort菜的類別,num菜的數(shù)量函數(shù)實現(xiàn):函數(shù)getnum實現(xiàn):初始化num,函數(shù)getsort實現(xiàn):初始化sort,函數(shù)returnnum實現(xiàn):返回num,函數(shù)returnsort實現(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〞)開始測試結(jié)果首頁:菜的信息:按類查找:炒菜炒飯面類點(diǎn)菜菜的信息:增加點(diǎn)菜:刪除點(diǎn)菜:計算消費(fèi)金額:1、沒有擁有優(yōu)惠卷擁有優(yōu)惠卷:a〕20元的優(yōu)惠卷0.85折優(yōu)惠卷退出系統(tǒng):結(jié)論及需改良的問題餐廳點(diǎn)菜系統(tǒng)是在圖書管理系統(tǒng)的根底上,慢慢自己改良的,其中增加點(diǎn)菜,刪除點(diǎn)菜,輸出菜單,按類查詢都是按照圖書管理系統(tǒng)中增加圖書,刪除圖書,顯示圖書,按類查詢中改良的,其中最重要的是菜單的錄用,自己想了很多方法,最后用文本輸入函數(shù)做的,把菜單完全的輸入進(jìn)去,還有一點(diǎn)新穎的地方,源于優(yōu)惠劵的使用,不僅可以使用金額的優(yōu)惠,并且還會使用打折卷的優(yōu)惠,雖然這里面的算法很簡單,但是增加的程序的實用性。我感覺缺乏的是,應(yīng)該有一個會進(jìn)人后臺的功能,進(jìn)去可以增加菜單里的菜,刪除菜,更改類別和金額,更方便餐廳的管理者,當(dāng)然進(jìn)人的時候,參加管理員密碼。餐廳點(diǎn)菜系統(tǒng)C++代碼#include<iostream>#include<iomanip>#include<fstream>#include<string>usingnamespacestd;classCmenu//創(chuàng)立Cmenu類菜的屬性{ intnum;//菜的編號stringname;//菜名floatprice;//菜的單價stringkind;//菜的種類intsort;//菜的數(shù)量public: voidgetnum(inti);//錄入菜的編號 voidgetname(stringName);//錄入菜的名字 voidgetprice(floatPrice);//錄入菜的單價 voidgetkind(stringKind);//錄入菜的類別 voidgetsort(intSORT);//錄入所點(diǎn)菜的數(shù)量 voidmenudisplay();//菜譜顯示 voidselectdisplay();//對所點(diǎn)的菜進(jìn)行輸出 floatreturnnum()//返回菜的編號 {returnnum;} stringreturnname()//返回菜名 {returnname;} floatreturnprice()//返回菜的單價{returnprice;} stringreturnkind()//返回菜的類別 {returnkind;} intreturnsort()//返回菜的數(shù)量 {returnsort;}};voidCmenu::getnum(inti)//錄入菜的編號函數(shù){ num=i;}voidCmenu::getname(stringName)//錄入菜的名字{ name=Name;}voidCmenu::getprice(floatPrice)//錄入菜的單價{ 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()//對所點(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ù)計算有優(yōu)惠卷時的價格{ if(point>1.0) { sum=sum-point; } if(point<=1.0) { sum=sum*point; }returnsum;}classarray//創(chuàng)立一個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類的對象數(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<<"菜的編號菜名類別單價/元"<<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<<"請輸入正確序號"<<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<<"請輸入正確序號"<<endl; }if(q==2)break;//退出進(jìn)入點(diǎn)菜環(huán)節(jié)} cout<<"你要點(diǎn)多少個菜?"<<endl;//點(diǎn)菜 cin>>i;array*a=newarray[i];//動態(tài)創(chuàng)立i個array類的數(shù)組來儲存菜的編號和數(shù)量for(j=0;j<i;j++){ cout<<"請選擇第"<<j+1<<"個菜的編號:"<<endl; cin>>id;//輸入每個菜的編號cout<<"請輸入數(shù)量:"<<endl; cin>>sort;//輸入每個菜的數(shù)量 a[j].getnum(id); a[j].getsort(sort); }for(;;)//對定的菜進(jìn)行操作 { cout<<""<<endl; cout<<""<<endl; cout<<"┏━━━━━━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃1--------增加點(diǎn)菜┃"<<endl; cout<<"┃2--------刪除一個菜┃"<<endl; cout<<"┃3--------輸出點(diǎn)菜信息并保存┃"<<endl;cout<<"┃4--------計算消費(fèi)金額┃"<<endl; cout<<"┃0--------退出系統(tǒng)┃"<<endl; cout<<"┃┃"<<endl; cout<<"┃┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━━━━━━┛"<<endl; cin>>b; if(b==1) { cout<<"你要增加多少個菜?"<<endl;//增加多少個菜 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<<"請輸入增加的一個菜的編號和數(shù)量:"<<endl;cin>>id;cin>>sort; a[j].getnum(id); a[j].getsort(sort); } cout<<"增加點(diǎn)菜成功。"<<endl; }if(b==2) { cout<<"請輸入要刪除的菜的編號:"<<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)這個菜!!錯誤。"<<endl; } } if(b==3)//輸出所點(diǎn)菜的信息 {charbaocun; cout<<"菜的編號菜名類別單價/元數(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<<"請按y(是)或n(否)"<<endl; cin>>baocun;if(baocun=='y'){ofstreamfile("select.txt");file<<"菜的編號菜名類別單價/元數(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();//計算所點(diǎn)菜的總金 } } } if(q>1){system("cls");cout<<"請輸入正確序號"<<endl;}//清屏函數(shù) if(q==0) { cout<<"請輸入優(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<<"請輸入正確序號"<<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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論