




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+语言程序设计课程设计说明书一、 课程设计题目及功能简介1、课程设计题目:餐厅点菜系统2、程序功能简介: 1、能够实现顾客点菜、结帐、打印功能,能够实现顾客预定和VIP客户管理。2、餐桌至少有15张。3、客人规模在30人以上。4、能够实现客人的排队等候等功能。二、 餐厅点菜系统背景及实用性1、餐厅点菜系统的数据结构表成员名(字段名) 数据类型 长度 字段含义 Food_Name string 食物名称 Food_Price float 食物价格food_type string 餐点类型 all_price int 总价B6、C10、D8 Food 对象数组Desk_number i
2、nt 桌号 Cust_type string 顾客类型 food_num int 食物数量All_Desk_numnumber int 餐厅总桌量 Desk_customer int 每桌人数desk_num int 客人所定桌数All_desk int 总餐桌数Customer_num int 每桌人数 cust_number int 客人规模 2、界面(1)界面一先进入:餐厅管理系统初始化主管可以设置本餐厅所能容纳的餐桌数(不得小于15张)及每张餐桌所容纳的客人数。(2)界面二初始化完毕后,就进入了:餐厅管理系统顾客可以选择:点餐、结账、或退出系统。(3)界面三当我们选择点餐后,屏幕上就会
3、显示:请输入顾客数、选择用户或退出系统。 (4)界面四当我们输入顾客数和选择用户后,屏幕就会显示出:您所需要的餐桌数并请顾客输入所需餐的类型或退出系统。 (5)界面五如:当我们选择早餐后,系统就会在屏幕上自动显示出早餐菜单并供顾客选择。(6)界面六当我们选择菜单后,系统就会自动在屏幕上显示出:顾客一共所定的餐桌数;顾客的号码;顾客所点菜单;然后,屏幕将请顾客输入所需份数。(7)界面七当顾客输入份数后,屏幕又将显示出:餐厅管理系统,顾客又可以选择再次点餐,或者选择结账。(8)界面八当顾客选择结账后,系统就会根据顾客所输入的桌号计算并输出顾客所消费的金额,并显示:欢迎再次光临!3、实用性“餐厅点菜
4、系统”适合各餐厅所用,餐厅可以根据自己餐厅规模的大小而设置适合自己的系统。有了餐厅点菜系统,更方便顾客随时预订或直接点餐,同时更节约时间和人力资源,减少了餐厅的成本,提高了餐厅运行效率。虽然次系统还有很多不完善的方面,但此系统还是能基本满足一般小餐厅的需求。三、“餐厅点菜系统”流程图开始系统初始化输入餐桌数输入每桌人数进入餐厅管理系统点菜结账打0.85折输入客人量vip客户计算桌数、分配桌号退出不打折点餐输入份额显示已点菜单输出总额结束餐厅管理系统餐厅管理系统餐厅管理系统小于15张小于30人四、“餐厅点菜系统”模板介绍本系统共分为食物、顾客、管理、实行(主函数)等四个部分。1、 食物此部分又分
5、为四个类-食物类、早餐类、午餐类、晚餐类。(1)食物类食物类描述了食物名称、价格等数据特性,还分别设置了返回食物价格、显示食物菜单、显示餐点类型等函数特性。(2)早餐类早餐类设置了早餐菜单、类型、总价格等数据特性,还设置了选择早餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。(3)午餐类午餐类设置了午餐菜单、类型、总价格等数据特性,还设置了选择午餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。(4)晚餐类晚餐类设置了晚餐菜单、类型、总价格等数据特性,还设置了选择晚餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。2、顾客此类描述了
6、桌号、顾客类型、食物数量等数据特性,还设置了设置桌号、设置餐点类型、设置顾客类型、设置食物分数、输出餐点类型、输出桌号、显示所点菜单、根据顾客类型输出消费总额等函数。3、管理此类描述了本餐厅所有的餐桌数、所能容纳的顾客数量、每桌顾客数、顾客人数等数据特性,还设置了返回顾客类型、分配桌子给顾客、输入所需餐点类型、显示菜单、顾客点餐份数等函数。4、实行次部分主要先使餐厅管理系统初始化,再调用前面的六个类,使这六个连为一个整体并运行。五、总结通过本次的C+课程设计,让我学会了把书本上的知识应用到了实际中来。虽然在这几周中有过挫折和坎坷,有的问题一直到了最后才得以解决,但我觉得很有价值。如:在编程中遇
7、到很多意外错误,有些错误还不易发现,并且此系统的有些功能比较难写,还得在老师、同学的帮助下完成。这个程序还存在许多瑕疵,不是那么的完善,如:此体统不能让顾客取消预订,不能让顾客设置就餐时间等。但是此系统是自己查资料、写代码、请教他人、解决无数的问题后,才写出来的,它凝聚着我的智慧和价值,让我很有成就感。在这过程中,我尽力了,我认真去编写过,也从中感受到c+语言课程设计其实也没我想象中那么困难,即使做不到完美,也能在原来的基础上提升很多。程序设计代码写得过于繁琐,不够人性化,是因为我的能力还不够,特别是把握指针、数组等内容的能力上,我还很欠缺。这次课程设计锻炼我的意志,磨练我的耐心,提升自我的编
8、程能力,最重要的是这次课程设计让我战胜了对计算机课程的恐惧,让我找到了学好它的信心,明白了“世上无难事,只怕有心人”。最后,这次课程设计也很感谢为我解疑释难的老师和朋友,是你们让我懂得了更多编程的知识,同时感谢老师和朋友一起营造的良好的学习环境,为学习增加了不少有利条件。 manage.h文件# include"customer.h"class Manageprivate:int *Desk_ptr;Food *Food_ptr;Customer *Customer_ptr;int All_Desk_num;int Desk_customer;/每桌客人数int Desk_
9、num_ing;int desk_num;/所需餐桌数int choice;public:Manage()Manage(int Desk,int Cust);Manage();void Give_Desk(int cust_num);void Give_Cust_Type();void Give_Meal_Type();void Give_food_num();void Show_Menu();void Pay();Manage:Manage(int Desk,int Cust)int i;All_Desk_num=Desk;Desk_ptr=new intAll_Desk_num;Custo
10、mer_ptr=new CustomerAll_Desk_num;for(i=0;i<Desk;i+)(Customer_ptr+i)->Set_Desk_number(0);Desk_customer=Cust;Manage:Manage()delete Desk_ptr;delete Food_ptr;void Manage:Give_Desk(int cust_num)int i,j;int temp;temp=(cust_num%Desk_customer);if(temp=0)desk_num=(cust_num/Desk_customer);elseif(temp=cu
11、st_num)desk_num=1;elsedesk_num=(cust_num/Desk_customer)+1;cout<<"您需要餐桌数为:"<<desk_num<<"张"<<endl; for(i=0;i<desk_num;i+)for(j=0;j<All_Desk_num;j+)if(Customer_ptr+j)->Give_Desk_num()=0)Desk_num_ing=j;(Customer_ptr+j)->Set_Desk_number(j+1);break;i
12、f(j=All_Desk_num)cout<<"餐馆所有餐桌已被预订!"<<endl; cout<<"餐桌预订成功!"<<endl;void Manage:Give_Cust_Type()int choice;cout<<"请问你是:"<<endl;cout<<"1、VIP用户"<<endl;cout<<"2、普通用户"<<endl;cout<<"3、退出
13、"<<endl;cin>>choice;switch(choice)case 1:(Customer_ptr+Desk_num_ing)->Set_Type("VIP用户");break;case 2:(Customer_ptr+Desk_num_ing)->Set_Type("普通用户");break;default:Manage:Manage();exit(1);void Manage:Give_Meal_Type()cout<<"请问您需要:"<<endl;c
14、out<<"1、早餐"<<endl;cout<<"2、中餐"<<endl;cout<<"3、晚餐"<<endl;cout<<"4、退出"<<endl;cin>>choice;switch(choice)case 1:Food_ptr=new Breakfast();(Customer_ptr+Desk_num_ing)->Set_Food(Food_ptr);break;case 2:Food_ptr=
15、new Lunch();(Customer_ptr+Desk_num_ing)->Set_Food(Food_ptr);break;case 3:Food_ptr=new Dinner();(Customer_ptr+Desk_num_ing)->Set_Food(Food_ptr);break;default :Manage:Manage();exit(1);void Manage:Give_food_num()int n;if(desk_num>1)cout<<"输入您需要的"(Customer_ptr+Desk_num_ing)->
16、Show_food_type();cout<<"份数:"<<endl;cin>>n;(Customer_ptr+Desk_num_ing)->Set_food_num(n);void Manage:Show_Menu() cout<<"您一共订了"<<desk_num<<"张餐桌!"<<endl;(Customer_ptr+Desk_num_ing)->Show();void Manage:Pay()int desk_number;cout
17、<<"请输入待结账的桌号:"cin>>desk_number;(Customer_ptr+desk_number-1)->Cut_Bill();*(Desk_ptr+desk_number)=0;cout<<"欢迎再次光临!"<<endl;#include<iostream>#include<string>using namespace std;class Foodpublic:string Food_Name;float Food_Price;virtual string G
18、et_food_type()return "您还未点餐!"virtual float Get_price()cout<<"您还未点餐!" return 0;virtual void choosefood()virtual void Show_Food()cout<<"食物名称:"<<Food_Name<<" "<<"食物价格:"<<Food_Price<<"元"<<endl;cla
19、ss Breakfast:public Foodpublic:Breakfast()egg.Food_Name="鸡蛋",egg.Food_Price=1;milk.Food_Name="牛奶",milk.Food_Price=2;soybean_milk.Food_Name="豆浆",soybean_milk.Food_Price=1;steamed_bread.Food_Name="馒头",steamed_bread.Food_Price=0.5;youtiao.Food_Name="油条"
20、,youtiao.Food_Price=0.5; chunjuan.Food_Name="春卷",chunjuan.Food_Price=1.5; food_type1="早餐"all_price1=0.0;B0=egg;B1=milk;B2=soybean_milk;B3=steamed_bread;B4=youtiao;B5=chunjuan;virtual void choosefood()cout<<"请输入您需要的早餐:"<<endl;cout<<"(0) "egg.S
21、how_Food(); cout<<"(1) "milk.Show_Food(); cout<<"(2) "soybean_milk.Show_Food();cout<<"(3) "steamed_bread.Show_Food();cout<<"(4) "youtiao.Show_Food(); cout<<"(5) "chunjuan.Show_Food();cout<<"(6) 退出"<<
22、;endl;cin>>i;for(j=0;i<6;j+)aj=i;cin>>i;virtual string Get_food_type()return food_type1;virtual float Get_price() for(int k=0;k<j;k+) for(int t=0;t<6;t+) if(ak=t) all_price1+=Bt.Food_Price; break; return all_price1;virtual void Show_Food()for(int a=0;a<j;a+)Ba.Show_Food();pri
23、vate:Food egg;Food milk;Food soybean_milk;Food steamed_bread;Food chunjuan;Food youtiao;string food_type1;float all_price1;int i;int j;int a20; Food B6;class Lunch:public Foodpublic:Lunch()eggplant.Food_Name="红烧茄子",eggplant.Food_Price=4; potato.Food_Name="土豆丝",potato.Food_Price=4
24、; cabbage_soup.Food_Name="白菜清汤",cabbage_soup.Food_Price=2.5;toufu_soup.Food_Name="豆腐清汤",toufu_soup.Food_Price=2.5;pepper.Food_Name="青椒肉丝",pepper.Food_Price=9; fish.Food_Name="酸菜鱼",fish.Food_Price=9; chicken.Food_Name="辣子鸡",chicken.Food_Price=10; duck
25、.Food_Name="水煮鸭",duck.Food_Price=10; beef.Food_Name="干巴牛肉",beef.Food_Price=12; prawn.Food_Name="油炸海虾",prawn.Food_Price=10;food_type2="午餐"all_price2=0.0; C0=eggplant; C1=potato; C2=cabbage_soup; C3=toufu_soup; C4=pepper; C5=fish; C6=chicken; C7=duck; C8=beef; C
26、9=prawn; virtual void choosefood()cout<<"请输入您需要的午餐:"<<endl;cout<<"(0) "eggplant.Show_Food(); cout<<"(1) "potato.Show_Food(); cout<<"(2) "cabbage_soup.Show_Food(); cout<<"(3) "toufu_soup.Show_Food(); cout<<&qu
27、ot;(4) "pepper.Show_Food();cout<<"(5) "fish.Show_Food(); cout<<"(6) "chicken.Show_Food();cout<<"(7) "duck.Show_Food();cout<<"(8) "beef.Show_Food(); cout<<"(9) "prawn.Show_Food();cout<<"(10) 退出"<&l
28、t;endl;cin>>i2;for(j2=0;i2<10;j2+)bj2=i2;cin>>i2;virtual string Get_food_type()return food_type2;virtual float Get_price() for(int k=0;k<j2;k+) for(int t=0;t<10;t+) if(bk=t) all_price2+=Ct.Food_Price; break;return all_price2;virtual void Show_Food()for(int a=0;a<j2;a+)Ca.Show
29、_Food();private:Food eggplant;Food potato;Food cabbage_soup;Food toufu_soup;Food pepper;Food fish;Food chicken;Food duck;Food beef; Food prawn;string food_type2;float all_price2;int i2;int j2;int b20;Food C10;food.h文件class Dinner:public Foodpublic:Dinner()cucumber.Food_Name="凉拌黄瓜",cucumber
30、.Food_Price=5;cabbage.Food_Name="炒小白菜",cabbage.Food_Price=7;Fish.Food_Name="清蒸鱼",Fish.Food_Price=10; douya.Food_Name="炒豆芽",douya.Food_Price=5; donggua.Food_Name="红枣冬瓜",donggua.Food_Price=5; zhusun.Food_Name="青椒竹笋",zhusun.Food_Price=7; haidai_soup.Foo
31、d_Name="海带汤", haidai_soup.Food_Price=5; zicai_soup.Food_Name="紫菜汤",zicai_soup.Food_Price=7;food_type3="晚餐"all_price3=0.0;D0=cucumber;D1=cabbage;D2=Fish;D3=douya;D4=donggua;D5=zhusun;D6=haidai_soup;D7=zicai_soup; virtual void choosefood()cout<<"请输入您需要的晚餐:"
32、;<<endl;cout<<"(0) "cucumber.Show_Food(); cout<<"(1) "cabbage.Show_Food(); cout<<"(2) "Fish.Show_Food();cout<<"(3) "douya.Show_Food();cout<<"(4) "donggua.Show_Food(); cout<<"(5) "zhusun.Show_Food();
33、cout<<"(6) "haidai_soup.Show_Food(); cout<<"(7) "zicai_soup.Show_Food();cout<<"(8) 退出"<<endl;cin>>i3;for(j3=0;i3<8;j3+)cj3=i3;cin>>i3;virtual string Get_food_type()return food_type3;virtual float Get_price() for(int k=0;k<j3;k+)
34、 for(int t=0;t<8;t+) if(ck=t) all_price3+=Dt.Food_Price; break;return all_price3;virtual void Show_Food()for(int a=0;a<j3;a+)Da.Show_Food();private:Food cucumber;Food cabbage;Food Fish;Food douya;Food donggua;Food zhusun;Food haidai_soup;Food zicai_soup;string food_type3;float all_price3;int i
35、3;int j3;int c20;Food D8;customer.h文件# include"food.h"class Customerprivate:int Desk_number;/桌号Food *Cust_Food_Ptr;string Cust_type;/顾客类型int food_num;/食物数量public:void Set_Desk_number(int num)Desk_number=num;/设置桌号void Set_Food(Food *p)Cust_Food_Ptr=p; Cust_Food_Ptr->choosefood();/设置餐点类型v
36、oid Set_Type(string typ_nam)Cust_type=typ_nam;/设置顾客类型void Set_food_num(int num)food_num=num;/设置食物分数void Show_food_type()cout<<Cust_Food_Ptr->Get_food_type();/输出餐点类型int Give_Desk_num()return Desk_number;/void Show()/cout<<"您的号码为: "<<Desk_number<<"号"<&
37、lt;endl;cout<<"您的菜单为:"<<endl;Cust_Food_Ptr->Show_Food();void Cut_Bill()if(Cust_type="VIP用户")cout<<"尊敬的VIP用户,您总共消费:"<<(Cust_Food_Ptr->Get_price()*0.85*food_num<<"元"<<endl;elsecout<<"尊敬的顾客,您总共消费:"<<Cust_Food_Ptr->Get_price()*food_num<<"元"<<endl;Desk_number=0;main.cpp文件#include"mana
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新版停薪留职合同2篇
- 新解读《GB-T 32621-2016社会保险经办业务流程 总则》
- 宅基买卖合同范本
- 购买app服务合同范本
- 装修合同范本弄丢了
- 煤球厂租赁合同范本
- 修剪绿化合同范本
- 体育教练兼职合同范本
- 大额物业维修合同范本
- 内账会计合同范本
- 个人防水补漏协议
- 作文格子稿纸800字-A4打印版
- DFMA设计制造可行性分析检查表范例
- 大象版五年级上册《科学》全一册全部课件(共25课时)
- 变电站二次电缆及回路编号
- 大学美术鉴赏(第2版)PPT完整全套教学课件
- 2023年放射科护理质量与安全管理计划汇编6篇
- 结算合同合同
- 领导干部经济责任审计
- 电子科技大学微积分上册
- 压力弹簧力度计算器及计算公式
评论
0/150
提交评论