




免費(fèi)預(yù)覽已結(jié)束,剩余20頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
北華大學(xué)C+課程實(shí)習(xí)報告餐廳點(diǎn)菜系統(tǒng) 學(xué) 院:電氣信息工程學(xué)院 專 業(yè):電子信息工程 班 級: 學(xué) 號: 姓 名: 指導(dǎo)教師: 餐廳點(diǎn)菜系統(tǒng)一、 需求分析1、 該程序?qū)τ诓蛷d菜單進(jìn)行管理,顯示所有菜,顧客可以點(diǎn)餐廳的所有菜,也可以按類查找,自動生成菜單,自動計算消費(fèi)金額,可以使用優(yōu)惠劵2、 顯示菜的編號、菜名、類別和單價3、 菜可以按類查找:炒菜、炒飯和面類4、 點(diǎn)菜a)增加點(diǎn)菜b)刪除一個點(diǎn)菜c)輸出點(diǎn)菜信息并保存d)計算消費(fèi)金額 優(yōu)惠卷 1)金額優(yōu)惠 2)打折優(yōu)惠二、 設(shè)計實(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ù)實(shí)現(xiàn):函數(shù) getname 實(shí)現(xiàn):錄入菜的名字,函數(shù) getprice 實(shí)現(xiàn):錄入菜的單價,函數(shù) getkind 實(shí)現(xiàn):錄入菜的類別,函數(shù) getsort 實(shí)現(xiàn):錄入所點(diǎn)菜的數(shù)量,函數(shù) menudisplay 實(shí)現(xiàn):菜譜顯示, 函數(shù)selectdisplay 實(shí)現(xiàn):對所點(diǎn)的菜進(jìn)行輸出,函數(shù) returnnum 實(shí)現(xiàn):返回菜的編號,函數(shù) returnname 實(shí)現(xiàn):返回菜名,函數(shù) returnprice 實(shí)現(xiàn):返回菜的單價,函數(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)菜array類菜單顯示menudisplay()()按類查找returnkind()201顯示界面選擇操作定義變量:Int sort,geshu,NUMString NAME,KIND文件輸入菜單信息f1(“menu.txt”)開始三、 測試結(jié)果首頁:菜的信息:按類查找:炒菜炒飯面類點(diǎn)菜菜的信息:增加點(diǎn)菜:刪除點(diǎn)菜:計算消費(fèi)金額:1、沒有擁有優(yōu)惠卷2、 擁有優(yōu)惠卷:a)20元的優(yōu)惠卷b) 0.85折優(yōu)惠卷退出系統(tǒng):四、 結(jié)論及需改進(jìn)的問題餐廳點(diǎn)菜系統(tǒng)是在圖書管理系統(tǒng)的基礎(chǔ)上,慢慢自己改進(jìn)的,其中增加點(diǎn)菜,刪除點(diǎn)菜,輸出菜單,按類查詢都是按照圖書管理系統(tǒng)中增加圖書,刪除圖書,顯示圖書,按類查詢中改進(jìn)的,其中最重要的是菜單的錄用,自己想了很多方法,最后用文本輸入函數(shù)做的,把菜單完全的輸入進(jìn)去,還有一點(diǎn)新穎的地方,源于優(yōu)惠劵的使用,不僅可以使用金額的優(yōu)惠,并且還會使用打折卷的優(yōu)惠,雖然這里面的算法很簡單,但是增加的程序的實(shí)用性。我感覺不足的是,應(yīng)該有一個會進(jìn)人后臺的功能,進(jìn)去可以增加菜單里的菜,刪除菜,更改類別和金額,更方便餐廳的管理者,當(dāng)然進(jìn)人的時候,加入管理員密碼。餐廳點(diǎn)菜系統(tǒng)C+代碼#include #include #include#include using namespace std;class Cmenu /創(chuàng)建Cmenu類 菜的屬性 int num; /菜的編號 string name; /菜名 float price; /菜的單價 string kind; /菜的種類 int sort; /菜的數(shù)量public: void getnum(int i); /錄入菜的編號 void getname(string Name); /錄入菜的名字 void getprice(float Price); /錄入菜的單價 void getkind(string Kind); /錄入菜的類別 void getsort(int SORT); /錄入所點(diǎn)菜的數(shù)量 void menudisplay(); /菜譜顯示 void selectdisplay(); /對所點(diǎn)的菜進(jìn)行輸出 float returnnum() /返回菜的編號 return num; string returnname() /返回菜名 return name; float returnprice() /返回菜的單價 return price; string returnkind() /返回菜的類別 return kind; int returnsort() /返回菜的數(shù)量 return sort; ;void Cmenu:getnum(int i) /錄入菜的編號函數(shù) num=i;void Cmenu:getname(string Name) /錄入菜的名字 name=Name;void Cmenu:getprice(float Price) /錄入菜的單價 price=Price;void Cmenu:getkind(string Kind) /錄入菜的類別 kind=Kind; void Cmenu:getsort(int SORT) / 錄入所點(diǎn)菜的數(shù)量 sort=SORT; void Cmenu:menudisplay() /菜單的信息顯示coutsetw(3)numsetw(22)namesetw(16)kindsetw(16)priceendl; void Cmenu:selectdisplay() /對所點(diǎn)的菜進(jìn)行輸出coutsetw(3)numsetw(24)namesetw(16)kindsetw(16)pricesetw(19)sort1.0) sum=sum-point;if(point=1.0)sum=sum*point; return sum;class array /創(chuàng)建一個array數(shù)組 public:void getnum(int NUM); /初始化num的函數(shù) void getsort(int SORT); /初始化sort的函數(shù) int returnnum() /返回num的函數(shù) return num; int returnsort() /返回sort的函數(shù) return sort; private: int sort,num;void array:getnum(int NUM) /初始化num的函數(shù)體 num=NUM;void array:getsort(int SORT) /初始化sort的函數(shù)體sort=SORT;void main() /主函數(shù)int i,id,m,q,z,sort,b;char j; int geshu;int NUM; string NAME,KIND;float PRICE,POINT,sum=0;Cmenu food40; /創(chuàng)建Cmenu類的對象數(shù)組 ifstream f1(menu.txt); /文件輸入菜單信息 for(j=0;jNUM;f1KIND;f1NAME;f1PRICE; foodj.getnum(NUM);foodj.getkind(KIND); foodj.getname(NAME); foodj.getprice(PRICE);food0.getnum(1);food0.getkind(炒菜); food0.getname(麻辣豆腐); food0.getprice(8);food1.getnum(2);food1.getkind(炒菜); food1.getname(燒茄子); food1.getprice(10);food2.getnum(3);food2.getkind(炒菜); food2.getname(香辣肉絲); food2.getprice(15);food3.getnum(4);food3.getkind(炒菜); food3.getname(鍋包肉); food3.getprice(15);food4.getnum(5);food4.getkind(炒飯); food4.getname(蛋炒飯); food4.getprice(5);food5.getnum(6);food5.getkind(炒飯); food5.getname(揚(yáng)州炒飯); food5.getprice(6);food6.getnum(7);food6.getkind(炒飯); food6.getname(火腿炒飯); food6.getprice(6);food7.getnum(8);food7.getkind(炒飯); food7.getname(魷魚炒飯); food7.getprice(7);food8.getnum(9);food8.getkind(面類); food8.getname(刀削面); food8.getprice(5);food9.getnum(10);food9.getkind(面類); food9.getname(羊肉面); food9.getprice(8);food10.getnum(11);food10.getkind(面類); food10.getname(熱干面); food10.getprice(5);food11.getnum(12);food11.getkind(面類); food11.getname(手搟面); food11.getprice(6);f1.close(); cout*歡迎光臨本店*endl; /菜單 while(1) cout*endl;coutendl; cout endl; cout endl; cout endl; cout 0-顯示菜單里所有的菜的信息 endl;cout 1-在菜單里按類查找。 endl;cout 2-點(diǎn)菜。 endl; cout endl; cout endl; coutendl; cout*q; if(q=0) /顯示菜單里所有的菜名 cout-菜單-endl; cout菜的編號 菜名 類別 單價/元 endl; for(j=0;j12;j+) foodj.menudisplay(); cout-endl; if(q=1) / 在菜單里按類查找 cout1-炒菜endl; cout2-炒飯endl; cout3-面類z; if(z3) system(cls);cout請輸入正確序號endl; switch(z) case 1: /輸出炒菜類 for(j=0;j40;j+) if(foodj.returnkind()=炒菜) foodj.menudisplay(); break; case 2: /輸出炒飯類 for(j=0;j40;j+) if(foodj.returnkind()=炒飯) foodj.menudisplay();break; case 3: /輸出面類 for(j=0;j2) system(cls); cout請輸入正確序號endl; if(q=2) break; /退出進(jìn)入點(diǎn)菜環(huán)節(jié) cout你要點(diǎn)多少個菜?i; array *a=new arrayi ; /動態(tài)創(chuàng)建i個array類的數(shù)組來儲存菜的編號和數(shù)量 for(j=0;ji;j+) cout請選擇第j+1個菜的編號:id; /輸入每個菜的編號 cout請輸入數(shù)量:sort; /輸入每個菜的數(shù)量 aj.getnum(id); aj.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 b; if(b=1) cout你要增加多少個菜?geshu; array *p=new arrayi; for(j=0;ji;j+) pj.getnum(aj.returnnum(); pj.getsort(aj.returnsort(); delete a;i=i+geshu;a=new arrayi;for(j=0;ji-geshu;j+) aj.getnum(pj.returnnum(); aj.getsort(pj.returnsort(); delete p; for(j=i-geshu;ji;j+) cout請輸入增加的一個菜的編號和數(shù)量:id; cinsort; aj.getnum(id); aj.getsort(sort); cout增加點(diǎn)菜成功。endl; if(b=2) cout請輸入要刪除的菜的編號:id; for(j=0;ji;j+) if(aj.returnnum()=id) m=j; for(j=m;ji;j+) aj=aj+1; i-; cout刪除點(diǎn)菜成功。endl;break; if(j=i) cout你沒有點(diǎn)這個菜!錯誤。endl; if(b=3) /輸出所點(diǎn)菜的信息 char baocun; cout菜的編號 菜名 類別 單價/元 數(shù)量endl; for(m=0;mi;m+) for(j=0;j40;j+) if(am.returnnum()=foodj.returnnum() foodj.getsort(am.returnsort(); foodj.selectdisplay(); cout是否保存并退出?endl; cout請按y(是)或n(否)baocun; if(baocun=y) ofstream file(select.txt); file菜的編號 菜名 類別 單價/元 數(shù)量endl; for(m=0;mi;m+) for(j=0;j40;j+) if(am.returnnum()=foodj.returnnum() filefoodj.returnnum() foodj.returnname() foodj.returnkind() foodj.returnprice() foodj.returnsort()endl; file.close();cout已成功保存!endl;break; if(b=4) sum=0; cout你是否擁有優(yōu)惠券?endl; /優(yōu)惠券的操作 cout0-是endl; cout1-否q; for(m=0;mi;m+) for(j=0;j1) system(cls);cout請輸入正確序號endl; /清屏函數(shù) if(q=0) cout請輸入優(yōu)惠券的優(yōu)惠金額(大于1)或者是優(yōu)惠的折扣比:POINT; cout打折后的總的金額是:youhui(sum,POINT)元endl; if(q=1) cout總的金額是:sum元endl; if(b=0)system(cls); /退出coutendl;coutendl;coutendl; cout*謝謝使用*謝謝使用*謝謝使用*endl; coutendl; cout4) system(cls);cout請輸入正確序號endl; 實(shí)習(xí)心得通過這次實(shí)習(xí),我確實(shí)學(xué)到了許多方面的知識,不僅僅包含課本上現(xiàn)有的基礎(chǔ)知識點(diǎn),更重要的是親自實(shí)踐,動手操作編寫程序以及程序的調(diào)試。在這期間鍛煉了我的動手能力,開拓了思維,更培養(yǎng)了獨(dú)立思考問題的能力。因此我才有了以下六點(diǎn)心得和體會:第一:不管做任何事都要有勇氣,不要對不可預(yù)知的事說不,要知道只有不恐懼才會有收獲。程序編寫的時候比較復(fù)雜,而且內(nèi)容也比較多,所以我們不應(yīng)該被這種問題嚇到,只要我們認(rèn)真思考,就可以發(fā)現(xiàn)他其實(shí)并不是我們想象的那么難!第二:要記得做任何事都要認(rèn)真,粗心可真是吃大虧。尤其是在做C+實(shí)驗(yàn)的時候,敲錯一個字母甚至是一個標(biāo)點(diǎn)符號,就難以建立,難以運(yùn)行。那可真是慘狀?。±蠋熢缫炎鱿乱徊?,可能你還停留在原地,跟不上老師的進(jìn)程,耽誤實(shí)習(xí)任務(wù),所以要記得認(rèn)真,這樣可以接近成功!第三:要多思考,雖然老師已將代碼原本托出,但我們也要思考,寫這一步的作用,能實(shí)現(xiàn)什么功能,在哪個
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息科技 課件 六年級下冊 第1課 關(guān)系運(yùn)算
- 2025審計學(xué)第三章試題及答案
- 2025審計相關(guān)面試題及答案
- 2025年酒店成套家具項(xiàng)目申請報告模板
- 2025審計生面試題目及答案
- 院感培訓(xùn)考試試題及答案
- 2025審計局相關(guān)面試題目及答案
- 2025審計基礎(chǔ)末試題及答案
- 愛嬰醫(yī)院考試題及答案(護(hù)士)
- 被公司辭退處理方案(3篇)
- 化學(xué)品作業(yè)場所安全警示標(biāo)志大全
- 高考英語核心高頻688詞
- KKS標(biāo)識系統(tǒng)編碼說明
- 血液內(nèi)科病例討論
- 五年(2020-2024)高考語文真題分類匯編(全國)專題07 古代詩歌閱讀(詩)(教師卷)
- 外泌體在中醫(yī)藥防治糖尿病中的機(jī)制探索百度文庫
- 工地臨建房合同范本
- 幼兒園美工區(qū)材料投放培訓(xùn)
- 2024年江蘇南京市玄武區(qū)社區(qū)工作者招聘筆試沖刺題(帶答案解析)
- 《電氣制圖與CAD》課程標(biāo)準(zhǔn)
- 多模態(tài)感知與融合技術(shù)在智能交通中的應(yīng)用
評論
0/150
提交評論