餐厅点菜系统 设计说明书
餐馆点菜系统概要设计

文档编号:版本号:文档名称:概要设计说明书项目名称:××餐馆点菜系统项目负责人:编写:审核:年月日批准:年月日开发单位:目录1 引言 (4)1.1 编写目的 (4)1.2 背景 (4)1.3 参考资料 (4)2 总体设计 (4)2.1 需求规定 (4)2.1.1 系统的输入项目 (4)2.1.2 系统的输出项目 (5)2.1.3 系统处理功能 (5)2.2 运行环境 (6)2.2.1 硬件系统 (6)2.2.2 软件系统 (6)2.3 基本设计概念和处理流程 (6)2.3.1 基本设计概念 (6)2.3.2 操作流程 (7)2.4 系统结构 (7)2.5 功能需求与程序的关系 (10)2.6 人工处理过程 (12)3 接口设计 (12)3.1 用户接口 (12)3.2 内部接口 (12)3.3 外部接口 (12)3.3.1 与微机服务器接口 (12)3.3.2 与移动点菜机的接口 (13)4 运行设计 (13)4.1 运行模块组合 (13)4.2 运行控制 (15)5 系统数据库结构设计 (15)5.1 数据结构与程序的关系 (17)6 系统出错处理设计 (18)6.1 出错信息 (18)6.2 补救措施 (18)6.3 系统维护设计 (18)概要设计说明书1引言1.1编写目的《××餐馆点菜系统》概要设计的任务在于对需求分析中的用户对系统的功能要求、性能要求以及业务流程等制定总体规划,主要包括以下几个方面:(1)系统设计:以需求用例图为依据确定系统实现的基本框架。
(2)数据库逻辑设计:从用例关系中提取实体对象,分析实体间的关系。
(3)软件结构设计:确定组成软件系统的程序模块和以程序模块为单位、用层次结构表示的软件结构,以及各模块的功能描述和接口描述。
概要设计说明书的编写旨在用规范化的格式和规范化的语言描述概要设计中涉及的任务,以此作为软件开发人员进行软件开发、软件测试和维护的依据。
餐馆点菜系统概要设计

概要设计说明书饭店点菜系统概要设计说明书1 引言1.1 编写目的《××饭店点菜系统》概要设计的任务在于对需求分析中的用户对系统的功能要求、性能要求以及业务流程等制定总体规划,主要包括以下几个方面:(1)系统设计:以需求用例图为依据确定系统实现的基本框架。
(2)数据库逻辑设计:从用例关系中提取实体对象,分析实体间的关系。
(3)软件结构设计:确定组成软件系统的程序模块和以程序模块为单位、用层次结构表示的软件结构,以及各模块的功能描述和接口描述。
概要设计说明书的编写旨在用规范化的格式和规范化的语言描述概要设计中涉及的任务,以此作为软件开发人员进行软件开发、软件测试和维护的依据。
预期读者包括:系统设计人员、系统开发人员、系统测试人员。
1.2 背景系统名称: ××饭店点菜系统项目委托单位:××饭店项目开发单位:110514班第十组1.3 参考资料(1)《系统设计》(2)《××饭店点菜系统》项目技术开发合同(3)《××饭店点菜系统》需求分析说明书2 任务概述2.1 目标该阶段目的在于明确系统的数据结构和软件结构,此外总体设计还将给出内部软件和外部系统部件之间的接口定义,各个软件模块的功能说明,数据结构的细节以及具体的装配要求。
2.2 运行环境软件基本运行环境为Windows环境。
2.3 条件与限制为了评价该设计阶段的设计表示的“优劣程度”,必须遵循以下几个准则:(1)软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系。
(2)设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能。
(3)设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性。
(4)应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。
3 总体设计3.1.1基本设计概念和处理流程3.1.2基本设计概念《××饭店点菜系统》的需求分析是基于点菜工作的业务流程,因此点餐业务决定了系统的基本设计思想。
餐饮点菜系统设计书

餐饮点菜系统设计书1. 餐饮点菜系统概述餐饮点菜系统是通过将传统手工点菜流程进行电子信息化处理,实现方便,快捷,准确餐饮点菜,传菜管理系统。
2. 系统设计原则友好性本系统全部界面均基于直接可视化操作,易于上手,方便掌握。
贴近一般对电脑不是很精通人员的使用习惯。
方便性所有操作均考虑到了触摸屏的使用方式,尽可能使用单键操作,同时对于能够在后台进行自动处理的数据尽量在后台自动处理,减少用户的重复录入。
实用性功能设计应充分考虑用户的实际需求,不应追求大而全,初期一代产品应该提供最实用的功能,解决用户最关键和最需要的问题,对于任何导致用户感觉繁琐的功能应谨慎推行,宁缺毋滥,防止产生负面效应损害产品发展。
持续性任何软件产品或服务都不可能一劳永逸的解决用户需求,用户需求具有复杂性和多样性,并且用户需求随着对软件产品或服务的熟悉会逐步提升。
软件应具有可持续升级的相关设计。
3.系统主体功能及要点概述系统共分为前台预订,收银结账,楼面落单,厨房系统,会员管理,系统设置6部分。
前台预订前台预订是登记和记录桌台的预订前台预订中可以查看桌台的当前状态前台预定中可以新增和查看桌台预订状态,对于当天的预订记录会有相对应的提醒。
新增的预订分为普通预订和酒席预订两个部分预订记录进行汇总收银结账收银结账是对桌台进行收银结账管理收银结账可以查看桌台当前状态桌台产生埋单操作后会进行相关提示(可选)结账时调用后台设置好的多种结账方式和会员卡相关系统关联,可进行挂账,会员卡折扣等操作收银记录进行汇总,生成相关报表。
楼面落单楼面落单时在各楼层进行开台,点菜,催菜,埋单等操作楼面可查看当前桌台状态可根据各种状态对对应桌台进行筛选能对桌台进行开台,点菜,催菜,埋单等相关操作点菜时大厅和包厢应用不同的菜单可设置差异化的价格和折扣率点菜时菜单根据分类出现,具有快速查询功能点菜菜单数据根据设置分发至不同厨房打印催菜操作生成对应数据影响厨房桌台状态显示生成相关分类汇总明细厨房系统厨房系统根据催菜指令显示桌台状态并对点菜系统进行回馈,同时可管理相关菜单及菜品属性。
(完整)数据库课程设计餐厅点餐说明书

摘要在深入研究中小餐饮企业工作流程的基础上,分析制约餐饮企业工作效率的各种因素,发现影响效率的主要因素是普遍使用手工登记菜谱的现象,本系统运用计算机系统来实现餐饮企业工作流的信息化管理,采用面向对象的开发方法以及C#语言,依靠Visual studio2012作为开发工具,使用SQL Server 2008网络数据库存储数据。
实现了客户点餐、客户订餐、收银管理、用户管理四大功能,解决餐饮企业中客户点餐速度慢、服务员登记不清晰、厨师配餐漏配、菜谱更新不及时且不直观、会员管理混乱的现象。
关键词:餐饮点餐;Visual studio;SQL serve11系统简介 (1)1。
1编写目的 (1)1.2编写背景 (1)1。
3任务概述 (1)2需求分析 (2)2.1需求调查 (2)2.1。
1.餐馆的基本情况 (2)2。
1.2用户对系统的要求 (2)2.2数据流程图 (4)2.2。
1系统总体流程图 (4)2。
2。
2订餐业务流程图 (4)2.2.3功能模块图 (6)2。
3数据字典 (6)2.3。
1数据项 (6)2.3.2数据结构 (7)2。
3。
3数据流 (8)2。
3。
4数据存储 (8)2.3。
5处理过程 (8)3 概念结构设计 (10)3.1实体E-R图 (10)13。
2总体E—R图 (12)4逻辑结构设计 (13)4.1实体所对应的关系模式 (13)4。
2数据库表 (13)5物理结构设计 (20)5.1关系模式存取方法选择 (20)5。
2确定数据库的存储结构 (20)5。
2.1确定数据的存放位置 (20)5.2。
2数据库的系统配置 (21)6。
系统主要查询功能及SQL语句 (22)6。
1主要查询功能 (22)6。
2 SQL语句 (23)7系统实现 (29)7。
1系统的功能模块图 (29)7.2部分程序代码 (29)7。
3系统运行截图 (35)8设计小结 (41)8。
1心得与体会 (41)参考文献 (42)11系统简介1.1编写目的本文档是餐厅点菜系统设计文档的组成部分,编写此文档的目的是:明确此系统的需求和要具体实现什么功能,用来指导后期的数据库脚本的开发。
餐馆点菜系统--概要设计

束
点菜结束
图3.1 餐馆点菜系统客户端处理流程图
图3.2餐馆点菜系统服务端处理流程图
3
《餐馆点菜系统》的总体模块划分如图3.3所示。
图3.3餐馆点菜系统总体功能模块
客户端模块划分如图3.4所示。
图3.4 餐馆点菜系统客户端模块
服务器端模块划分如图所示。
图3.5 餐馆点菜系统服务端模块
3.2.2
1.3
[1]张俊兰,王文发,马乐荣,冯伍.软件工程[M].西安:西安交通大学出版社,2009.4
[2]刁成嘉.UML系统建模与分析设计[M].北京:机械工业出版社,2007.6
[3]贾经冬,林广艳.软件项目管理[M].北京:高等教育出版社,2012.12
[4]张志美.21天学通Visual C++[M].3版.北京:电子工业出版社,2014.1
3.3
该系统中的各个功能所涉及到的模块如表3.1所示。
表3.1各个功能所涉及到的模块表
功能
涉及到的模块
点菜功能
菜单系统、点菜模块、数据库操作模块
退菜功能
5.增加菜品模块:
输入:菜品信息。
输出:菜品加入到系统。
6.修改菜品模块:
输入:菜品信息。
输出:系统中的菜品被修改。
7.删除菜品模块:
输入:选中要删除的菜品。
输出:菜品从系统中删除。
8.菜单支付模块:
输入:账户名及密码。
输出:从账户中扣除相应金额,菜单显示已支付。
9.退出模块:
输入:退出指令。
输出:无。
餐馆点菜系统
——概要设计说明书
学院:数学与计算机科学学院
专业:计算机科学与技术(软件工程方向)
餐厅点菜系统 设计说明书

C++语言程序设计课程设计说明书一、课程设计题目及功能简介1、课程设计题目:餐厅点菜系统2、程序功能简介:1、能够实现顾客点菜、结帐、打印功能,能够实现顾客预定和VIP客户管理。
2、餐桌至少有15张。
3、客人规模在30人以上。
4、能够实现客人的排队等候等功能。
二、餐厅点菜系统背景及实用性1、餐厅点菜系统的数据结构表成员名(字段名)数据类型长度字段含义Food_Name string 食物名称Food_Price float 食物价格food_type string 餐点类型all_price int 总价B[6]、C[10]、D[8] Food 对象数组Desk_number int 桌号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)界面三当我们选择点餐后,屏幕上就会显示:请输入顾客数、选择用户或退出系统。
(4)界面四当我们输入顾客数和选择用户后,屏幕就会显示出:您所需要的餐桌数并请顾客输入所需餐的类型或退出系统。
(5)界面五如:当我们选择早餐后,系统就会在屏幕上自动显示出早餐菜单并供顾客选择。
(6)界面六当我们选择菜单后,系统就会自动在屏幕上显示出:顾客一共所定的餐桌数;顾客的号码;顾客所点菜单;然后,屏幕将请顾客输入所需份数。
(7)界面七当顾客输入份数后,屏幕又将显示出:餐厅管理系统,顾客又可以选择再次点餐,或者选择结账。
(完整word版)餐馆点菜系统详细设计说明书

文档编号: LMS--3版本号: V1.0文档名称:详细设计说明书项目名称:餐馆点菜系统项目负责人:王晓凤、曹春美编写:王晓凤、曹春美 2013年12月11日校对:曹春美 2013年12月12 日审核:王晓凤 2013年12月12日目录1 引言 (4)1.1 编写目的 (4)1.2 项目背景 (4)1.3 定义 (4)1.4 参考资料 (4)2 总体设计 (4)3 程序描述 (7)3.1 主模块 (7)3.2 点菜模块 (8)3.2.1菜的编号查验模块 (9)3.2.2相关信息获取模块 (10)3.2.3点菜登记模块 (11)3.3 修改模块 (11)3.3.1 加菜模块 (13)3.3.2删菜模块 (14)3.3.3 查询模块 (14)3.4 删除菜单模块 (16)3.4.1 菜单查询模块 (17)3.4.2相关信息获取模块 (18)3.4.3 删菜模块 (19)3.5 菜单查询模块 (20)3.6 登陆模块(建立连接) (23)3.7 退出模块 (24)3.8 结账模块 (24)3.9 系统操作模块 (24)3.9.1 系统操作权限查验 (24)3.9.2菜单库操作 (24)1 引言1.1编写目的经过对该餐馆点菜系统项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行可行性分析。
明确开发风险及其所带来的经济效益。
本报告经审核后,交由软件经理审查。
该需求规格说明书的采访对象是XXX餐馆点菜系统软件小组的研发工程师、测试工程师、销售工程师,版权归XXX所有,严禁外传。
1.2项目背景项目名称:餐馆点菜系统用户:××餐馆说明:随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象。
在餐饮业竞争越来越激烈的今天,酒店如何提高服务质量、管理能力显得越来越重要。
如果单凭手工操作,不仅效率低下,而且会极大地影响到酒店的服务质量。
酒店餐饮点菜系统作为餐饮管理规划的一部分,集点菜、结帐、查询、统计、设置等各种功能为一体,对于提高餐饮管理效率、增加收入发挥不可替代的作用。
饭店餐饮管理系统设计说明

饭店餐饮管理系统设计说明一、引言饭店餐饮管理系统是为餐厅提供帮助的一种工具。
它涵盖了餐厅中的点餐、菜品管理、库存管理、人员管理等多个环节,极大地提高了餐厅的管理效率,使餐厅获得了更多的利润。
本文旨在设计一套完整的饭店餐饮管理系统,以帮助餐厅提高自己的经济效益。
二、项目需求1.用于点餐与收银,在线点餐系统必不可少。
2.用于实时估算餐厅的库存量,这样菜品下架时,系统会提醒管理员及时管理进货。
3.用于招聘管理及工资绩效统计系统,使得餐厅管理人员更方便地管理员工情况,实现工资结算、考勤管理、任务完成情况等多个方面的管理。
4.用于系统排队等待预约管理,如用来预约包间、宴会厅等。
三、系统设计饭店餐饮管理系统分为前台及后台两个部分。
前台主要是用于顾客点餐及支付,后台主要是用于菜品管理、库存管理、员工管理等环节。
1.前台系统前台系统主要是用于顾客点餐、结账使用。
具体功能如下:(1)用户注册及登录功能:用户可以通过注册、登录账号、密码,进入餐厅首页。
(2)菜品信息查询功能:用户可以方便地查询菜品推荐及特色菜品等具体信息。
(3)在线点餐功能:用户可以根据自己所喜欢的菜品在线点餐。
(4)支付功能:用户通过桌面上的设备可进行支付,并能打印出发票。
2.后台系统后台系统主要是用于餐厅的管理环节。
具体功能如下:(1)菜品管理功能:餐厅管理人员可以通过后台管理系统,快速浏览餐厅的所有菜品及具体库存情况。
(2)库存管理功能:管理人员可以及时更新库存以避免库存不足的情况。
(3)员工管理功能:管理人员能够更好地管理员工情况,了解员工各种信息。
(4)时间排班功能:员工可以设置个人的假期,管理人员可以制定排班表匹配员工与客人的优劣关系。
(5)账单统计功能:管理人员能够快速有效地管理费用支出和进项,从而总结和优化节约成本。
四、技术栈开发界面:VueJS,后端框架使用NodeJS。
网络部分:使用Socket.IO框架,技术实现WebScaled development。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++语言程序设计课程设计说明书一、课程设计题目及功能简介1、课程设计题目:餐厅点菜系统2、程序功能简介:1、能够实现顾客点菜、结帐、打印功能,能够实现顾客预定和VIP客户管理。
2、餐桌至少有15张。
3、客人规模在30人以上。
4、能够实现客人的排队等候等功能。
二、餐厅点菜系统背景及实用性1、餐厅点菜系统的数据结构表成员名(字段名)数据类型长度字段含义Food_Name string 食物名称Food_Price float 食物价格food_type string 餐点类型all_price int 总价B[6]、C[10]、D[8] Food 对象数组Desk_number int 桌号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)界面三当我们选择点餐后,屏幕上就会显示:请输入顾客数、选择用户或退出系统。
(4)界面四当我们输入顾客数和选择用户后,屏幕就会显示出:您所需要的餐桌数并请顾客输入所需餐的类型或退出系统。
(5)界面五如:当我们选择早餐后,系统就会在屏幕上自动显示出早餐菜单并供顾客选择。
(6)界面六当我们选择菜单后,系统就会自动在屏幕上显示出:顾客一共所定的餐桌数;顾客的号码;顾客所点菜单;然后,屏幕将请顾客输入所需份数。
(7)界面七当顾客输入份数后,屏幕又将显示出:餐厅管理系统,顾客又可以选择再次点餐,或者选择结账。
(8)界面八当顾客选择结账后,系统就会根据顾客所输入的桌号计算并输出顾客所消费的金额,并显示:欢迎再次光临!3、实用性“餐厅点菜系统”适合各餐厅所用,餐厅可以根据自己餐厅规模的大小而设置适合自己的系统。
有了餐厅点菜系统,更方便顾客随时预订或直接点餐,同时更节约时间和人力资源,减少了餐厅的成本,提高了餐厅运行效率。
虽然次系统还有很多不完善的方面,但此系统还是能基本满足一般小餐厅的需求。
三、“餐厅点菜系统”流程图四、“餐厅点菜系统”模板介绍系统初始化输入餐桌数输入每桌人数进入餐厅管理系统点菜 结账 打0.85折 输入客人量 vip 客户计算桌数、分配桌号退出不打折点餐输入份额显示已点菜单 输出总额结束餐厅管理系统餐厅管理系统餐厅管理系统小于15张小于30人开始本系统共分为食物、顾客、管理、实行(主函数)等四个部分。
1、食物此部分又分为四个类----食物类、早餐类、午餐类、晚餐类。
(1)食物类食物类描述了食物名称、价格等数据特性,还分别设置了返回食物价格、显示食物菜单、显示餐点类型等函数特性。
(2)早餐类早餐类设置了早餐菜单、类型、总价格等数据特性,还设置了选择早餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。
(3)午餐类午餐类设置了午餐菜单、类型、总价格等数据特性,还设置了选择午餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。
(4)晚餐类晚餐类设置了晚餐菜单、类型、总价格等数据特性,还设置了选择晚餐菜单、计算顾客消费价格、显示顾客所选择的菜单,和输出餐点类型等函数。
2、顾客此类描述了桌号、顾客类型、食物数量等数据特性,还设置了设置桌号、设置餐点类型、设置顾客类型、设置食物分数、输出餐点类型、输出桌号、显示所点菜单、根据顾客类型输出消费总额等函数。
3、管理此类描述了本餐厅所有的餐桌数、所能容纳的顾客数量、每桌顾客数、顾客人数等数据特性,还设置了返回顾客类型、分配桌子给顾客、输入所需餐点类型、显示菜单、顾客点餐份数等函数。
4、实行次部分主要先使餐厅管理系统初始化,再调用前面的六个类,使这六个连为一个整体并运行。
五、总结通过本次的C++课程设计,让我学会了把书本上的知识应用到了实际中来。
虽然在这几周中有过挫折和坎坷,有的问题一直到了最后才得以解决,但我觉得很有价值。
如:在编程中遇到很多意外错误,有些错误还不易发现,并且此系统的有些功能比较难写,还得在老师、同学的帮助下完成。
这个程序还存在许多瑕疵,不是那么的完善,如:此体统不能让顾客取消预订,不能让顾客设置就餐时间等。
但是此系统是自己查资料、写代码、请教他人、解决无数的问题后,才写出来的,它凝聚着我的智慧和价值,让我很有成就感。
在这过程中,我尽力了,我认真去编写过,也从中感受到c++语言课程设计其实也没我想象中那么困难,即使做不到完美,也能在原来的基础上提升很多。
程序设计代码写得过于繁琐,不够人性化,是因为我的能力还不够,特别是把握指针、数组等内容的能力上,我还很欠缺。
这次课程设计锻炼我的意志,磨练我的耐心,提升自我的编程能力,最重要的是这次课程设计让我战胜了对计算机课程的恐惧,让我找到了学好它的信心,明白了“世上无难事,只怕有心人”。
最后,这次课程设计也很感谢为我解疑释难的老师和朋友,是你们让我懂得了更多编程的知识,同时感谢老师和朋友一起营造的良好的学习环境,为学习增加了不少有利条件。
manage.h文件# include"customer.h"class Manage{private:int *Desk_ptr;Food *Food_ptr;Customer *Customer_ptr;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;All_Desk_num=Desk;Desk_ptr=new int[All_Desk_num];Customer_ptr=new Customer[All_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);else{if(temp==cust_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;}}if(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、退出"<<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;cout<<"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=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)->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<<"请输入待结账的桌号:";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 Food{public:string Food_Name;float Food_Price;virtual string Get_food_type(){return"您还未点餐!";}virtual float Get_price(){cout<<"您还未点餐!";return 0;}virtual void choosefood(){}virtual void Show_Food(){cout<<"食物名称:"<<Food_Name<<" "<<"食物价格:"<<Food_Price<<"元"<<endl;}};class Breakfast:public Food{public: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="油条",youtiao.Food_Price=0.5;chunjuan.Food_Name="春卷",chunjuan.Food_Price=1.5;food_type1="早餐";all_price1=0.0;B[0]=egg;B[1]=milk;B[2]=soybean_milk;B[3]=steamed_bread;B[4]=youtiao;B[5]=chunjuan;}virtual void choosefood(){cout<<"请输入您需要的早餐:"<<endl;cout<<"(0) ";egg.Show_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) 退出"<<endl;cin>>i;for(j=0;i<6;j++){a[j]=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(a[k]==t){all_price1+=B[t].Food_Price;break;}return all_price1;}virtual void Show_Food(){for(int a=0;a<j;a++)B[a].Show_Food();}private: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 a[20];Food B[6];};class Lunch:public Food{public:Lunch(){eggplant.Food_Name="红烧茄子",eggplant.Food_Price=4;potato.Food_Name="土豆丝",potato.Food_Price=4;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.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;C[0]=eggplant;C[1]=potato;C[2]=cabbage_soup;C[3]=toufu_soup;C[4]=pepper;C[5]=fish;C[6]=chicken;C[7]=duck;C[8]=beef;C[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<<"(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) 退出"<<endl;cin>>i2;for(j2=0;i2<10;j2++){b[j2]=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(b[k]==t){all_price2+=C[t].Food_Price;break;}return all_price2;}virtual void Show_Food(){for(int a=0;a<j2;a++)C[a].Show_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 b[20];Food C[10];};food.h文件class Dinner:public Food{public:Dinner(){cucumber.Food_Name="凉拌黄瓜",cucumber.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.Food_Name="海带汤", haidai_soup.Food_Price=5;;zicai_soup.Food_Name="紫菜汤",zicai_soup.Food_Price=7;food_type3="晚餐";all_price3=0.0;D[0]=cucumber;D[1]=cabbage;D[2]=Fish;D[3]=douya;D[4]=donggua;;D[5]=zhusun;D[6]=haidai_soup;D[7]=zicai_soup;}virtual void choosefood(){cout<<"请输入您需要的晚餐:"<<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();cout<<"(6) ";haidai_soup.Show_Food();cout<<"(7) ";zicai_soup.Show_Food();cout<<"(8) 退出"<<endl;cin>>i3;for(j3=0;i3<8;j3++){c[j3]=i3;cin>>i3;}}virtual string Get_food_type(){return food_type3;}virtual float Get_price(){for(int k=0;k<j3;k++)for(int t=0;t<8;t++)if(c[k]==t){all_price3+=D[t].Food_Price;break;}return all_price3;}virtual void Show_Food(){for(int a=0;a<j3;a++)D[a].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 i3;int j3;int c[20];Food D[8];};customer.h文件# include"food.h"class Customer{private: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();}//设置餐点类型void 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<<"号"<<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"manage.h"int main(){int All_desknumber;//总餐桌数int Customer_num;//每张餐桌能容纳的顾客人数int cust_number;//顾客数cout<<"餐厅管理系统初始化……"<<endl;cout<<"输入该餐厅能容纳的餐桌数(不得小于张):";cin>>All_desknumber;if(All_desknumber<15){cout<<"您的输入错误!"<<endl;return 0;}else{cout<<"输入每张餐桌容纳的客人数:";cin>>Customer_num;cout<<"初始化完毕!"<<endl;}Manage My_Manage(All_desknumber,Customer_num);//声明一个对象while(1){int choice=1;cout<<"餐厅管理系统:"<<endl;cout<<"1.点餐\n2.结账\n3.退出系统"<<endl;cout<<"请选择:";cin>>choice;switch(choice){case 1:{cout<<"请输入顾客数(顾客数不能小于人):";cin>>cust_number;if(cust_number<30){cout<<"您的输入错误"<<endl;return 0;}else{My_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:{My_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。