




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北华大学c+裸程实习报告餐厅点菜系统学院:电气信息工程学院专 业:电子信息工程班级:学号:姓名:指导教师:餐厅点菜系统一、 需求分析1、该程序对于餐厅菜单进行管理, 显示所有菜,顾客可以点餐厅的所有菜,也可以按类查找,自动生成菜单,自动计算消费金额,可以使用优惠券2、显示菜的编号、菜名、类别和单价3、菜可以按类查找:炒菜、炒饭和面类4、点菜a)增加点菜b)删除一个点菜c)输出点菜信息并保存d)计算消费金额优惠卷1)金额优惠2)打折优惠二、 设计实现该餐厅点菜系统共有两个类和一个构造函数 ,Cmenu类(菜的属性)和array类(菜的数 组),与函数youhui (计算有优惠卷时的价格)在Cme
2、nu类中,定义:name菜的编号,name菜名,price 菜的单价,kind 菜的种类,sort 菜的数量,函数get num 录入菜的编号函数实现:函数 get name实现录入菜的名字,函数 getprice实现录入菜的单价,函数 getk ind实现录入菜的类别,函数 getsort实现:录入所点菜的数量函数 menu display实现:菜谱显示,函数 selectdisplay实现:对所点的菜进行输出函数 return num实现返回菜的编号,函数 returnn ame实现:返回菜名,函数 returnprice实现返回菜的单价,函数 returnkind实现返回菜的类别,函数
3、returnsort实现返回菜的数量。在array 类中,定义:sort菜的类别,num菜的数量函数实现:函数get num实现:初始化num,函数 getsort实现:初始化sort,函数return num实现:返回 num函数returnsort实现:返回 sort主函数main的运行流程图:定义:name菜的编号,name菜名,price 菜的单价,kind 菜的种类,sort 菜的数量,餐厅点菜系统是在图书管理系统的基础上, 慢慢自己改进的, 其中增加点菜, 删除点菜, 输出菜单, 按类查询都是按照图书管理系统中增加图书, 删除图书,显示图书,按类查询中 改进的,其中最重要的是菜单的
4、录用,自己想了很多方法,最后用文本输入函数做的, 把菜 单完全的输入进去,还有一点新颖的地方,源于优惠劵的使用,不仅可以使用金额的优惠, 并且还会使用打折卷的优惠,虽然这里面的算法很简单,但是增加的程序的实用性。我感觉不足的是,应该有一个会进人后台的功能,进去可以增加菜单里的菜,删除菜, 更改类别和金额,更方便餐厅的管理者,当然进人的时候,加入管理员密码。餐厅点菜系统C+弋码#include#include #include#includeusing namespace std; class Cmenu/创建Cmenu类菜的属性 int num; / string name; / float
5、price;/string kind;/int sort; / public: void getnum(int i); /菜的编号菜名菜的单价菜的种类菜的数量void getname(string Name); / void getprice(float Price); / void getkind(string Kind); / void getsort(int SORT); / void menudisplay(); / void selectdisplay(); /float returnnum() / return num; string returnname() /录入菜的编号录入菜
6、的名字录入菜的单价录入菜的类别录入所点菜的数量菜谱显示对所点的菜进行输出返回菜的编号返回菜名 return name; float returnprice() /返回菜的单价 return price; string returnkind()int returnsort()void Cmenu:getnum(int i)/return kind; /return sort; ;/num=i;返回菜的类别返回菜的数量录入菜的编号函数void Cmenu:getname(string Name) / name=Name;void Cmenu:getprice(float Price) / pric
7、e=Price;void Cmenu:getkind(string Kind)/ kind=Kind; void Cmenu:getsort(int SORT) / sort=SORT; void Cmenu:menudisplay() /录入菜的名字录入菜的单价录入菜的类别录入所点菜的数量菜单的信息显示coutsetw(3)numsetw(22)namesetw(16)kindsetw(16)priceendl;void Cmenu:selectdisplay() / 对所点的菜进行输出coutsetw(3)numsetw(24)namesetw(16)kindsetw(16)pricese
8、tw(19)sort1.0) sum=sum-point; if(point=1.0)sum=sum*point; return sum;class array/public: void getnum(int NUM); / void getsort(int SORT); / int returnnum() /创建一个 array 数组初始化num的函数初始化 sort 的函数返回num的函数 return num; int returnsort()/返回 sort 的函数return sort; private:int sort,num; ;void array:getnum(int NUM
9、)初始化num的函数体void array:getsort(int SORT)初始化 sort 的函数体void main();/num=NUM;/sort=SORT;/主函数int i,id,m,q,z,sort,b;char j;int geshu;int NUM;string NAME,KIND;float PRICE,POINT,sum=0;Cmenu food40;/创建Cmenu类的对象数组ifstream f1(menu.txt); /文件输入菜单信息for(j=0;jNUM;f1KIND;f1NAME;f1PRICE;foodj.getnum(NUM);foodj.getkin
10、d(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);coutfood2.getkind( 炒菜 );food2.getname( 香辣肉丝 );food2.getprice(15);food3.getnum(4);foo
11、d3.getkind( 炒菜 );food3.getname( 锅包肉 );food3.getprice(15); food4.getnum(5);food4.getkind( 炒饭 ); food4.getname( 蛋炒饭 );food4.getprice(5); food5.getnum(6);food5.getkind( 炒饭 ); food5.getname( 扬州炒饭 );food5.getprice(6); food6.getnum(7);food6.getkind( 炒饭 ); food6.getname( 火腿炒饭 );food6.getprice(6); food7.get
12、num(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
13、);food11.getnum(12);food11.getkind(面类 );food11.getname( 手擀面 );food11.getprice(6);f1.close();*欢迎光临本店一 * * * *endl; / 菜单while(1)cout * -coutcoutcoutcoutcoutcoutcoutcoutcout - *-coutcout-if(q=1)- endl;coutendl;endl;IIendl;Iendl;0- 显示菜单里所有的菜的信息 Iendl;1-在菜单里按类查找。Iendl;2-点菜。Iendl;Iendl;endl; coutendl;- q;
14、if(q=0) / 显示菜单里所有的菜名cout- 菜单-endl;菜的编号菜名类别endl;for(j=0;j12;j+)foodj.menudisplay();-endl;/cout1-cout2-coutz;if(z3)system(cls);cout 请输入正确序号单价 / 元在菜单里按类查找炒菜 endl;炒饭 endl;面类 endl;endl;switch(z)case 1: / 输出炒菜类 for(j=0;j40;j+) if(foodj.returnkind()= 炒菜 ) foodj.menudisplay(); break;case 2: / 输出炒饭类 for(j=0;
15、j40;j+) if(foodj.returnkind()= 炒饭 ) foodj.menudisplay();break;case 3: /输出面类for(j=0;j2)system(cls);cout 请输入正确序号 endl;if(q=2) break; / 退出进入点菜环节cout 你要点多少个菜 ?i;array *a=new arrayi ; / 动态创建 i 个 array 类的数组来储存菜的编号和数量for(j=0;ji;j+) cout 请选择第 j+1 个菜的编号 :id; / 输入每个菜的编号 cout 请输入数量 :sort; / 输入每个菜的数量 aj.getnum(
16、id);aj.getsort(sort);for(;) / 对定的菜进行操作coutendl;coutendl;COUt1 - -1e ndl;COut|endl;COut| endl;cout|1-增加点菜|endl;cout|2-删除一个菜|endl;cout|3-输出点菜信息并保存|endl;cout|4-计算消费金额|endl;cout|0-退出系统|endl;cout| endl;cout| endl;coutb;if(b=1)cout 你要增加多少个菜? geshu;array *p=new arrayi;for(j=0;ji;j+)pj.getnum(aj.returnnum()
17、;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 请输入增加的一个菜的编号和数量: id;cinsort;aj.getnum(id);aj.getsort(sort);cout 增加点菜成功。 endl;if(b=2)cout 请输入要删除的菜的编号: id;for(j=0;ji;j+)if(aj.returnnu
18、m()=id)m=j;for(j=m;ji;j+)aj=aj+1;i-;cout 删除点菜成功。 endl;break;coutif(j=i)你没有点这个菜! !错误。 endl;if(b=3)cout 菜的编号元/ 输出所点菜的信息 char baocun;菜名 类别数量 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(否)ba
19、ocun;if(baocun=y) ofstream file(select.txt);file 菜的编号 菜名 类别单价 /元数量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 你是否拥有优
20、惠券? endl; / 优惠券的操作cout0 - 是 endl;cout1 - 否 q;for(m=0;mi;m+)for(j=0;j1) system(cls);cout 请输入正确序号 endl; / 清 屏函数 if(q=0) cout 请输入优惠券的优惠金额 ( 大于 1) 或者是优惠的折扣比:POINT;cout 打折后的总的金额是: youhui(sum,POINT) 元 endl;cout*coutendl;*谢谢使用*谢谢使用*endl;if(q=1)cout总的金额是:sum元endl;if(b=0)system(cls); /退出coutendl;coutendl;cou
21、tendl;cout4) system(cls);cout请输入正确序号 endl;实习心得通过这次C+实习, 我确实学到了许多方面的知识, 不仅仅包含课本上现有的基础知 识点, 更重要的是亲自实践, 动手操作编写程序以及程序的调试。 在这期间锻炼了我的动手 能力,开拓了思维,更培养了独立思考问题的能力。因此我才有了以下六点心得和体会:第一: 不管做任何事都要有勇气, 不要对不可预知的事说不, 要知道只有不恐惧才会有 收获。 C + +程序编写的时候比较复杂, 而且内容也比较多, 所以我们不应该被这种问题吓 到,只要我们认真思考,就可以发现他其实并不是我们想象的那么难!第二:要记得做任何事都要认真,粗心可真是吃大亏。尤其是在做C+实验的时候,敲错一个字母甚至是一个标点符号,就难以建立,难以运行。那可真是惨状啊!老师早已做下 一步,可能你还停留在原地,跟不上老师的进程,耽误实习任务,所以要记得认真,这样可 以接近成功!第三:要多思考,虽然老师已将代码原本托出,但我们也要思考,写这一步的作用,能实现什么功能,在哪个部分增加变量,哪个部分增加函数,构造函数的加入可以增添什么,都是我们应该考虑的。如果真的从中有所得, 自己独立思考出来, 那就是自己的东西, 自己 可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学三年级下册数学实践活动计划
- 2025年人力资源经理竞聘面试指南与模拟题详解
- 2025年物理治疗康复设备项目申请报告模板
- 2026届重庆市云阳江口中学高二化学第一学期期末复习检测试题含答案
- 广东省深圳市宝安区2024-2025学年高二上学期期末调研测试物理试题(解析版)
- 2025年药物临床前研究服务项目申请报告范文
- 政府政务一体化平台开发及应用解决方案
- 三年级体育校本课程实施计划
- 2025年防疫先锋选拔公共卫生领域笔试预测试题及答案
- (2025年标准)股份合资协议书
- 2023砌体结构后锚固技术规程
- 子宫内膜癌医师教学查房市公开课一等奖课件省赛课获奖课件
- 膝痹中医护理方案效果总结分析报告
- 铸造基础知识及常见铸造缺陷简介演示
- 中式烹调师(高级技师考试资料)
- 仓储技术与库存理论简论
- 日地空间灾害性天气的发生发展和预报研究课件
- 西安大唐不夜城的项目整体推广的策略提案的报告课件
- 可下载打印的公司章程
- 少先队辅导员工作记录表(共7页)
- 公开课教学评价表
评论
0/150
提交评论