收藏 分销(赏)

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

上传人:快乐****生活 文档编号:2656297 上传时间:2024-06-03 格式:DOCX 页数:43 大小:915.76KB
下载 相关 举报
C专业课程设计自助点餐系统.docx_第1页
第1页 / 共43页
C专业课程设计自助点餐系统.docx_第2页
第2页 / 共43页
C专业课程设计自助点餐系统.docx_第3页
第3页 / 共43页
C专业课程设计自助点餐系统.docx_第4页
第4页 / 共43页
C专业课程设计自助点餐系统.docx_第5页
第5页 / 共43页
点击查看更多>>
资源描述

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

2、设计Client类:用户类,包含用户属性姓名,电话号码,费用等信息,登记用户,统计用户订单信息ClientManager类:用户管理类,用于管理用户,统计用户数量,存放用户菜单信息,查询用户订单信息,统计订单FeeManager类:用于统计就餐、外卖销售费用,统计收入Food类:餐厅食物类,包含食物名称和价格FoodManager类:管理菜单,用于添加食物,修改食物,删除食物,统计不一样食物信息,展现菜单MenuView类:用于打印多种操作界面五:程序代码和说明Client.h#ifndef CLIENT#define CLIENT#includeFoodManager.h#includeus

3、ing namespace std;class Clientprivate:int number;/用户编号int type;/用户类型,1表示就餐,2表示外卖double fee;/用户账单费用char *name;/用户名称char *phone;/用户手机号码public:Client()/结构函数char * getName();/返回用户姓名int num100;/numi存放食物数量,i表示食物编号FoodManager client_fm; /管理用户所点食物Client(char *n,char *p);/结构函数int getNumber();/返回用户编号void setN

4、umber(int n);/设置用户编号int getType();/返回用户类型void setType(int n);/设置用户类型void addFee(double x);/添加费用double getFee();/返回费用void showClientMessage();/展示用户信息void changNum();/修改用户所点食物数量void deleFood();/删除用户所选择食物;#endifClient.cpp#includeClient.h#includeClient:Client(char *s,char *p)name = s;phone = p;fee = 0;f

5、or(int i = 0 ; i 100 ; i+)numi = 0 ;cout用户注册成功endl;int Client:getNumber()return number;void Client:setNumber(int n)number = n;int Client:getType()return type;void Client:setType(int n)type = n;void Client:addFee(double x)fee += x;double Client:getFee()return fee;void Client:showClientMessage()char *

6、 ss;if(type = 1)ss = 就餐;else if(type = 2)ss = 外卖;cout姓名: namettssendl;cout手机号码: phoneendl;cout订单总价: feeendl;cout订单详情:endl;coutsetw(10)setiosflags(ios:left)食物序列setw(10)setiosflags(ios:left)菜名t数量t价格endl;for(int i = 0 ; i client_fm.getTotal() ; i +)coutsetw(10)setiosflags(ios:left)setw(10)i+1setiosflag

7、s(ios:left)client_fm.foodi.getName()tnumitnumi*client_fm.foodi.getPrice()endl;cout总价:ttfeeendl;char * Client:getName()return name;void Client:changNum()int n;int numss;coutn;cout您选择了食物: client_fm.getNameByList(n-1)endl;coutnumss;fee += (numss - numn-1 )*client_fm.getPriceByName(client_fm.getNameByLi

8、st(n-1);numn-1=numss;void Client:deleFood()int n;coutn;cout您选择了食物: client_fm.getNameByList(n-1)endl;fee -= (numn-1 )*client_fm.getPriceByName(client_fm.getNameByList(n-1);for(int i = n-1 ; i client_fm.getTotal() ; i +)client_fm.foodi=client_fm.foodi+1;numi=numi+1;client_fm.setTotal(client_fm.getTota

9、l()-1);ClientManager.h#ifndef CLIENTMANAGER#define CLIENTMANAGER#includeClient.h#includeusing namespace std;#define MAX_CLIENT_NUM 60 /最大用户数量class ClientManagerpublic:ClientManager();/结构函数int clientNum ;/统计用户数量Client clientMAX_CLIENT_NUM;/统计存放用户void addClient(Client c);/添加新用户int getClientNum();/返回用户

10、数量void showQuery(char * s);/查询用户void showAll();/显示全部用户;#endifClientManager.cpp#includeClientManager.hClientManager:ClientManager()clientNum = 0;void ClientManager:addClient(Client c)clientclientNum+ = c;cout用户注册成功endl;int ClientManager:getClientNum()return clientNum;void ClientManager:showQuery(char

11、 * s)int count = 0;int th;cout-endl;for(int i = 0; i clientNum ; i +)if(clienti.getType()=1)cout第+count单: clienti.getName()t总价是: clienti.getFee()元t就餐endlendl;if(strcmp(clienti.getName(),s)=0)th =count;for(int i = 0; i clientNum ; i +)if(clienti.getType()=2)cout第+count单: clienti.getName()t总价是: client

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

13、 i+1endl;clienti.showClientMessage();coutendl;Food.h#ifndef FOOD#define FOODclass Foodprivate:char *name; /食物名称double price; /食物价格public:Food(); /结构函数Food(char *s,double p); /结构函数void setName(char *s); /更改食物名称char* getName(); /返回食物名称double getPrice(); /返回食物价格void setPrice(double p); /设置食物价格void show

14、Message(); /显示食物名称和价格;#endifFood.cpp#includeFood.h#includeusing namespace std;Food:Food(char *s,double p)name = s;price = p;void Food:setName(char *s)name = s;void Food:setPrice(double p)price = p;void Food:showMessage()coutnametpriceendl;double Food:getPrice()return price;char* Food:getName()return

15、 name;FoodManager.h#ifndef FOODMANAGER#define FOODMANAGER#includeFood.h#define MAX_FOOD_NUM 99 /最多容纳食物种类数class FoodManagerint total ;/食物种类数public:FoodManager();/结构函数int getTotal() ;/返回食物种类数Food foodMAX_FOOD_NUM;/统计食物void addFood(Food f);/添加食物void addFood(char *s,double p);/添加食物void deleteFood();/删除食

16、物void changePrice();/修改食物价格void showFood();/显示食物信息char * getNameByList(int list);/经过食物编号返回食物名称double getPriceByName(char *s);/经过食物名称返回食物价格int getListByName(char *s);/经过食物名称返回食物编号void setTotal(int x);/修改食物种类数;#endifFoodManager.cpp#includeFoodManager.h#includeusing namespace std;#includeFoodManager:Fo

17、odManager()total = 0;void FoodManager:addFood(Food f)foodtotal+=f;cout成功添加了食物,目前共有totalendl;void FoodManager:showFood()cout食物中共有total种endl;cout食物编号 名称tt单价endl;for(int i = 0 ; i total ; i + )coutsetw(10)setiosflags(ios:left)isetw(10)setiosflags(ios:left)foodi.getName()tfoodi.getPrice()endl;void FoodM

18、anager:changePrice()char *s;int code;s = new char20;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

19、 i = 0 ; i total ; i +)if(strcmp(foodi.getName(),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.getNam

20、e(),s)=0)return foodi.getPrice();return false;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(

21、int x)total = x;FeeManager.h#ifndef FEEMANAGER#define FEEMANAGERclass FeeManagerprivate:double jiuCanFee; /就餐总收入double waiMaiFee; /外卖总收入public:FeeManager(); /结构函数double getWaiMaiFee(); /返回外卖总收入double getJiuCanFee(); /返回就餐总收入void addWaiMaiFee(double x); /增加外卖总收入void addJiuCanFee(double x); /添加就餐总收入;#

22、endifFeeManager.cpp#includeFeeManager.hFeeManager:FeeManager()jiuCanFee = 0;waiMaiFee = 0;double FeeManager:getWaiMaiFee()return waiMaiFee;double FeeManager:getJiuCanFee()return jiuCanFee;void FeeManager:addWaiMaiFee(double x)waiMaiFee += x;void FeeManager:addJiuCanFee(double x)jiuCanFee += x;MenuVi

23、ew.h#ifndef MENUVIEW#define MENUVIEWclass MenuViewprivate: char whiteSmile;/白色笑脸 char blackSmile;/黑色笑脸 char heart;/心形图形public:MenuView();/结构函数void showJiuCan();/显示就餐用户点菜界面void showWaiMai();/显示外卖用户点菜界面int showMain();/显示用户选择就餐还是外卖界面int showViewChoice();/显示进入本系统功效选择界面int showRegister();/显示用户注册界面int sho

24、wClientChoice();/显示用户点餐界面int showQuery();/显示查询用户订单界面int showMend();/显示修改食物界面int showMenuChoice();/显示选择菜单界面int showMendDingDan();/显示用户修改订单界面;#endifMenuView.cpp#includeMenuView.h#includeusing namespace std;MenuView:MenuView()whiteSmile = 1;blackSmile = 2;heart = 3;int MenuView:showMain()for(int i = 1

25、; i = 80 ; i+ )coutheart;for(int i = 1;i=80;i+)if(i=1|i=80)coutheart;else cout ;couthearttttt欢迎光临本餐厅;for(int j=1;j=33;j+)cout ;coutheart;for(int i = 1;i=80;i+)if(i=1|i=80)coutheart;else cout ;for(int i = 1 ; i = 80 ; i+ )coutheart;/输出餐厅外形coutendlendl;coutt我是服务员小坠whiteSmile,竭诚为您服务哦blackSmileendlendle

26、ndl;for(int k=1;k=10;k+)cout ;for(int i = 1 ; i = 20 ; i+ )coutheart;coutendl;for(int k=1;k=10;k+)cout ;coutheart请选择您需要服务heartendl;for(int k=1;k=10;k+)cout ;for(int i = 1 ; i = 60 ; i+ )coutheart;coutendl;for(int k=1;k=10;k+)cout ;coutheart1:就餐;for(int i = 1 ; i = 52 ; i + )cout ;coutheartendl;for(i

27、nt k=1;k=10;k+)cout ;coutheart2:外卖;for(int i = 1 ; i = 52 ; i + )cout ;coutheartendl;for(int k=1;k=10;k+)cout ;for(int i = 1 ; i = 60 ; i+ )coutheart;coutendlendl;for(int i = 1;i=7;i+)coutendl;coutchoice;return choice;void MenuView:showJiuCan()cout欢迎就餐,本餐厅有以下食品供您品尝whiteSmileendl;int MenuView:showVie

28、wChoice()for(int i = 1 ; i = 80 ; i+ )coutheart;for(int i = 1;i=80;i+)if(i=1|i=80)coutheart;else cout ;couthearttttt陈旺均特色餐厅;for(int j=1;j=33;j+)cout ;coutheart;for(int i = 1;i=80;i+)if(i=1|i=80)coutheart;else cout ;for(int i = 1 ; i = 80 ; i+ )coutheart;coutendlendl;cout-endl;cout| 1:用户服务 |endl;cout

29、| 2:食物管理 |endl;cout| 3:今日反馈 |endl;cout| 4:退出系统 |endl;cout-endl;coutnext;coutendl;return next;int MenuView:showRegister()cout-endl;cout| 1:新用户点餐 |endl;cout| 2:查询订单 |endl;cout-next;return next;int MenuView:showClientChoice()cout-endl;cout| 1:加菜 |endl;cout| 2:修改订单 |endl;cout| 3:提交订单 |endl;cout-next;ret

30、urn next;int MenuView:showQuery()cout-endl;cout| 1:查询订单 |endl;cout| 2:退出查询 |endl;cout-next;return next;int MenuView:showMend()cout-endl;cout| 1:添加食物 |endl;cout| 2:修改价格 |endl;cout| 3:删除食物 |endl;cout| 4:退出食物管理 |endl;cout-next;return next;int MenuView:showMenuChoice()cout添加菜单:endl;cout-endl;cout| 1:原菜单

31、 |endl;cout| 2:更新后菜单 |endl;cout-next;return next;int MenuView:showMendDingDan()cout-endl;cout| 1:修改数量 |endl;cout| 2:删除食物 |endl;cout| 3:退出修改 |endl;cout-next;return next;Main.cpp#include#includeFood.h#includeMenuView.h#includeFoodManager.h#includeClientManager.h#includeFeeManager.h#include#includeusin

32、g namespace std;int main()FeeManager feem;/管理就餐和外卖费用MenuView mv; /管理界面ClientManager cm; /管理用户类对象FoodManager fm;/管理食物类对象fstream ioFile; /文件输入输出int clientChoice;/ 1 服务用户 2 食物管理 3 今日反馈 4退出系统int clientService;/1新用户点餐 2 查询 int mainChoice;/ 1 就餐 2 外卖int curClient; /目前操作用户编号int queryChoice;/1 查询订单 2 退出查询in

33、t foodChoice;/1 添加食物 2 修改食物价格 3删除某种食物 4退出食物管理int viewChoice;/1 用户服务 2 食物管理 3 今日反馈 4 退出系统int menuChoice;/1 原菜单 2 更新后菜单int mendDingDanChoice;/1 修改数量 2 删除食物 3 退出修改ioFile.open(C:UsersAdministratorDesktopfood.txt,ios:in);while(!ioFile.eof()char *s;double p;s=new char20;ioFilesp;fm.addFood(s,p);ioFile.clo

34、se();/以上是从文件读入食物种类和价格信息while(true)viewChoice = mv.showViewChoice();if(viewChoice = 1) /用户服务clientService = mv.showRegister();if(clientService = 1)/用户注册char *name,*phone;name = new char30;phone = new char20;cout请完善用户资料endl;cout您订单号是cm.getClientNum()+1endl;curClient = cm.getClientNum();coutname;coutph

35、one;Client cc(name,phone);cc.setNumber(cm.getClientNum();cm.addClient(cc);mainChoice = mv.showMain();if(mainChoice = 1) /就餐cm.clientcurClient.setType(1);mv.showJiuCan();while(true)fm.showFood();int choices;choices = mv.showClientChoice();if(choices=1)/选择食物种类和数量,下单char *n;int code;n = new char20;int num

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服