C课程设计自助点餐系统.docx
- 文档编号:3085041
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:29
- 大小:70.22KB
C课程设计自助点餐系统.docx
《C课程设计自助点餐系统.docx》由会员分享,可在线阅读,更多相关《C课程设计自助点餐系统.docx(29页珍藏版)》请在冰豆网上搜索。
C课程设计自助点餐系统
面向对象程序课程设计
(2014/2015学年第一学期第20周)指导教师:
庄巧莉、杨东鹤班级:
计算机科学与技术13
(1)学号:
姓名:
面向对象程序课程设计目录
一、
题目
二、
需求分析
三、
系统结构图
四、
类的设计
五、
程序代码与说明
六、
运行结果与分析
七、
心得与体会
一:
题目
自助点餐系统
二:
需求分析
有一个小型餐厅,该餐厅提供即时就餐和外卖服务。
现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。
1、根据顾客的选择正确打出账单
2、正确统计出每一天的及时就餐和外卖的销售情况
3、实现对餐厅菜式和价格的有效管理
4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况
三:
系统结构图
四:
类的设计
Client类:
客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息
ClientManager类:
客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单
FeeManager类:
用于记录就餐、外卖的销售费用,统计收入
Food类:
餐厅食物的类,包含食物名称和价格
FoodManager类:
管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单
MenuView类:
用于打印各种操作界面
五:
程序代码与说明
Client.h#ifndefCLIENT
#defineCLIENT#include"FoodManager.h"#include
{
private:
intnumber;
//客户编号
inttype;
//客户的类型,1表示就餐,2表示外卖
doublefee;
//客户账单费用
char*name;
//客户名称
char*phone;
//客户手机号码
public:
Client(){}
//构造函数
char*getName();
//返回客户姓名
intnum[100];
//num[i]存储食物数量,i表示食物编号
FoodManagerclient_fm;
//管理客户所点的食物
构造函数
Client(char*n,char*p);//
intgetNumber();
//
返回客户编号
voidsetNumber(intn);
//设置客户编号
intgetType();
//
返回客户类型
voidsetType(intn);//
设置客户类型
voidaddFee(doublex);
//添加费用
doublegetFee();
//
返回费用
voidshowClientMessage();//展示客户信息
voidchangNum();
//修改客户所点的食物的数量
voiddeleFood();
//删除客户所选择的食物
};
#endif
Client.cpp#include"Client.h"#include
Client:
:
Client(char*s,char*p)
name=s;
phone=p;
fee=0;
for(inti=0;i<100;i++)num[i]=0;
cout<<"客户注册成功"< } intClient: : getNumber() { returnnumber; } voidClient: : setNumber(intn) { number=n; } intClient: : getType() { returntype; } voidClient: : setType(intn) { type=n; } voidClient: : addFee(doublex) fee+=x; } doubleClient: : getFee() { returnfee; } voidClient: : showClientMessage() { char*ss; if(type==1)ss="就餐"; elseif(type==2)ss="外卖"; cout<<"姓名: "< cout<<"手机号码: "< cout<<"订单总价: "< cout<<"订单详情: "< cout< : left)<<"食物序列"< : left)<<"菜名"<<"\t数量\t价格"< for(inti=0;i cout< : left)< lags(ios: : left)< } cout<<"总价: \t\t"< } char*Client: : getName() { returnname; } voidClient: : changNum() { intn; intnumss; cout<<"请输入食物序号: ";cin>>n; cout<<"您选择了食物: "< cout<<"请输入数量: ";cin>>numss; fee+=(numss num[n-1])*client_fm.getPriceByName(client_fm.getNameByList(n-1)); num[n-1]=numss; } voidClient: : deleFood() intn; cout<<"请输入食物序号: ";cin>>n; cout<<"您选择了食物: "< (num[n-1])*client_fm.getPriceByName(client_fm.getNameByList(n-1)); for(inti=n-1;i { client_fm.food[i]=client_fm.food[i+1];num[i]=num[i+1]; }client_fm.setTotal(client_fm.getTotal()-1); } ClientManager.h #ifndefCLIENTMANAGER #defineCLIENTMANAGER #include"Client.h" #include usingnamespacestd; #defineMAX_CLIENT_NUM60//最大客户数量 classClientManager public: ClientManager();intclientNum; voidaddClient(Clientc); intgetClientNum(); voidshowQuery(char*s); voidshowAll(); }; #endif ClientManager.cpp #include"ClientManager.h" ClientManager: : ClientManager(){ clientNum=0; } voidClientManager: : addClient(Clientc) { client[clientNum++]=c;cout<<"客户注册成功"< intClientManager: : getClientNum() { returnclientNum; } voidClientManager: : showQuery(char*s) { intcount=0; intth; cout<<""< for(inti=0;i { cout<<"第"<<++count<<"单: "< "< if(strcmp(client[i].getName(),s)==0)th=count;} for(inti=0;i { cout<<"第"<<++count<<"单: "< "< if(strcmp(client[i].getName(),s)==0)th=count; cout<<"您当前排在第"< cout<<""< } voidClientManager: : showAll() { for(inti=0;i { if(client[i].getType()==1) { cout<<"订单号: "< } } for(inti=0;i { if(client[i].getType()==2) { cout<<"订单号: "< cout< } } Food.h #ifndefFOOD #defineFOODclassFood private: char*name;// doubleprice;// public: Food(){};// Food(char*s,doublep);//voidsetName(char*s);//char*getName();//doublegetPrice(); voidsetPrice(doublep);//voidshowMessage(); 食物名称 食物价格 构造函数 构造函数 更改食物名称 返回食物名称 //返回食物价格 设置食物价格 //显示食物的名称和价格 }; #endif Food.cpp 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。 copyright@ 2008-2022 冰点文档网站版权所有 经营许可证编号:鄂ICP备2022015515号-1