您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > C++课程设计自助点餐系统
面向对象程序课程设计(2014/2015学年第一学期第20周)指导教师:庄巧莉、杨东鹤班级:计算机科学与技术13(1)学号:姓名:面向对象程序课程设计目录一、题目二、需求分析三、系统结构图四、类的设计五、程序代码与说明六、运行结果与分析七、心得与体会一:题目自助点餐系统二:需求分析有一个小型餐厅,该餐厅提供即时就餐和外卖服务。现在这个餐厅打算使用自助点餐系统,让顾客自己点餐,实现以下功能。1、根据顾客的选择正确打出账单2、正确统计出每一天的及时就餐和外卖的销售情况3、实现对餐厅菜式和价格的有效管理4、考虑点餐的自动排序问题,使顾客可以实时查询到自己菜单处理情况三:系统结构图四:类的设计Client类:客户类,包含客户属性姓名,电话号码,费用等信息,登记客户,记录客户订单信息ClientManager类:客户管理类,用于管理客户,记录客户数量,存储客户菜单信息,查询客户订单信息,统计订单FeeManager类:用于记录就餐、外卖的销售费用,统计收入Food类:餐厅食物的类,包含食物名称和价格FoodManager类:管理菜单,用于添加食物,修改食物,删除食物,记录不同食物的信息,呈现菜单MenuView类:用于打印各种操作界面五:程序代码与说明Client.h#ifndefCLIENT#defineCLIENT#includeFoodManager.h#includeiostreamusingnamespacestd;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();//删除客户所选择的食物};#endifClient.cpp#includeClient.h#includeiomanipClient::Client(char*s,char*p){name=s;phone=p;fee=0;for(inti=0;i100;i++)num[i]=0;cout客户注册成功endl;}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姓名:name\t\tssendl;cout手机号码:phoneendl;cout订单总价:feeendl;cout订单详情:endl;coutsetw(10)setiosflags(ios::left)食物序列setw(10)setiosflags(ios::left)菜名\t数量\t价格endl;for(inti=0;iclient_fm.getTotal();i++){coutsetw(10)setiosflags(ios::left)setw(10)i+1setiosflags(ios::left)client_fm.food[i].getName()\tnum[i]\tnum[i]*client_fm.food[i].getPrice()endl;}cout总价:\t\tfeeendl;}char*Client::getName(){returnname;}voidClient::changNum(){intn;intnumss;cout请输入食物序号:;cinn;cout您选择了食物:client_fm.getNameByList(n-1)endl;cout请输入数量:;cinnumss;fee+=(numss-num[n-1])*client_fm.getPriceByName(client_fm.getNameByList(n-1));num[n-1]=numss;}voidClient::deleFood(){intn;cout请输入食物序号:;cinn;cout您选择了食物:client_fm.getNameByList(n-1)endl;fee-=(num[n-1])*client_fm.getPriceByName(client_fm.getNameByList(n-1));for(inti=n-1;iclient_fm.getTotal();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#includeClient.h#includeiostreamusingnamespacestd;#defineMAX_CLIENT_NUM60//最大客户数量classClientManager{public:ClientManager();//构造函数intclientNum;//记录客户数量Clientclient[MAX_CLIENT_NUM];//记录存储客户voidaddClient(Clientc);//添加新客户intgetClientNum();//返回客户数量voidshowQuery(char*s);//查询客户voidshowAll();//显示所有客户};#endifClientManager.cpp#includeClientManager.hClientManager::ClientManager(){clientNum=0;}voidClientManager::addClient(Clientc){client[clientNum++]=c;cout客户注册成功endl;}intClientManager::getClientNum(){returnclientNum;}voidClientManager::showQuery(char*s){intcount=0;intth;cout----------------------------------endl;for(inti=0;iclientNum;i++)if(client[i].getType()==1){cout第++count单:client[i].getName()\t总价是:client[i].getFee()元\t就餐endlendl;if(strcmp(client[i].getName(),s)==0)th=count;}for(inti=0;iclientNum;i++)if(client[i].getType()==2){cout第++count单:client[i].getName()\t总价是:client[i].getFee()元\t外卖endlendl;if(strcmp(client[i].getName(),s)==0)th=count;}cout您当前排在第th单endl;cout----------------------------------endl;}voidClientManager::showAll(){for(inti=0;iclientNum;i++){if(client[i].getType()==1){cout订单号:i+1endl;client[i].showClientMessage();coutendl;}}for(inti=0;iclientNum;i++){if(client[i].getType()==2){cout订单号:i+1endl;client[i].showClientMessage();coutendl;}}}Food.h#ifndefFOOD#defineFOODclassFood{private:char*name;//食物名称doubleprice;//食物价格public:Food(){};//构造函数Food(char*s,doublep);//构造函数voidsetName(char*s);//更改食物名称char*getName();//返回食物名称doublegetPrice();//返回食物价格voidsetPrice(doublep);//设置食物价格voidshowMessage();//显示食物的名称和价格};#endifFood.cpp#includeFood.h#includeiostreamusingnamespacestd;Food::Food(char*s,doublep){name=s;price=p;}voidFood::setName(char*s){name=s;}voidFood::setPrice(doublep){price=p;}voidFood::showMessage(){coutname\tprice?endl;}doubleFood::getPrice(){returnprice;}char*Food::getName(){returnname;}FoodManager.h#ifndefFOODMANAGER#defineFOODMANAGER#includeFood.h#defineMAX_FOOD_NUM99//最多容纳的食物种类数classFoodManager{inttotal;//食物种类数public:FoodManager();//构造函数intgetTotal();//返回食物种类数Foodfood[MAX_FOOD_NUM];//记录食物voidaddFood(Foodf);//添加食物voidaddFood(char*s,doublep);//添加食物voiddeleteFood();//删除食物voidchangePrice();//修改食物价格voidshowFood();//显示食物信息char*getNameByList(intlist);//通过食物编号返回食物名称doublegetPriceByName(char*s);//通过食物名称返回食物价格intgetListByName(char*s);//通过食物名称返回食物编号voidsetTotal(int
本文标题:C++课程设计自助点餐系统
链接地址:https://www.777doc.com/doc-7344320 .html