C++课程设计自助点餐系统.docx

上传人:scccc 文档编号:13593500 上传时间:2022-01-19 格式:DOCX 页数:9 大小:15.33KB
返回 下载 相关 举报
C++课程设计自助点餐系统.docx_第1页
第1页 / 共9页
C++课程设计自助点餐系统.docx_第2页
第2页 / 共9页
C++课程设计自助点餐系统.docx_第3页
第3页 / 共9页
C++课程设计自助点餐系统.docx_第4页
第4页 / 共9页
C++课程设计自助点餐系统.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C++课程设计自助点餐系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计自助点餐系统.docx(9页珍藏版)》请在三一文库上搜索。

1、面向对象程序课程设计( 2014/2015 学年第一学期第 20 周)指导教师: 庄巧莉、杨东鹤班级:计算机科学与技术13( 1)学号:姓名:面向对象程序课程设计目录1、 题目2、 需求分析3、 系统结构图4、 类的设计5、 程序代码与说明6、 运行结果与分析7、 心得与体会一:题目自助点餐系统二:需求分析有一个小型餐厅,该餐厅提供即时就餐和外卖服务。现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。1 、根据顾客的选择正确打出账单2、正确统计出每一天的及时就餐和外卖的销售情况3、实现对餐厅菜式和价格的有效管理4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况三:系

2、统结构图 四:类的设计Client 类:客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息ClientManager类:客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单FeeManager类:用于记录就餐、外卖的销售费用,统计收入Food 类:餐厅食物的类,包含食物名称和价格FoodManager类:管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单MenuView 类:用于打印各种操作界面五:程序代码与说明#ifndef CLIENT#define CLIENT#include#includeusing nam

3、espace std;class Clientprivate:int number;etName()tnumitnumi*i.getPrice()endl;cout总价:ttfeeendl;char * Client:getName()return name;void Client:changNum()int n;int numss;coutn;cout您选择了 食物:(n-1)endl;coutnumss;fee += (numss - numn-1 )*(n-1);numn-1=numss;void Client:deleFood()int n;coutn;cout您选择了 食物:(n-1

4、)endl;fee -= (numn-1 )*(n-1);for(int i = n-1 ; i () ; i +)i=i+1;numi=numi+1;)()-1);)#ifndef CLIENTMANAGER#define CLIENTMANAGER#include#includeusing namespace std;#define MAX_CLIENT_NUM 60etType()=1)cout第+count单:clienti.getName()t 总价是: clienti.getFee()元t 就餐endlendl;if(strcmp(clienti.getName(),s)=0)th

5、 =count;)for(int i = 0; i clientNum ; i +)if(clienti.getType()=2)cout第+count单:clienti.getName()t 总价是: clienti.getFee()元t 外卖endlendl;if(strcmp(clienti.getName(),s)=0)th =count;)cout您当前排在第th单endl;coutendl;)void ClientManager:showAll()for(int i = 0 ; i clientNum ; i + )if(clienti.getType()=1)cout订单号:i+

6、1endl;clienti.showClientMessage();coutendl;)for(int i = 0 ; i clientNum ; i + )if(clienti.getType()=2)cout订单号:i+1endl;clienti.showClientMessage();coutendl;#ifndef FOOD#define FOOD class Foodprivate:char *name;etName()tfoodi.getPrice()endl;void FoodManager:changePrice()char *s;int code;s = new char20

7、;double p;coutcode;s = foodcode.getName();cout您选择了 食物:sendl;coutp;for(int i = 0; i total ; i +)if(strcmp(foodi.getName(),s)=0) foodi.setPrice(p);cout修改成功endl; return;cout没有这种食物,修改失败endl;void FoodManager:deleteFood()char *s;s = new char20;couts;for(int i = 0 ; i total ; i +) if(strcmp(foodi.getName()

8、,s)=0) cout成功删除sendl;total -;for(int t = i; t total ; t +) foodt=foodt+1;return;cout没有这种食物endl;void FoodManager:addFood(char *s , double p)foodtotal+=Food(s,p);double FoodManager:getPriceByName(char *s)for(int i = 0 ; i total ; i +)if(strcmp(foodi.getName(),s)=0)return foodi.getPrice();return false;

9、int FoodManager:getListByName(char *s)for(int i = 0 ; i total ; i +)if(strcmp(foodi.getName(),s)=0)return i;return false;int FoodManager:getTotal()return total;char * FoodManager:getNameByList(int list)return foodlist.getName();void FoodManager:setTotal(int x)total = x;#ifndef FEEMANAGER#define FEEM

10、ANAGERclass FeeManagerprivate:double jiuCanFee;etType(1);();while(true)();int choices;choices = ();if(choices=1)etName();cout您选择了 食物:nendl;prices = (n);coutnums;curClient.(Food(n,prices);curClient.addFee(nums*prices);curClient.numcurClient.()-1=nums;cout”当前的总费用是curClient.getFee()endlendl;else if(cho

11、ices = 2)howClientMessage();mendDingDanChoice = ();if(mendDingDanChoice=1)curClient.changNum();else if(mendDingDanChoice = 2)curClient.deleFood();else if(mendDingDanChoice = 3)break;else if(choices = 3)etFee();howClientMessage();etType(2);();while(true)();int choices;choices = ();if(choices=1)etName

12、();cout您选择了 食物:nendl;prices = (n);coutnums;curClient.(Food(n,prices);curClient.addFee(nums*prices);curClient.numcurClient.()-1=nums;cout”当前的总费用是curClient.getFee()endlendl;else if(choices = 2)howClientMessage();mendDingDanChoice = ();if(mendDingDanChoice=1)curClient.changNum();else if(mendDingDanChoi

13、ce = 2)curClient.deleFood();else if(mendDingDanChoice = 3)break; else if(choices =3)etFee();howClientMessage();etName()ti.getPrice();if(i != ()-1)ioFileendl;();cout成功退出系统endlendlendl;system(pause);return 0;六:运行结果与分析从文件导入菜单,内容如下19 龙须菜46115 烧鱼头2626 炸面筋488 山东煎饼3瓜丝儿10山鸡丁儿12拌海蜇炝冬笋84玉兰片27浇鸳鸯烧槟子34烧百合31炸豆腐拔

14、丝山药10糖焖莲子18酿山药草泥马 100 金华火腿99运行程序,进入主界面:姓名选择: 1 顾客服务再选择 1 新顾客点餐登记客户信息 接下来弹出客户服务选择界面进入服务选择界面,选择1 就餐弹出菜单,有食物编号,名称,价格选择 1 加菜选择食物编号0 瓜丝儿 ,数量 3同理,再添加食物金华火腿*1 山鸡丁儿 *4 山东煎饼 *5选择2,修改订单选择 1,修改食物数量选择瓜丝儿,数量修改为 1选择 2 删除食物山东煎饼 修改后的订单如上,选 3 退出修改,再选 3 提交订单,此时输出客户订单信息,并返回主界面,如下所示同理,继续添加客户如下现在点 1,顾客服务2 查询订单,查询猪八戒的订单订

15、单排在第3,这里就餐和外卖进行了排序,就餐在外卖前面,就餐和外卖则按照先后顺利排列选择2:退出订单查询选择2,食物管理添加食物冰糖葫芦价格 46,结果如下多出了第18 道菜,冰糖葫芦选择 2,修改食物价格,把 浇鸳鸯的价格改为 1先择 3 删除食物 草泥马改变后的菜单列表如下选择4,退出食物管理进入主菜单选择 3 今日反馈显示今日的销售额,显示所有订单详情,按照就餐和外卖先后顺序排序选择 4 退出系统七:心得与体会通过设计这个自主点餐系统,我对C+向对面的思想和对于类的运用有了更深的理解。 编写程序时遇到了各种问题,我通过复习课本上的知识,对于自己所出现的问题逐一解决,巩固了知识点,提升了理论知识的运用能力及解决问题的能力。程序设计和调试程序的能力都有很大的提升。考核成绩评定表平时成绩答-kA上 辩成绩成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1