收藏 分享(赏)

餐厅点菜系统 设计说明书.doc

上传人:微传9988 文档编号:2549225 上传时间:2018-09-21 格式:DOC 页数:20 大小:299KB
下载 相关 举报
餐厅点菜系统 设计说明书.doc_第1页
第1页 / 共20页
餐厅点菜系统 设计说明书.doc_第2页
第2页 / 共20页
餐厅点菜系统 设计说明书.doc_第3页
第3页 / 共20页
餐厅点菜系统 设计说明书.doc_第4页
第4页 / 共20页
餐厅点菜系统 设计说明书.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

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

2、int 桌号 Cust_type string 顾客类型 food_num int 食物数量2All_Desk_numnumber int 餐厅总桌量 Desk_customer int 每桌人数desk_num int 客人所定桌数All_desk int 总餐桌数Customer_num int 每桌人数cust_number int 客人规模 2、界面(1)界面一先进入:餐厅管理系统初始化主管可以设置本餐厅所能容纳的餐桌数(不得小于 15 张)及每张餐桌所容纳的客人数。(2)界面二初始化完毕后,就进入了:餐厅管理系统第 3 页 共 20 页顾客可以选择:点餐、结账、或退出系统。(3)界面

3、三当我们选择点餐后,屏幕上就会显示:请输入顾客数、选择用户或退出系统。(4)界面四当我们输入顾客数和选择用户后,屏幕就会显示出:您所需要的餐桌数并请顾客输入所需餐的类型或退出系统。(5)界面五4如:当我们选择早餐后,系统就会在屏幕上自动显示出早餐菜单并供顾客选择。(6)界面六当我们选择菜单后,系统就会自动在屏幕上显示出:顾客一共所定的餐桌数;顾客的号码;顾客所点菜单;然后,屏幕将请顾客输入所需份数。(7)界面七第 5 页 共 20 页当顾客输入份数后,屏幕又将显示出:餐厅管理系统,顾客又可以选择再次点餐,或者选择结账。(8)界面八当顾客选择结账后,系统就会根据顾客所输入的桌号计算并输出顾客所消

4、费的金额,并显示:欢迎再次光临!3、实用性“餐厅点菜系统” 适合各餐厅所用,餐厅可以根据自己餐厅规模的大小而设置适合自己的系统。有了餐厅点菜系统,更方便顾客随时预订或直接点餐,同时更节约时间和人力资源,减少了餐厅的成本,提高了餐厅运行效率。虽然次系统还有很多不完善的方面,但此系统还是能基本满足一般小餐厅的需求。6三、“餐厅点菜系统”流程图系统初始化输入餐桌数输入每桌人数进入餐厅管理系统点菜 结账打 0.85 折输入客人量 vip 客户计算桌数、分配桌号退出不打折点餐输入份额显示已点菜单输出总额结束餐厅管理系统餐厅管理系统餐厅管理系统小于 15 张小于30人四、“餐厅点菜系统”模板介绍开始第 7

5、 页 共 20 页本系统共分为食物、顾客、管理、实行(主函数)等四个部分。1、 食物此部分又分为四个类-食物类、早餐类、午餐类、晚餐类。(1)食物类食物类描述了食物名称、价格等数据特性,还分别设置了返回食物价格、显示食物菜单、显示餐点类型等函数特性。(2)早餐类早餐类设置了早餐菜单、类型、总价格等数据特性,还设置了选择早餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。(3)午餐类午餐类设置了午餐菜单、类型、总价格等数据特性,还设置了选择午餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。(4)晚餐类晚餐类设置了晚餐菜单、类型、总价格等数据特性,还设置了

6、选择晚餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。2、顾客此类描述了桌号、顾客类型、食物数量等数据特性,还设置了设置桌号、设置餐点类型、设置顾客类型、设置食物分数、输出餐点类型、输出桌号、显示所点菜单、根据顾客类型输出消费总额等函数。83、管理此类描述了本餐厅所有的餐桌数、所能容纳的顾客数量、每桌顾客数、顾客人数等数据特性,还设置了返回顾客类型、分配桌子给顾客、输入所需餐点类型、显示菜单、顾客点餐份数等函数。4、实行次部分主要先使餐厅管理系统初始化,再调用前面的六个类,使这六个连为一个整体并运行。五、总结通过本次的 C+课程设计,让我学会了把书本上的知识应用到了实际中

7、来。虽然在这几周中有过挫折和坎坷,有的问题一直到了最后才得以解决,但我觉得很有价值。如:在编程中遇到很多意外错误,有些错误还不易发现,并且此系统的有些功能比较难写,还得在老师、同学的帮助下完成。这个程序还存在许多瑕疵,不是那么的完善,如:此体统不能让顾客取消预订,不能让顾客设置就餐时间等。但是此系统是自己查资料、写代码、请教他人、解决无数的问题后,才写出来的,它凝聚着我的智慧和价值,让我很有成就感。在这过程中,我尽力了,我认真去编写过,也从中感受到 c+语言课程设计其实也没我想象中那么困难,即使做不到完美,也能在原来的基础上提升很多。程序设计代码写得过于繁琐,不够人性化,是因为我的能力还不够,

8、特别是把握指针、数组等内容的能力上,我还很欠缺。这次课程设计锻炼我的意志,磨练我的耐心,提升自我的编程能力,最重要的是这次课程设计让我战胜了对计算机课程的恐惧,让我找到了学好它的信心,明白了“世上无难事,只第 9 页 共 20 页怕有心人” 。最后,这次课程设计也很感谢为我解疑释难的老师和朋友,是你们让我懂得了更多编程的知识,同时感谢老师和朋友一起营造的良好的学习环境,为学习增加了不少有利条件。manage.h 文件# include“customer.h“class Manageprivate:int *Desk_ptr;Food *Food_ptr;Customer *Customer_p

9、tr;int All_Desk_num;int Desk_customer;/每桌客人数int Desk_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

10、;All_Desk_num=Desk;Desk_ptr=new intAll_Desk_num;Customer_ptr=new CustomerAll_Desk_num;for(i=0;iSet_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_cust

11、omer);elseif(temp=cust_num)desk_num=1;elsedesk_num=(cust_num/Desk_customer)+1;coutGive_Desk_num()=0)Desk_num_ing=j;(Customer_ptr+j)-Set_Desk_number(j+1);break;if(j=All_Desk_num)coutchoice;switch(choice)case 1:(Customer_ptr+Desk_num_ing)-Set_Type(“VIP用户“ );break;case 2:(Customer_ptr+Desk_num_ing)-Set

12、_Type(“普通用户“ );break;default:Manage:Manage();exit(1);void Manage:Give_Meal_Type()coutchoice;switch(choice)case 1:Food_ptr=new Breakfast();(Customer_ptr+Desk_num_ing)-Set_Food(Food_ptr);break;case 2:Food_ptr=new Lunch();(Customer_ptr+Desk_num_ing)-Set_Food(Food_ptr);break;case 3:Food_ptr=new Dinner()

13、;(Customer_ptr+Desk_num_ing)-Set_Food(Food_ptr);break;default :Manage:Manage();exit(1);12void Manage:Give_food_num()int n;if(desk_num1)coutShow_food_type();coutn;(Customer_ptr+Desk_num_ing)-Set_food_num(n);void Manage:Show_Menu()coutShow();void Manage:Pay()int desk_number;coutdesk_number;(Customer_p

14、tr+desk_number-1)-Cut_Bill();*(Desk_ptr+desk_number)=0;cout#includeusing namespace std;class Foodpublic:string Food_Name;float Food_Price;virtual string Get_food_type()return “您还未点餐!“;第 13 页 共 20 页virtual float Get_price()couti;for(j=0;ii;virtual string Get_food_type()return food_type1;virtual float

15、 Get_price()14for(int k=0;ki2;for(j2=0;i2i2;virtual string Get_food_type()return food_type2;virtual float Get_price()for(int k=0;ki3;for(j3=0;i3i3;virtual string Get_food_type()return food_type3;virtual float Get_price()for(int k=0;kchoosefood();/设置餐点类型void Set_Type(string typ_nam)Cust_type=typ_nam;

16、/设置顾客类型void Set_food_num(int num)food_num=num;/设置食物分数void Show_food_type()coutGet_food_type();/输出餐点类型int Give_Desk_num()return Desk_number;/void Show()/coutShow_Food();void Cut_Bill()if(Cust_type=“VIP用户“)coutGet_price()*0.85*food_numGet_price()*food_numAll_desknumber;if(All_desknumberCustomer_num;co

17、utchoice;switch(choice)case 1:coutcust_number;if(cust_number30)cout“您的输入错误“endl;return 0;elseMy_Manage.Give_Cust_Type();/顾客类型My_Manage.Give_Desk(cust_number);/分配桌子给顾客My_Manage.Give_Meal_Type();/所需点餐类型My_Manage.Show_Menu();/显示菜单My_Manage.Give_food_num();/顾客点餐份数break;case 2:20My_Manage.Pay();break;case 3:My_Manage.Manage();default :cout“您的输入错误!“ endl;break;return 0;参考文献1、 C+程序设计 钱能 清华大学出版社 2010.12、 C+程序设计试验指导 钱能 清华大学出版社 2009.63、 C 程序设计 谭浩强 清华大学出版社 2009.84、 C+语言程序设计(第 4 版) 郑莉 清华大学出版社 2010.55、 C+语言程序设计(第 3 版)学生用书 郑莉 清华大学出版社 2010.10

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报