C课程设计自助点餐系统.docx
《C课程设计自助点餐系统.docx》由会员分享,可在线阅读,更多相关《C课程设计自助点餐系统.docx(29页珍藏版)》请在冰豆网上搜索。
![C课程设计自助点餐系统.docx](https://file1.bdocx.com/fileroot1/2022-11/17/8d9be698-0480-4361-b1ed-f908766822e0/8d9be698-0480-4361-b1ed-f908766822e01.gif)
C课程设计自助点餐系统
面向对象程序课程设计
(2014/2015学年第一学期第20周)指导教师:
庄巧莉、杨东鹤班级:
计算机科学与技术13
(1)学号:
姓名:
面向对象程序课程设计目录
一、
题目
二、
需求分析
三、
系统结构图
四、
类的设计
五、
程序代码与说明
六、
运行结果与分析
七、
心得与体会
一:
题目
自助点餐系统
二:
需求分析
有一个小型餐厅,该餐厅提供即时就餐和外卖服务。
现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。
1、根据顾客的选择正确打出账单
2、正确统计出每一天的及时就餐和外卖的销售情况
3、实现对餐厅菜式和价格的有效管理
4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况
三:
系统结构图
四:
类的设计
Client类:
客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息
ClientManager类:
客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单
FeeManager类:
用于记录就餐、外卖的销售费用,统计收入
Food类:
餐厅食物的类,包含食物名称和价格
FoodManager类:
管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单
MenuView类:
用于打印各种操作界面
五:
程序代码与说明
Client.h#ifndefCLIENT
#defineCLIENT#include"FoodManager.h"#includeusingnamespacestd;classClient
{
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;icout<:
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
展开阅读全文
相关搜索
|