C++餐厅管理系统范本模板.docx
- 文档编号:18471121
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:31
- 大小:259.77KB
C++餐厅管理系统范本模板.docx
《C++餐厅管理系统范本模板.docx》由会员分享,可在线阅读,更多相关《C++餐厅管理系统范本模板.docx(31页珍藏版)》请在冰点文库上搜索。
C++餐厅管理系统范本模板
北华大学
C++课程实习报告
餐厅点菜系统
学院:
电气信息工程学院
专业:
电子信息工程
班级:
学号:
姓名:
指导教师:
餐厅点菜系统
一、需求分析
1、该程序对于餐厅菜单进行管理,显示所有菜,顾客可以点餐厅的所有菜,也可以按类查找,自动生成菜单,自动计算消费金额,可以使用优惠劵
2、显示菜的编号、菜名、类别和单价
3、菜可以按类查找:
炒菜、炒饭和面类
4、点菜
a)增加点菜
b)删除一个点菜
c)输出点菜信息并保存
d)计算消费金额
优惠卷
1)金额优惠
2)打折优惠
二、设计实现
该餐厅点菜系统共有两个类和一个构造函数,Cmenu类(菜的属性)和array类(菜的数组),与函数youhui(计算有优惠卷时的价格)
在Cmenu类中,
定义:
name菜的编号,name菜名,price菜的单价,kind菜的种类,sort菜的数量,函数getnum录入菜的编号
函数实现:
函数getname实现:
录入菜的名字,
函数getprice实现:
录入菜的单价,
函数getkind实现:
录入菜的类别,
函数getsort实现:
录入所点菜的数量,
函数menudisplay实现:
菜谱显示,
函数selectdisplay实现:
对所点的菜进行输出,
函数returnnum实现:
返回菜的编号,
函数returnname实现:
返回菜名,
函数returnprice实现:
返回菜的单价,
函数returnkind实现:
返回菜的类别,
函数returnsort实现:
返回菜的数量。
在array类中,
定义:
sort菜的类别,num菜的数量
函数实现:
函数getnum实现:
初始化num,
函数getsort实现:
初始化sort,
函数returnnum实现:
返回num,
函数returnsort实现:
返回sort
主函数main的运行流程图:
三、测试结果
首页:
菜的信息:
按类查找:
炒菜
炒饭
面类
点菜
菜的信息:
增加点菜:
删除点菜:
计算消费金额:
1、没有拥有优惠卷
2、拥有优惠卷:
a)20元的优惠卷
b)0。
85折优惠卷
退出系统:
四、结论及需改进的问题
餐厅点菜系统是在图书管理系统的基础上,慢慢自己改进的,其中增加点菜,删除点菜,输出菜单,按类查询都是按照图书管理系统中增加图书,删除图书,显示图书,按类查询中改进的,其中最重要的是菜单的录用,自己想了很多方法,最后用文本输入函数做的,把菜单完全的输入进去,还有一点新颖的地方,源于优惠劵的使用,不仅可以使用金额的优惠,并且还会使用打折卷的优惠,虽然这里面的算法很简单,但是增加的程序的实用性。
我感觉不足的是,应该有一个会进人后台的功能,进去可以增加菜单里的菜,删除菜,更改类别和金额,更方便餐厅的管理者,当然进人的时候,加入管理员密码.
餐厅点菜系统C++代码
#include〈iostream>
#include〈iomanip>
#include〈fstream〉
#include usingnamespacestd; classCmenu//创建Cmenu类菜的属性 { intnum;//菜的编号 stringname;//菜名 floatprice;//菜的单价 stringkind;//菜的种类 intsort;//菜的数量 public: voidgetnum(inti);//录入菜的编号 voidgetname(stringName);//录入菜的名字 voidgetprice(floatPrice);//录入菜的单价 voidgetkind(stringKind);//录入菜的类别 voidgetsort(intSORT);//录入所点菜的数量 voidmenudisplay();//菜谱显示 voidselectdisplay();//对所点的菜进行输出 floatreturnnum()//返回菜的编号 {returnnum;} stringreturnname()//返回菜名 {returnname;} floatreturnprice()//返回菜的单价 {returnprice;} stringreturnkind()//返回菜的类别 {returnkind;} intreturnsort()//返回菜的数量 {returnsort;} }; voidCmenu: : getnum(inti)//录入菜的编号函数 { num=i; } voidCmenu: : getname(stringName)//录入菜的名字 { name=Name; } voidCmenu: : getprice(floatPrice)//录入菜的单价 { price=Price; } voidCmenu: : getkind(stringKind)//录入菜的类别 { kind=Kind; } voidCmenu: : getsort(intSORT)//录入所点菜的数量 { sort=SORT; } voidCmenu: : menudisplay()//菜单的信息显示 { cout< } voidCmenu: : selectdisplay()//对所点的菜进行输出 { cout〈〈setw(3)< } floatyouhui(floatsum,floatpoint)//函数计算有优惠卷时的价格 { if(point>1。 0) { sum=sum-point; } if(point〈=1.0) { sum=sum*point; } returnsum; } classarray//创建一个array数组 { public: voidgetnum(intNUM);//初始化num的函数 voidgetsort(intSORT);//初始化sort的函数 intreturnnum()//返回num的函数 {returnnum;} intreturnsort()//返回sort的函数 {returnsort;} private: intsort,num; }; voidarray: : getnum(intNUM)//初始化num的函数体 { num=NUM; } voidarray: : getsort(intSORT)//初始化sort的函数体 { sort=SORT; } voidmain()//主函数 { inti,id,m,q,z,sort,b; charj; intgeshu; intNUM; stringNAME,KIND; floatPRICE,POINT,sum=0; Cmenufood[40];//创建Cmenu类的对象数组 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(”扬州炒饭"); 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〈〈”━*━*━*━*━*━*━*━*━*━*━*━欢迎光临本店━*━*━*━*━*━*━*━*━*━*━*"〈 while (1) { cout<〈”━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━”〈 cout< cout<<”┏━━━━━━━━━━━━━━━━━━━━━━━━┓"< cout〈<"┃┃"〈 cout〈〈"┃┃”〈〈endl; cout<<"┃0—-——-——---———--显示菜单里所有的菜的信息┃"〈 cout<〈”┃1-——-——--———-———在菜单里按类查找。 ┃”〈〈endl; cout〈<”┃2——-——---——-—-——点菜。 ┃"< cout〈〈”┃┃”〈 cout<〈”┗━━━━━━━━━━━━━━━━━━━━━━━━┛"〈〈endl; cout<〈endl; cout<<"━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━*━"< cin>〉q; if(q==0)//显示菜单里所有的菜名 { cout〈<"—---———-—--———-—-————-—---—--—-菜单--—-----—---—----—--———---—”<〈endl; cout<〈”菜的编号菜名类别单价/元"〈 for(j=0;j〈12;j++) food[j].menudisplay(); cout〈<"---—-—-—--—--—-—---——-——---—--—-————-——-—---—-—--—------—---—”〈 } if(q==1)//在菜单里按类查找 { cout〈〈”1—-——----——----炒菜"< cout<<"2—-—-—---—--———炒饭"〈 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〈<"请输入正确序号"< } if(q==2)break;//退出进入点菜环节 } cout〈<"你要点多少个菜? ”〈 cin〉>i; array*a=newarray[i];//动态创建i个array类的数组来储存菜的编号和数量 for(j=0;j { cout〈〈”请选择第"<〈j+1〈〈"个菜的编号: ”< cin〉〉id;//输入每个菜的编号 cout<〈”请输入数量: "〈〈endl; cin>〉sort;//输入每个菜的数量 a[j]。 getnum(id); a[j].getsort(sort); } for(;;)//对定的菜进行操作 { cout〈<"”< cout〈〈""< cout<〈"┏━━━━━━━━━━━━━━━━━━━━━┓”< cout<<"┃┃”〈 cout〈<"┃┃”< cout<〈"┃1--—--——-增加点菜┃"< cout<〈"┃2--——-——-删除一个菜┃”<〈endl; cout<〈"┃3—-—-——--输出点菜信息并保存┃"< cout<<"┃4——————-—计算消费金额┃”〈 cout〈〈"┃0—----———退出系统┃”〈〈endl; cout<〈”┃┃"< cout<〈"┃┃"< cout<〈"┗━━━━━━━━━━━━━━━━━━━━━┛”〈〈endl; cin〉>b; if(b==1) { cout〈<"你要增加多少个菜? ”<〈endl;//增加多少个菜 cin>>geshu; array*p=newarray[i]; for(j=0;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 { cout〈<”请输入增加的一个菜的编号和数量: "〈 cin〉>id; cin〉〉sort; a[j]。 getnum(id); a[j]。 getsort(sort); } cout〈<”增加点菜成功."< } if(b==2) { cout<<”请输入要删除的菜的编号: ”<〈endl;//删除菜的操作 cin>>id; for(j=0;j { if(a[j]。 returnnum()==id) { m=j; for(j=m;j〈i;j++) { a[j]=a[j+1]; } i-—; cout<〈”删除点菜成功。 "〈 } } if(j==i) { cout〈<"你没有点这个菜! ! 错误。 "<〈endl; } } if(b==3)//输出所点菜的信息 {charbaocun; cout<〈”菜的编号菜名类别单价/元数量"<〈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(否)"〈 cin〉>baocun; if(baocun=='y') {ofstreamfile(”select。 txt”); file〈<"菜的编号菜名类别单价/元数量"<〈endl; for(m=0;m { for(j=0;j〈40;j++) { if(a[m]。 returnnum()==food[j]。 returnnum()) {file〈〈food[j].returnnum()〈<""〈〈food[j]。 returnname()<<"”<〈food[j]。 returnkind()〈< "”〈 returnsort()〈 } } } file。 close(); cout<〈”已成功保存! "<〈endl; break;} } if(b==4){ sum=0; cout〈<"你是否拥有优惠券? ”<〈endl;//优惠券的操作 cout〈〈"0—-—---—--—是”〈 cout〈〈”1—-—---—-—-否”〈 cin>>q; for(m=0;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();//计算所点菜的总金 } } } if(q〉1){system("cls");cout〈〈"请输入正确序号"<〈endl;}//清屏函数 if(q==0) { cout<〈”请输入优惠券的优惠金额(大于1)或者是优惠的折扣比: "<〈endl;//输入优惠券的折扣比 cin>>POINT; cout〈<”打折后的总的金额是: "〈〈youhui(sum,POINT)〈<"元”<〈endl; } if(q==1) { cout〈<"总的金额是: ”〈 } if(b==0) {system("cls”);//退出 cout<〈endl; cout〈〈endl; cout< cout<<"*****************谢谢使用************谢谢使用****************谢谢使用****************”< cout〈〈endl; cout〈 break;} if(b〉4){system(”cls");cout〈<"请输入正确序号”〈 } } 实习心得 通过这次C++实习,我确实学到了许多方面的知识,不仅仅包含课本上现有的基础知识点,更重要的是亲自实践,动手操作编写程序以及程序的调试。 在这期间锻炼了我的动手能力,开拓了思维,更培养了独立思考问题的能力。 因此我才有了以下六点心得和体会: 第一: 不管做任何事都要有勇气,不要对不可预知的事说不,要知道只有不恐惧才会有收获。 C++程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 餐厅 管理 系统 范本 模板