饭店点菜系统详细设计说明书_第1页
饭店点菜系统详细设计说明书_第2页
饭店点菜系统详细设计说明书_第3页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.软件工程详细设计说明书文档饭店点餐管理系统的分析与设计学院名称信电工程学院专业名称计算机科学与技术所属学期2015-2016( 一 )班级学号姓名13 计卓20130501214陈尧小组名单13 计卓20130501106韩洁13 计卓20130501323刘蕊13 计卓20130501339邓辉任课教师王 小 磊2015 年 12月 24日精选文档.目录F.1引言4编写目的 .4背景 .4定义 .4参考资料 .5F.2程序系统的结构.5制菜统筹 .6推送新菜 .7点菜服务 .7会员服务 .8评价 .8账单管理 .9菜单管理 .9F.3制菜统筹设计说明.10程序描述 .10功能 .10性能

2、.11输入项 .11输出项 .11算法 .12流程逻辑 .15接口 .16存储分配 .16注释设计 .18限制条件 .18测试计划 .18尚未解决的问题.19F.4点菜管理模块程序.19程序描述 .19功能 .19性能 .21输入项 .21输出项 .21算法 .22流程逻辑 .26接口 .26存储分配 .26注释设计 .28限制条件 .28测试计划 .28尚未解决的问题.28F.5评价管理模块程序.29精选文档.程序描述 .29功能 .29性能 .30输入项 .30输出项 .31算法 .31流程逻辑32接口32存储分配32注释设计33限制条件33测试计划33尚未解决的问题34精选文档.F.1引

3、言编写目的在前一阶段概要设计说明书 中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分为若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、 数据结构的设计等。在以下详细设计报告中将对本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定应该如何具体的实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。主要工作有: 根据在需求分析说明书中所描述的功能、流程,并依照概要设计说明书所确定的处理流程、总体结构和运行模块设计,设计完成程序系统的结构,完成制菜统筹模块、点菜管理模块、评价管理模块的程序描述,其中包括各模块的设计说明、程

4、序描述、功能、性能、输入、输出、算法、流程逻辑、接口等。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。背景为了更好的满足广大消费者的多元化消费需求和不同层次的消费水平,提高饭店的服务管理质量,提高饭店工作人员的工作效率,我开发小组在多方面考察、分析、研究现有饭店点菜管理系统的基础之上,以提高消费者的满意程度及商家的服务水平和市场竞争力为目标,致力于开发出一套可视化程度高、功能全面、集分析管理于一体的饭店点餐系统。定义SQL Server: 系统服务器所使用的数据库管理系统。SQL:一种用于访问查询数据库的语言事务流 : 数据进入模块后可能有多种路径进行处理主键 :

5、 数据库表中的关键域,值互不相同精选文档.外部主键 : 数据库表中与其他表主键关联的域Vs2013:Microsoft Visual Studio(简称 VS)是美国微软公司的开发工具包系列产品。C# :C#是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。参考资料百度文库F.2程序系统的结构饭店点餐系统制推点会账菜菜送菜员评单单统新服服价管管筹菜务务子理理子子子子系子子系系系系统系系统统统统统统顾客评价制菜提示推送顾客退菜注册会员顾客经理配菜菜品子系统筹传菜新菜点菜和催会员服务结账核实日结管理统管理菜获取保展示查询验证查看查询查询按日查询查看分类查询

6、库存用户存桌号群发就餐基本积分结账就餐菜单信息所有期进评价单中表单菜状(正修改消费行分计算统计份修改态则表记录组克数添加数菜是保存资料达菜品否制点菜式)保存桌作状信息获取保存修改号态查询查看评价消费计算菜品页面记录消息就餐查询配查询字典记录删除菜表所有菜品会员(验删除菜返回证会(当日员名换取相关菜单)是否抵用信息重劵复)精选文档.制菜统筹1. 菜品提示功能厨师:下一道菜品正在制作的菜下一道菜学徒:下一道菜所需的食材种类和分量正在配的菜下一道菜顾客:菜品正在制作2. 制菜的统筹功能算法:通过客人点菜的时间可以优先做菜,有和这道菜一样的菜就可以一块做,然精选文档.后再通过算法显示下一道菜,前一个桌

7、号总比下一个桌号多一道菜。该功能实现了制菜的统筹合理安排制菜顺序。同时将正在制作的菜状态设置为不可退。还能提示下一道菜的菜名和具体信息,给厨师的下手准备食材。3. 无食材提示当一道菜的食材不够用了会提示客户退菜或者换一道菜以及服务员,并自动从菜单中删除这道菜顾客根据提示退换菜。推送新菜1. 新菜录入厨师新研制的菜肴的食材种类和分量详细的录入系统,储存在新菜菜单中。2. 评分机制根据一周顾客的评分,若低于所有菜品的平均分则删除这道新菜,若高于平均分则加入菜单中。点菜服务1. 顾客点菜(1)桌号的输入顾客进入饭店之后选择座位坐下, 通过扫描二维码在系统中先录入自己的桌号以方便点菜。( 2)口味的选

8、择与菜色推荐顾客进入系统之后,可以根据自己的偏好选择酸甜辛辣,淡咸之类的口味,从而系统自动进行推荐菜色, 如以前顾客品尝过后评分较高的菜色或者该口味本饭店的招牌菜之类的菜色,同时,系统还可以自动推荐其他口味的评分较高的菜色以供顾客选择。( 3)点菜与写备注顾客确定了自己所点的菜色之后,可以在系统上进行确认点菜,在点菜的同时,可以对自己所点的菜写入相应备注, 如需要多一点辣味或者少加某样调料等等来满足自己的需求。(4)生成菜单与提交制菜统筹系统顾客点完菜之后,系统自动生成桌号+菜色 +备注的菜单并将其提交至制菜统筹系统。精选文档.2. 顾客退菜和催菜(1)退菜顾客在提交了菜单之后,如果想退菜,在

9、系统中找到自己所点菜,如果厨师正在做这道菜,那么便无法进行退菜,如果厨师还没有做到这道菜,便可以从自己的菜单中删除这道菜,那么相应的制菜统筹系统中也会删除这道菜。(2)催菜顾客点菜之后,在等待的过程中,可以在系统中点催菜按钮,以此来催促厨师加快制作速度。会员服务1. 注册会员顾客可以通过系统中的注册会员按钮进入注册会员选项,然后填写注册会员需要写明的各项具体信息提交给系统,系统从自身数据库中判断,某些不能重复的项目如手机号码等如和数据库重复冲突了则不能通过,并且提示顾客重新确认自己所填写的信息,而填写完成并且通过之后,则进入会员缴纳相应的会员费部分,缴纳会员费之后则正式成为饭店会员,同时系统为

10、该客户分配唯一的会员号码,并以此作为识别会员身份的凭证。2. 会员服务会员登录系统之后,便可以在其他任何地方都可以打电话预约座位和提前点菜,到饭店之后只需在预留的座位上等待直至菜品上桌,或者到饭店在进行点菜也可以。点完菜之后,可以为会员提供相应的打折措施,消费500 元以内打9 折, 500 到 1000 元打 8.5折, 1000 元以上打 8 折,与此同时还可以进行积分措施,消费多少则积相应的分数,到了一定程度后,每100 分可以兑换5 元现金券或者相应小礼品。评价1. 判断顾客是否已经付款2. 如果没付款等待付款,如果付款显示评论界面3. 系统给出非常好,很好,一般,很差四个选项给顾客选

11、择,顾客可以根据服务态度,菜色,就餐环境等进行评价,评价完成后在顾客评价界面显示4. 顾客评价完成后,系统根据算法显示饭菜的好评率,并赠送相应的奖励给客户精选文档.5. 经理登录系统可以查看顾客的评论以便进行调整,然后辩论其真实性再把评论反馈给相关人员,相关人员根据评论作出相应的调整账单管理1. 顾客提出付款信息2. 收银员收到消费清单后和顾客进行付款等操作,操作成功后,确定金额并打出清单3. 收银员向经理报告日收益,经理核实并确定4. 经理对厨房对外采购支出信息,饭店税收支出信息,员工信息支出统计,再根据月收益形成饭店支出表,最后算出饭店的日收益菜单管理菜单管理系统有四个终端,按身份登录不同

12、的身份进入的界面不一样。(1)顾客、服务员终端主要满足如下功能:1顾客可以在各个类别(特色菜、招牌菜、优惠菜、套餐)下选择自己中意的菜,并查看该菜的介绍,评价,所需时间,还可以选择口味(拉框),如没有,可以在备注里填写。2顾客可以在总价这项里查询,增添和删除菜,也可以看到自己的消费金额。3顾客在消费完毕后,可以留下自己的意见和建议。4服务员可以帮顾客点菜。5顾客或服务员点菜完毕后,系统会自动将菜单传送到制菜统筹子系统。(2)配菜员终端主要满足如下功能:1接收制菜统筹子系统分配的需要的配菜的菜名、份数。2如果菜所需材料没有了,配菜员通过终端选中菜后面的红×(菜单管理系统自动通知服务员终

13、端,服务员再去向顾客解释并询问顾客是否换菜,同时从当天菜单中删除,以免后面顾客继续点)。(3)管理员终端主要满足如下功能:1根据统计系统反馈的数据,修改菜单、类别。2根据统计系统反馈的数据,及时跟员工协调。3将每天的打折信息更新。精选文档.4反馈客户的意见及建议。5为员工分配相应的权限。F.3制菜统筹设计说明程序描述现如今大部分饭店之中厨师制菜通常需要一个传菜员来提示他该做哪道菜,提示服务员应该将菜送到哪张桌。不仅时间上和人力物力上都造成了极大的浪费,而且传菜员一旦出错,会造成顾客等待时间过长的不愉快体验,从而给饭店造成损失。所以我们的制菜统筹子系统之中将传菜员的职能转交由计算机来执行,通过算

14、法智能的统筹。计算机不用担心出错,因而顾客的体验都会比较好。不仅如此,制菜统筹系统还充分利用了厨师的一个下手。功能制菜统筹子系统:制菜统筹子系统输入处理输出按顺序计算注意:配菜员显示配菜员:屏上有红和绿色的配菜名厨师:服务员:点菜信息出需做的按钮注:厨师显示屏上配菜材料即将烧的菜几号桌将传送过来菜、份数。有一个绿色的按钮份数的点菜信息结合配菜单红色表示无食材,绿色表示制作完系统自动将信息传追加到点菜将配菜信息成,系统自动根据数组中传给配菜送给服务员,并自点菜信息计算出需员、菜名传动从菜单表中删除上菜的桌号菜名送给厨师绿色表示配菜完成精选文档.a. 提示厨师正在制作的菜品和下一道菜品,同时提示学

15、徒下一道菜所需的食材种类和分量。还有提示顾客菜品正在制作。b. 通过客人点菜的时间可以优先做菜,有和这道菜一样的菜就可以一块做,然后再通过算法显示下一道菜,前一个桌号总比下一个桌号多一道菜该功能实现了制菜的统筹合理安排制菜顺序。c. 将正在制作的菜状态设置为不可退。d. 提示下一道菜的菜名和具体信息。e. 提示客户退菜或者换一道菜。性能计算时间 <20s;传送时间 <3s;输入项菜单信息菜名( Dish)-类型: String份数 (number)-类型: Int桌号( TableNumber)-类型: Int备注( Remarks) -类型 :String时间 (Time)-类型

16、: time;是否完成 (IsFinish)-类型: boolean ;默认: false输出项配菜名 (DishesName)-类型 :String配菜份数 (DishesNumber)-类型 :int即将烧的菜 (SoonDish)-类型 :String备注( Remarks)-类型 :String精选文档.* 号桌 (num)-类型 :int算法每个点菜单用结构体存放,并添加时间、是否制作完成字段N个点菜单存放在结构体中使用 for循环遍历计算出即将需要做的菜Count()/统计需做菜的份数int N=5;int j = 10;int i=1;string NO = "0&qu

17、ot;SqlDataReader dr;/用于读取数据流while(i<=N)string cmd = "Select Count(making) From Table Wheremaking='1' and Table_NO='" + i + "'"/统计需做菜的份数SQL语句dr = help.DataRead(cmd);/执行 SQL语句dr.Read();/读数据NO = dr0.ToString();dr.Close();/关闭读取流string cmd2 = " update Tabe_use

18、Set UP ='" +NO+ "'whereTable_NO='" + i + "'"/更新桌子使用情况j = help.DataWrite(cmd2);/执行 SQL语句i+;精选文档.stringcmd3 = "Selecttable_NO From Tabe_use where UP=(Select min(UP)From Tabe_use) and use_ing='1'"/SQL语句SqlDataReader dr = help.DataRead(cmd3);if

19、(dr.Read()/判断数据流是否为空string cmd = "Select * from Table where making='0' andmaking_time!='0'and table_NO='" + dr0.ToString() + "'"/查询未做的菜dr.Close();/关闭读取流dr = help.DataRead(cmd);/执行 SQL语句dr.Read();dr.Close();cmd = "Select Count(dish_names) From Table wh

20、eredish_names='" + label2.Text + "'"/SQL语句SqlDataReader drNum2 = help.DataRead(cmd);drNum2.Read();/数据流label2.Text= label2.Text+ " 数量: " + drNum20.ToString();/将需做菜的份数传送到配菜员的显示屏上drNum2.Close();elsedr.Close();string cmd2 = "select*from Table where making='0'

21、; andmaking_time!='0'"/SQL语句SqlDataReader dr2 = help.DataRead(cmd2);if (dr2.Read()/判断数据流中是否有数据label2.Text = dr22.ToString();精选文档.dr2.Close();cmd2 = "Select Count(dish_names) From Table where dish_names='" + label2.Text + "'"SqlDataReader drNum2 = help.DataRea

22、d(cmd2);drNum2.Read();label2.Text = label2.Text + "数量: " +drNum20.ToString();/将数量传送到厨师显示屏上drNum2.Close();elsedr2.Close();label2.Text = "没有下一道菜了"精选文档.流程逻辑开始点菜子系统传送过来* 桌菜单信息将 * 菜单信息传送到相应类别(菜)模块将 * 菜单信息保存在菜单数组中使用for循环统计即将做的菜的总数标志相应*桌的菜(已做)将正在做菜桌信息发送到服务员端在配菜表中查询即将做的菜将配菜信息发给配菜员食材是否充足N

23、从当日菜单中删除这道菜Y将食材不足信息发送到服务员和客户端配菜员制作即将做的菜名发送到厨师端通知服务员在点菜单做好相应的标志结束精选文档.接口本模块与其它相关模块间平行方式连接。存储分配Check_list数据表,作用是描述订餐的信息Check_list表序号字段名数据类型是否主键1Table_NOVarchar(50)Yes2Dish_namesVarchar(50)No3PriceDecimal(18,0)NoGarnish 数据表,作用是描述配菜的信息Garnish 表序号字段名数据类型是否主键1Garnish_NumberVarchar(50)Yes2Dish_namesVarchar

24、(50)No3Food_NameVarchar(50)No4Garnish_AmountfloatNo意义桌号菜名价格意义配菜号菜名食材名数量精选文档.Menu数据表,作用是描述菜单的信息Menu表序号字段名数据类型是否主键1Dish_namesVarchar(50)Yes2PrcieDecimal(18,0)No3Making_timeVarchar(50)No4PictureimageNoMenuList 数据表,作用是描述菜单类别的信息MenuList 表序号字段名数据类型是否主键1CidintYes2Dish_namesChar(20)No3pcidintNoStock 数据表,作用是

25、描述库存的信息Stock 表序号字段名数据类型是否主键意义菜名价格制作时间图片意义菜号菜名类别意义精选文档.1Food_NameVarchar(50)Yes食材名2Stock_amountfloatNo库存量3Stock_price Deciamal(18,0) 价格 No注释设计a、加在模块首部的注释;b、加在各分枝点处的注释;c、对各变量的功能、范围、缺省条件等所加的注释;d、对使用的逻辑所加的注释等。限制条件制菜统筹设计计算机的性能必须足够的强悍,可以在高峰期快速的计算。测试计划测试模块测试功能测试指标在数据库中存在待制作的菜品时可以给出正确的提菜品提示功能示:厨师当前制作菜品菜名和份数

26、、学徒下一道待制作菜品的配菜信息制菜智能统筹能够将数据库中存在的待制作的菜品进行智能的安制菜的统筹功能排制作顺序,取代配菜员的工作无食材提示厨师能够通过这个功能向精选文档.客人发出当前菜品无食材的提示,同时会从菜单中暂时删去这道菜能够将新的菜色信息录入新菜录入到菜单中,并显示出来对新菜的评分并能够计算评分机制平均分尚未解决的问题无F.4点菜管理模块程序程序描述该模块程序主要实现为顾客展示、推荐以及介绍菜品和实现顾客对菜品的点菜、退菜和催菜操作。顾客只有在输入桌号之后才能点菜,点菜之后才能进行结账和评价功能1. 开桌:精选文档输入桌号.开桌处理输出桌号桌号桌号错误成功是格是否是否式否提示提示存在

27、重复正确顾客输入自己的桌号。该桌号唯一不可与其他人重复,若重复则给出相应提示。桌号的位数由饭店规模决定默认为两位数,如:01、02。确认桌号后不可修改,如有添桌请求需要用另一台设备另外开桌。2 点菜:输入口份菜味数名点菜处理输出生成判断确认菜品可选菜品后提点菜误操详细口味简要交后信息作信息信息信息厨顾客可以根据需要选择自己喜欢的口味,系统筛选对应口味的菜色同时推送本店特色菜品。界面展示菜名、菜品图片和价格,顾客选择喜欢的菜色可以查看详细介绍,并提交份数。生成点菜信息,在顾客点菜结束后展示,进行最后确认,确认后提交制菜统筹系统。3. 退菜 :精选文档.退菜输入处理输出菜判断判断从后失败是否是否厨

28、中成功已点愿意名还没在制删去提示菜单提示上作信息顾客可以退去自己已点的,未上并且未在制作的菜。若在制作或者已上,则提示相关错误。否则从后厨数据库中删去,提示操作成功。4. 催菜:顾客可以对已点菜品进行催促,催促会提示后厨加快速度,规定同一小时内后厨只会收到两次催促。但顾客可以尽情催促,单不会传到后厨。性能检索业务响应时间<2s;运行响应时间 <1s;付款响应时间 <10s;。输入项桌号( Table_NO)类型: String ;输入方式:手动输入;输入数量:1;口味( Flavor )类型: String ;输入方式:选择;输入数量03;菜名( Dish_names)类型:

29、 String ;输入方式:选择;输入数量>0;份数( Amount)类型: int ;输入方式:选择;输入数量>0;输出项给出对每个输出项的我,包括名称、标识、数据的类型昨格式,数据值的有效范围,输出的形式数量和频度,输出媒体,对输出图形及符号的说明,安全保密条件等。成功提示类型:弹窗输出;输出频率:触发输出1 次;精选文档.错误提示类型:弹窗输出;输出频率:触发输出1 次菜品信息类型:界面输出;输出频率:一直输出,触发停止算法使用 while()语句判断一小时内接受催促的次数。使用 if()判断失误操作。使用 if()判断退菜。数据的输入输出与sql 数据库链接等基本算法通过输

30、入桌号来记录点餐桌号button1_ClickClass.tableNO = textBox1.Text;FrmCustomer fc = new FrmCustomer();fc.Show();this.Hide();开始点菜,这里点的菜同步更新到服务员的菜单表,也实现了退菜的功能,如果菜正在制作就无法退,若还是要求退需要叫服务员来操作FrmCustomer_Load号桌 "/*显示菜单 */string connStr = "Data Source=yao-pc;InitialCatalog=item;Integrated Security=True"与数据建

31、立连接string str2 = "Select*from MenuList"/读取菜单精选文档.SqlDataAdapter da = new SqlDataAdapter(str2, conn);DataSet ds = new DataSet();/将数据库读取到的数据放到Datasetda.Fill(ds);/利用 dataset 的fill方法填充到表格中int i = 1;string cmd = "Select*from Table where Table_NO='" +语句SqlDataReader dr = help.DataR

32、ead(cmd);while (dr.Read()/循环遍历数据流string ID = i.ToString();/保存 Id 号string dish_names = dr"dish_names".ToString();/保存菜名string price = dr"price".ToString();/保存价格string making_time = dr"making_time".ToString();/保存制作时间ListViewItem lvi = new ListViewItem();/首先创建一个ListView 项it

33、emlvi.Text = ID;/该项的文本making_time );/添加该项的子项,也就是第2, 3, 4列的值最后把创建的项加到ListView 控件的项中i+;dr.Close();/*创立 TreeView 结点 */精选文档.nodes(TreeNodeCollection tnode, DataSet ds, int d)DataView dview = new DataView(ds.Tables0);dview.RowFilter = "pcid='" + d + "'"/ 循环遍历foreach (DataRowVi

34、ew row in dview)TreeNode node = new TreeNode();node.Text = row"dish_names".ToString();tnode.Add(node);nodes(node.Nodes, ds, Int32.Parse(row"cid".ToString();/ 退菜操作button4_Click(object sender, EventArgs e)/*退订一道菜与数据库同步*/string cmd = ""/SQL 语句SqlDataReader dr= help.DataRea

35、d(cmd);dr.Read();if ("1" = dr4.ToString()/判断菜是否正在制作dr.Close();MessageBox.Show("厨师正在制作,请稍等若依然要退菜,请叫服务员 ");精选文档.Else/菜未开始制作,执行退菜相关操作dr.Close();int i = help.DataWrite(cmd);listView1.SelectedItems0.Remove();treeView1_NodeMouseClickelsestring cmd = "Select * From Menu " + &q

36、uot;Where dish_names='" +获取配菜信息SqlDataReader dr = help.DataReadPicture(cmd);/执行 SQL语句并生成包含数据对象的实例dr.Read();labPrice.Text = dr1.ToString();labTime.Text = dr2.ToString();label1.Text = "价格: "label3.Text = "元 "label4.Text = "制作时间约为 "精选文档.流程逻辑顾客选桌点菜口味选择推荐菜色接口本模块与其它相关模块间根据桌号和菜名平行方式连接。存储分配无特别存储分配的需要。Check_list数据表,作用是描述订餐的信息Check_list表序号字段名数据类型是否主键1Table_NOVarchar(50)Yes2Dish_namesVarchar(50)No3PriceDecimal(18,0)NoMenu数据表,作用是描述菜单的信息Menu表菜单信息意义桌号菜名价格精选文档.序号字段名数据类型是否主键意义1Dish_namesVarchar(50)Yes菜名2PrcieDecimal(18,0)No价格3Making_timeVarchar(50)No制作时间4P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论