C课程设计自助点餐系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序课程设计(2014/2015学年第一学期第20周)
指导教师:庄巧莉、杨东鹤
班级:计算机科学与技术13(1)
学号:
姓名:
面向对象程序课程设计
目录
一、题目
二、需求分析
三、系统结构图
四、类的设计
五、程序代码与说明
六、运行结果与分析
七、心得与体会
一:题目
自助点餐系统
二:需求分析
有一个小型餐厅,该餐厅提供即时就餐和外卖服务。现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。
1、根据顾客的选择正确打出账单
2、正确统计出每一天的及时就餐和外卖的销售情况
3、实现对餐厅菜式和价格的有效管理
4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况三:系统结构图
四:类的设计
Client类:客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息
ClientManager类:客户管理类,用于管理客户,记录客户数量,存储客户菜
单信息,查询客户订单信息,统计订单
FeeManager类:用于记录就餐、外卖的销售费用,统计收入
Food类:餐厅食物的类,包含食物名称和价格
FoodManager类:管理菜单,用于添加食物,修改食物,删除食物,记录不
同食物的信息,呈现菜单
MenuView类:用于打印各种操作界面
五:程序代码与说明
Client.h
#ifndef CLIENT
#define CLIENT
#include"FoodManager.h"
#include
using namespace std;
class Client
{
private:
int number;//客户编号
int type;//客户的类型,1表示就餐,2表示外卖
double fee;//客户账单费用
char *name;//客户名称
char *phone;//客户手机号码
public:
Client(){}//构造函数
char * getName();//返回客户姓名
int num[100];//num[i]存储食物数量,i表示食物编号
FoodManager client_fm; //管理客户所点的食物
Client(char *n,char *p);//构造函数
int getNumber();//返回客户编号
void setNumber(int n);//设置客户编号
int getType();//返回客户类型
void setType(int n);//设置客户类型
void addFee(double x);//添加费用
double getFee();//返回费用
void showClientMessage();//展示客户信息
void changNum();//修改客户所点的食物的数量void deleFood();//删除客户所选择的食物
};
#endif
Client.cpp
#include"Client.h"
#include
Client::Client(char *s,char *p)
{
name = s;
phone = p;
fee = 0;
for(int i = 0 ; i < 100 ; i++)
num[i] = 0 ;
cout<<"客户注册成功"< } 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 * ss; if(type == 1)ss = "就餐"; else if(type == 2)ss = "外卖"; cout<<"姓名: "< cout<<"手机号码: "< cout<<"订单总价:"< cout<<"订单详情:"< cout< for(int i = 0 ; i < client_fm.getTotal() ; i ++) { cout< } cout<<"总价:\t\t"< } char * Client::getName() { return name; } void Client::changNum() { int n; int numss; cout<<"请输入食物序号:";cin>>n; cout<<"您选择了食物:"< cout<<"请输入数量:";cin>>numss; fee += (numss - num[n-1] )*client_fm.getPriceByName(client_fm.getNameByList(n-1)); num[n-1]=numss; } void Client::deleFood() { int n; cout<<"请输入食物序号:";cin>>n; cout<<"您选择了食物:"< fee -= (num[n-1] )*client_fm.getPriceByName(client_fm.getNameByList(n-1));