课程设计自助点餐系统(共21页).docx
《课程设计自助点餐系统(共21页).docx》由会员分享,可在线阅读,更多相关《课程设计自助点餐系统(共21页).docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上面向对象程序课程设计(2014/2015学年第一学期第20周)指导教师: 庄巧莉、杨东鹤班级:计算机科学与技术13(1)学号:姓名:面向对象程序课程设计目 录一、 题目二、 需求分析三、 系统结构图四、 类的设计五、 程序代码与说明六、 运行结果与分析七、 心得与体会一:题目 自助点餐系统二:需求分析有一个小型餐厅,该餐厅提供即时就餐和外卖服务。现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。1、根据顾客的选择正确打出账单2、正确统计出每一天的及时就餐和外卖的销售情况3、实现对餐厅菜式和价格的有效管理4、考虑点餐的自动排序问题,使顾客可以实时查询到自己
2、菜单处理情况三:系统结构图四:类的设计Client类:客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息ClientManager类:客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单FeeManager类:用于记录就餐、外卖的销售费用,统计收入Food类:餐厅食物的类,包含食物名称和价格FoodManager类:管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单MenuView类:用于打印各种操作界面五:程序代码与说明Client.h#ifndef CLIENT#define CLIENT#includeFood
3、Manager.h#includeusing 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 getNumb
4、er();/返回客户编号void setNumber(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
5、 = s;phone = p;fee = 0;for(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:s
6、howClientMessage()char * 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:le
7、ft)setw(10)i+1setiosflags(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.getPriceByNa
8、me(client_fm.getNameByList(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.se
9、tTotal(client_fm.getTotal()-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);/添加新客户
10、int getClientNum();/返回客户数量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 Clie
11、ntManager:showQuery(char * 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单: clien
12、ti.getName()t总价是: clienti.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(clie
13、nti.getType()=2)cout订单号: 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(dou
14、ble p); /设置食物价格void showMessage(); /显示食物的名称和价格;#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()coutnametprice?endl;double Food:getPrice()return price;
15、char* Food:getName()return 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);
16、/添加食物void deleteFood();/删除食物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
17、 std;#includeFoodManager:FoodManager()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()tfood
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 自助 系统 21
限制150内