C课程设计自助点餐系统Word文档格式.docx
- 文档编号:17477278
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:11
- 大小:18.16KB
C课程设计自助点餐系统Word文档格式.docx
《C课程设计自助点餐系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C课程设计自助点餐系统Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
3、实现对餐厅菜式和价格的有效管理
4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况
三:
系统结构图
四:
类的设计
Client类:
客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息
ClientManager类:
客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单
FeeManager类:
用于记录就餐、外卖的销售费用,统计收入
Food类:
餐厅食物的类,包含食物名称和价格
FoodManager类:
管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单
MenuView类:
用于打印各种操作界面
五:
程序代码与说明
#ifndefCLIENT
#defineCLIENT
#include"
"
#include<
iostream>
usingnamespacestd;
classClient
{
private:
intnumber;
etName()<
<
\t"
num[i]<
num[i]*[i].getPrice()<
endl;
}
cout<
总价:
\t\t"
fee<
}
char*Client:
:
getName()
returnname;
voidClient:
changNum()
intn;
intnumss;
请输入食物序号:
"
;
cin>
>
n;
您选择了食物:
(n-1)<
请输入数量:
numss;
fee+=(numss-num[n-1])*(n-1));
num[n-1]=numss;
deleFood()
fee-=(num[n-1])*(n-1));
for(inti=n-1;
i<
();
i++)
{
[i]=[i+1];
num[i]=num[i+1];
()-1);
#ifndefCLIENTMANAGER
#defineCLIENTMANAGER
#defineMAX_CLIENT_NUM60etType()==1)
{
cout<
第"
++count<
单:
client[i].getName()<
\t总价是:
client[i].getFee()<
元"
\t就餐"
endl<
if(strcmp(client[i].getName(),s)==0)th=count;
}
for(inti=0;
clientNum;
if(client[i].getType()==2)
\t外卖"
cout<
您当前排在第"
th<
单"
----------------------------------"
voidClientManager:
showAll()
for(inti=0;
i++)
if(client[i].getType()==1)
{
cout<
订单号:
i+1<
client[i].showClientMessage();
}
#ifndefFOOD
#defineFOOD
classFood
private:
char*name;
food[i].getPrice()<
voidFoodManager:
changePrice()
char*s;
intcode;
s=newchar[20];
doublep;
请输入食物编号:
cin>
code;
s=food[code].getName();
s<
请输入价格:
p;
for(inti=0;
total;
if(strcmp(food[i].getName(),s)==0)
food[i].setPrice(p);
修改成功"
return;
没有这种食物,修改失败"
deleteFood()
请输入菜名:
s;
if(strcmp(food[i].getName(),s)==0)
成功删除"
total--;
for(intt=i;
t<
t++)
food[t]=food[t+1];
return;
没有这种食物"
addFood(char*s,doublep)
food[total++]=Food(s,p);
doubleFoodManager:
getPriceByName(char*s)
returnfood[i].getPrice();
returnfalse;
intFoodManager:
getListByName(char*s)
returni;
getTotal()
returntotal;
char*FoodManager:
getNameByList(intlist)
returnfood[list].getName();
setTotal(intx)
total=x;
#ifndefFEEMANAGER
#defineFEEMANAGER
classFeeManager
doublejiuCanFee;
etType
(1);
();
while(true)
{
();
intchoices;
choices=();
if(choices==1)etName();
cout<
n<
prices=(n);
请输入数量:
nums;
[curClient].(Food(n,prices));
[curClient].addFee(nums*prices);
[curClient].num[[curClient].()-1]=nums;
当前的总费用是"
[curClient].getFee()<
}
elseif(choices==2)howClientMessage();
mendDingDanChoice=();
if(mendDingDanChoice==1)
{
[curClient].changNum();
}
elseif(mendDingDanChoice==2)
[curClient].deleFood();
elseif(mendDingDanChoice==3)break;
elseif(choices==3)etFee());
howClientMessage();
etType
(2);
etName()<
[i].getPrice();
if(i!
=()-1))
ioFile<
();
成功退出系统"
system("
pause"
);
return0;
六:
运行结果与分析
从文件导入菜单,内容如下
瓜丝儿10山鸡丁儿12拌海蜇19龙须菜46
炝冬笋84玉兰片27浇鸳鸯115烧鱼头26
烧槟子34烧百合31炸豆腐26炸面筋4
拔丝山药10糖焖莲子18酿山药88山东煎饼3
草泥马100金华火腿99
运行程序,进入主界面:
选择:
1顾客服务再选择1新顾客点餐登记客户信息姓名
接下来弹出客户服务选择界面
进入服务选择界面,选择1就餐
弹出菜单,有食物编号,名称,价格
选择1加菜
选择食物编号0瓜丝儿,数量3
同理,再添加食物金华火腿*1山鸡丁儿*4山东煎饼*5
选择2,修改订单
选择1,修改食物数量
选择瓜丝儿,数量修改为1
选择2删除食物山东煎饼
修改后的订单如上,选3退出修改,再选3提交订单,此时输出客户订单信息,并返回主界面,如下所示
同理,继续添加客户如下
现在点1,顾客服务2查询订单,查询猪八戒的订单
订单排在第3,这里就餐和外卖进行了排序,就餐在外卖前面,就餐和外卖则按照先后顺利排列
选择2:
退出订单查询
选择2,食物管理
添加食物冰糖葫芦价格46,结果如下
多出了第18道菜,冰糖葫芦
选择2,修改食物价格,把浇鸳鸯的价格改为1
先择3删除食物草泥马改变后的菜单列表如下
选择4,退出食物管理进入主菜单
选择3今日反馈
显示今日的销售额,显示所有订单详情,按照就餐和外卖先后顺序排序
选择4退出系统
七:
心得与体会
通过设计这个自主点餐系统,我对C++面向对面的思想和对于类的运用有了更深的理解。
编写程序时遇到了各种问题,我通过复习课本上的知识,对于自己所出现的问题逐一解决,巩固了知识点,提升了理论知识的运用能力及解决问题的能力。
程序设计和调试程序的能力都有很大的提升。
考核成绩评定表
平时成绩
答辩成绩
总成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 自助 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)