饭店点餐管理系统的分析与设计大学论文.doc

上传人:可****阿 文档编号:92876463 上传时间:2023-06-16 格式:DOC 页数:34 大小:1.04MB
返回 下载 相关 举报
饭店点餐管理系统的分析与设计大学论文.doc_第1页
第1页 / 共34页
饭店点餐管理系统的分析与设计大学论文.doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《饭店点餐管理系统的分析与设计大学论文.doc》由会员分享,可在线阅读,更多相关《饭店点餐管理系统的分析与设计大学论文.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件工程详细设计说明书文档饭店点餐管理系统的分析与设计学院名称信电工程学院专业名称计算机科学与技术所属学期 2015-2016(一)小组名单班级学号姓名任课教师 2015年12月24日目录F.1 引言7F.1.1 编写目的7F.1.2 背景7F.1.3 定义7F.1.4 参考资料8F.2 程序系统的结构8F.2.1 制菜统筹9F.2.2 推送新菜11F.2.3 点菜服务11F.2.4 会员服务12F.2.5 评价12F.2.6 账单管理13F.2.7 菜单管理13F.3 制菜统筹设计说明14F.3.1 程序描述14F.3.2 功能14F.3.3 性能15F.3.4 输入项15F.3.5 输出项

2、15F.3.6 算法16F.3.7 流程逻辑18F.3.8 接口19F.3.9 存储分配20F.3.10 注释设计22F.3.11 限制条件22F.3.12 测试计划22F.3.13 尚未解决的问题23F.4 点菜管理模块程序23F.4.1 程序描述23F.4.2 功能23F.4.3 性能25F.4.4 输入项25F.4.5 输出项25F.4.6 算法26F.4.7 流程逻辑30F.4.8 接口30F.4.9 存储分配30F.4.10 注释设计31F.4.11 限制条件32F.4.12 测试计划32F.4.13 尚未解决的问题32F.5 评价管理模块程序32F.5.1 程序描述33F.5.2

3、功能33F.5.3 性能34F.5.4 输入项34F.5.5 输出项34F.5.6 算法35F.5.7流程逻辑35F.5.8接口35F.5.9存储分配36F.5.10注释设计36F.5.11限制条件36F.5.12测试计划36F.5.13尚未解决的问题37F.1 引言F.1.1 编写目的在前一阶段概要设计说明书中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分为若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、数据结构的设计等。在以下详细设计报告中将对本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定应该如何具体的实现所要求的系统,从而在编码阶段可以

4、把这个描述直接翻译成用具体的程序语言书写的程序。主要工作有:根据在需求分析说明书中所描述的功能、流程,并依照概要设计说明书所确定的处理流程、总体结构和运行模块设计,设计完成程序系统的结构,完成制菜统筹模块、点菜管理模块、评价管理模块的程序描述,其中包括各模块的设计说明、程序描述、功能、性能、输入、输出、算法、流程逻辑、接口等。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。F.1.2 背景为了更好的满足广大消费者的多元化消费需求和不同层次的消费水平,提高饭店的服务管理质量,提高饭店工作人员的工作效率,我开发小组在多方面考察、分析、研究现有饭店点菜管理系统的基础之上,

5、以提高消费者的满意程度及商家的服务水平和市场竞争力为目标,致力于开发出一套可视化程度高、功能全面、集分析管理于一体的饭店点餐系统。F.1.3 定义SQL Server:系统服务器所使用的数据库管理系统。SQL:一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理主键:数据库表中的关键域,值互不相同外部主键:数据库表中与其他表主键关联的域Vs2013:Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。 C#:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。F.1.4 参考资料百度文库F.

6、2 程序系统的结构F.2.1 制菜统筹1.菜品提示功能厨师:下一道菜品学徒:下一道菜所需的食材种类和分量顾客:菜品正在制作2.制菜的统筹功能算法:通过客人点菜的时间可以优先做菜,有和这道菜一样的菜就可以一块做,然后再通过算法显示下一道菜,前一个桌号总比下一个桌号多一道菜。该功能实现了制菜的统筹合理安排制菜顺序。同时将正在制作的菜状态设置为不可退。还能提示下一道菜的菜名和具体信息,给厨师的下手准备食材。3.无食材提示当一道菜的食材不够用了会提示客户退菜或者换一道菜以及服务员,并自动从菜单中删除这道菜顾客根据提示退换菜。F.2.2 推送新菜1.新菜录入厨师新研制的菜肴的食材种类和分量详细的录入系统

7、,储存在新菜菜单中。2.评分机制根据一周顾客的评分,若低于所有菜品的平均分则删除这道新菜,若高于平均分则加入菜单中。F.2.3 点菜服务1.顾客点菜(1)桌号的输入顾客进入饭店之后选择座位坐下,通过扫描二维码在系统中先录入自己的桌号以方便点菜。(2)口味的选择与菜色推荐顾客进入系统之后,可以根据自己的偏好选择酸甜辛辣,淡咸之类的口味,从而系统自动进行推荐菜色,如以前顾客品尝过后评分较高的菜色或者该口味本饭店的招牌菜之类的菜色,同时,系统还可以自动推荐其他口味的评分较高的菜色以供顾客选择。(3)点菜与写备注顾客确定了自己所点的菜色之后,可以在系统上进行确认点菜,在点菜的同时,可以对自己所点的菜写

8、入相应备注,如需要多一点辣味或者少加某样调料等等来满足自己的需求。(4)生成菜单与提交制菜统筹系统顾客点完菜之后,系统自动生成桌号+菜色+备注的菜单并将其提交至制菜统筹系统。2.顾客退菜和催菜(1)退菜顾客在提交了菜单之后,如果想退菜,在系统中找到自己所点菜,如果厨师正在做这道菜,那么便无法进行退菜,如果厨师还没有做到这道菜,便可以从自己的菜单中删除这道菜,那么相应的制菜统筹系统中也会删除这道菜。(2)催菜顾客点菜之后,在等待的过程中,可以在系统中点催菜按钮,以此来催促厨师加快制作速度。F.2.4 会员服务1.注册会员顾客可以通过系统中的注册会员按钮进入注册会员选项,然后填写注册会员需要写明的

9、各项具体信息提交给系统,系统从自身数据库中判断,某些不能重复的项目如手机号码等如和数据库重复冲突了则不能通过,并且提示顾客重新确认自己所填写的信息,而填写完成并且通过之后,则进入会员缴纳相应的会员费部分,缴纳会员费之后则正式成为饭店会员,同时系统为该客户分配唯一的会员号码,并以此作为识别会员身份的凭证。2.会员服务会员登录系统之后,便可以在其他任何地方都可以打电话预约座位和提前点菜,到饭店之后只需在预留的座位上等待直至菜品上桌,或者到饭店在进行点菜也可以。点完菜之后,可以为会员提供相应的打折措施,消费500元以内打9折,500到1000元打8.5折,1000元以上打8折,与此同时还可以进行积分

10、措施,消费多少则积相应的分数,到了一定程度后,每100分可以兑换5元现金券或者相应小礼品。F.2.5 评价1.判断顾客是否已经付款2.如果没付款等待付款,如果付款显示评论界面3.系统给出非常好,很好,一般,很差四个选项给顾客选择,顾客可以根据服务态度,菜色,就餐环境等进行评价,评价完成后在顾客评价界面显示4.顾客评价完成后,系统根据算法显示饭菜的好评率,并赠送相应的奖励给客户5.经理登录系统可以查看顾客的评论以便进行调整,然后辩论其真实性再把评论反馈给相关人员,相关人员根据评论作出相应的调整F.2.6 账单管理1.顾客提出付款信息2.收银员收到消费清单后和顾客进行付款等操作,操作成功后,确定金

11、额并打出清单3.收银员向经理报告日收益,经理核实并确定4.经理对厨房对外采购支出信息,饭店税收支出信息,员工信息支出统计,再根据月收益形成饭店支出表,最后算出饭店的日收益F.2.7 菜单管理菜单管理系统有四个终端,按身份登录不同的身份进入的界面不一样。(1)顾客、服务员终端主要满足如下功能: 1顾客可以在各个类别(特色菜、招牌菜、优惠菜、套餐)下选择自己中意的菜,并查看该菜的介绍,评价,所需时间,还可以选择口味(拉框),如没有,可以在备注里填写。2顾客可以在总价这项里查询,增添和删除菜,也可以看到自己的消费金额。3顾客在消费完毕后,可以留下自己的意见和建议。4服务员可以帮顾客点菜。5顾客或服务

12、员点菜完毕后,系统会自动将菜单传送到制菜统筹子系统。(2)配菜员终端主要满足如下功能:1接收制菜统筹子系统分配的需要的配菜的菜名、份数。2如果菜所需材料没有了,配菜员通过终端选中菜后面的红(菜单管理系统自动通知服务员终端,服务员再去向顾客解释并询问顾客是否换菜,同时从当天菜单中删除,以免后面顾客继续点)。(3)管理员终端主要满足如下功能:1根据统计系统反馈的数据,修改菜单、类别。2根据统计系统反馈的数据,及时跟员工协调。3将每天的打折信息更新。4反馈客户的意见及建议。5为员工分配相应的权限。F.3 制菜统筹设计说明F.3.1 程序描述现如今大部分饭店之中厨师制菜通常需要一个传菜员来提示他该做哪

13、道菜,提示服务员应该将菜送到哪张桌。不仅时间上和人力物力上都造成了极大的浪费,而且传菜员一旦出错,会造成顾客等待时间过长的不愉快体验,从而给饭店造成损失。所以我们的制菜统筹子系统之中将传菜员的职能转交由计算机来执行,通过算法智能的统筹。计算机不用担心出错,因而顾客的体验都会比较好。不仅如此,制菜统筹系统还充分利用了厨师的一个下手。F.3.2 功能制菜统筹子系统:a. 提示厨师正在制作的菜品和下一道菜品,同时提示学徒下一道菜所需的食材种类和分量。还有提示顾客菜品正在制作。b. 通过客人点菜的时间可以优先做菜,有和这道菜一样的菜就可以一块做,然后再通过算法显示下一道菜,前一个桌号总比下一个桌号多一

14、道菜该功能实现了制菜的统筹合理安排制菜顺序。c. 将正在制作的菜状态设置为不可退。d. 提示下一道菜的菜名和具体信息。e. 提示客户退菜或者换一道菜。F.3.3 性能计算时间20s;传送时间3s;F.3.4 输入项 菜单信息 菜名(Dish)-类型:String 份数(number)-类型:Int 桌号(TableNumber)-类型:Int 备注(Remarks)-类型:String 时间(Time)-类型:time; 是否完成(IsFinish)-类型:boolean ;默认:falseF.3.5 输出项配菜名(DishesName)-类型:String配菜份数(DishesNumber)

15、-类型:int即将烧的菜(SoonDish)-类型:String 备注(Remarks)-类型:String*号桌(num)-类型:intF.3.6 算法每个点菜单用结构体存放,并添加时间、是否制作完成字段N个点菜单存放在结构体中使用for循环遍历计算出即将需要做的菜 Count()/统计需做菜的份数 int N=5; int j = 10; int i=1; string NO = 0; SqlDataReader dr;/用于读取数据流 while(i=N) string cmd = Select Count(making) From Table Where making=1 and Ta

16、ble_NO= + i + ;/统计需做菜的份数SQL语句 dr = help.DataRead(cmd);/执行SQL语句 dr.Read();/读数据 NO = dr0.ToString(); dr.Close();/关闭读取流 string cmd2 = update Tabe_use Set UP = +NO+ where Table_NO= + i + ;/更新桌子使用情况 j = help.DataWrite(cmd2);/执行SQL语句 i+; string cmd3 = Select table_NO From Tabe_use where UP=(Select min(UP)

17、 From Tabe_use) and use_ing=1;/SQL语句 SqlDataReader dr = help.DataRead(cmd3); if (dr.Read()/判断数据流是否为空 string cmd = Select * from Table where making=0 and making_time!=0and table_NO= + dr0.ToString() + ;/查询未做的菜 dr.Close();/关闭读取流 dr = help.DataRead(cmd);/执行SQL语句 dr.Read(); dr.Close(); cmd = Select Coun

18、t(dish_names) From Table where dish_names= + label2.Text + ;/SQL语句 SqlDataReader drNum2 = help.DataRead(cmd); drNum2.Read();/数据流 label2.Text = label2.Text + 数量: + drNum20.ToString();/将需做菜的份数传送到配菜员的显示屏上 drNum2.Close(); else dr.Close(); string cmd2 = select*from Table where making=0 and making_time!=0

19、;/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.DataRead(cmd2); drNum2.Read(); label2.Text = label2.Text + 数量: + drNum20.

20、ToString();/将数量传送到厨师显示屏上 drNum2.Close(); else dr2.Close(); label2.Text = 没有下一道菜了; F.3.7 流程逻辑F.3.8 接口本模块与其它相关模块间平行方式连接。F.3.9 存储分配Check_list数据表,作用是描述订餐的信息Check_list表序号字段名数据类型是否主键意义1Table_NOVarchar(50)Yes桌号2Dish_namesVarchar(50)No菜名3PriceDecimal(18,0)No价格Garnish数据表,作用是描述配菜的信息Garnish表序号字段名数据类型是否主键意义1Gar

21、nish_NumberVarchar(50)Yes配菜号2Dish_namesVarchar(50)No菜名3Food_NameVarchar(50)No食材名4Garnish_AmountfloatNo数量Menu数据表,作用是描述菜单的信息Menu表序号字段名数据类型是否主键意义1Dish_namesVarchar(50)Yes菜名2PrcieDecimal(18,0)No价格3Making_timeVarchar(50)No制作时间4PictureimageNo图片MenuList数据表,作用是描述菜单类别的信息MenuList表序号字段名数据类型是否主键意义1CidintYes菜号2D

22、ish_namesChar(20)No菜名3pcidintNo类别Stock数据表,作用是描述库存的信息Stock表序号字段名数据类型是否主键意义1Food_NameVarchar(50)Yes食材名2Stock_amountfloatNo库存量3Stock_priceDeciamal(18,0)No价格F.3.10 注释设计a、加在模块首部的注释; b、加在各分枝点处的注释;c、对各变量的功能、范围、缺省条件等所加的注释;d、对使用的逻辑所加的注释等。F.3.11 限制条件制菜统筹设计计算机的性能必须足够的强悍,可以在高峰期快速的计算。F.3.12 测试计划测试模块测试功能测试指标制菜智能统

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

24、 F.4.2 功能1.开桌:顾客输入自己的桌号。该桌号唯一不可与其他人重复,若重复则给出相应提示。桌号的位数由饭店规模决定默认为两位数,如:01、02。确认桌号后不可修改,如有添桌请求需要用另一台设备另外开桌。2点菜:顾客可以根据需要选择自己喜欢的口味,系统筛选对应口味的菜色同时推送本店特色菜品。界面展示菜名、菜品图片和价格,顾客选择喜欢的菜色可以查看详细介绍,并提交份数。生成点菜信息,在顾客点菜结束后展示,进行最后确认,确认后提交制菜统筹系统。3.退菜:顾客可以退去自己已点的,未上并且未在制作的菜。若在制作或者已上,则提示相关错误。否则从后厨数据库中删去,提示操作成功。4.催菜:顾客可以对已

25、点菜品进行催促,催促会提示后厨加快速度,规定同一小时内后厨只会收到两次催促。但顾客可以尽情催促,单不会传到后厨。F.4.3 性能检索业务响应时间2s;运行响应时间1s;付款响应时间0;份数(Amount)类型:int;输入方式:选择;输入数量0;F.4.5 输出项给出对每个输出项的我,包括名称、标识、数据的类型昨格式,数据值的有效范围,输出的形式数量和频度,输出媒体,对输出图形及符号的说明,安全保密条件等。成功提示类型:弹窗输出;输出频率:触发输出1次;错误提示类型:弹窗输出;输出频率:触发输出1次菜品信息类型:界面输出;输出频率:一直输出,触发停止F.4.6 算法使用while()语句判断一

26、小时内接受催促的次数。使用if()判断失误操作。使用if()判断退菜。数据的输入输出与sql数据库链接等基本算法通过输入桌号来记录点餐桌号button1_Click Class.tableNO = textBox1.Text; FrmCustomer fc = new FrmCustomer(); fc.Show(); this.Hide(); 开始点菜,这里点的菜同步更新到服务员的菜单表,也实现了退菜的功能,如果菜正在制作就无法退,若还是要求退需要叫服务员来操作 FrmCustomer_Load this.Text = Class.tableNO.ToString()+号桌; /*显示菜单*

27、/ string connStr = Data Source=yao-pc;Initial Catalog=item;Integrated Security=True;与数据建立连接 string str2 = Select*from MenuList;/读取菜单 SqlDataAdapter da = new SqlDataAdapter(str2, conn); DataSet ds = new DataSet();/将数据库读取到的数据放到Dataset da.Fill(ds);/利用dataset的fill方法填充到表格中 nodes(this.treeView1.Nodes, ds,

28、 0); int i = 1; string cmd = Select*from Table where Table_NO= + Class.tableNO.ToString() + ;/sql语句 SqlDataReader dr = help.DataRead(cmd); while (dr.Read()/循环遍历数据流 string ID = i.ToString();/保存Id号 string dish_names = drdish_names.ToString();/保存菜名 string price = drprice.ToString();/保存价格 string making_

29、time = drmaking_time.ToString();/保存制作时间 ListViewItem lvi = new ListViewItem(); /首先创建一个ListView项item lvi.Text = ID; /该项的文本 lvi.SubItems.AddRange(new string dish_names, price, making_time ); /添加该项的子项,也就是第2,3,4列的值 listView1.Items.Add(lvi); /最后把创建的项加到ListView控件的项中 i+; dr.Close(); /*创立TreeView结点*/ nodes(

30、TreeNodeCollection tnode, DataSet ds, int d) DataView dview = new DataView(ds.Tables0); dview.RowFilter = pcid= + d + ;/循环遍历 foreach (DataRowView row in dview) TreeNode node = new TreeNode(); node.Text = rowdish_names.ToString(); tnode.Add(node); nodes(node.Nodes, ds, Int32.Parse(rowcid.ToString();

31、/退菜操作button4_Click(object sender, EventArgs e) /*退订一道菜与数据库同步*/ string cmd = ; if (listView1.SelectedItems.Count 0) cmd=Select*FromTable where Table_NO= + Class.tableNO.ToString() + and dish_names= + labName.Text + ;/SQL语句 SqlDataReader dr= help.DataRead(cmd); dr.Read(); if (1 = dr4.ToString()/判断菜是否正

32、在制作 dr.Close(); MessageBox.Show(厨师正在制作,请稍等 若依然要退菜,请叫服务员); Else/菜未开始制作,执行退菜相关操作 dr.Close(); cmd = Delete from Table where Table_NO= + Class.tableNO.ToString() + and dish_names= + labName.Text + ; int i = help.DataWrite(cmd); listView1.SelectedItems0.Remove(); treeView1_NodeMouseClick if (e.Node.Paren

33、t = null) else string cmd = Select * From Menu + Where dish_names= + e.Node.Text + ;/获取配菜信息 SqlDataReader dr = help.DataReadPicture(cmd);/执行SQL语句并生成包含数据对象的实例 dr.Read(); labName.Text = e.Node.Text; labPrice.Text = dr1.ToString(); labTime.Text = dr2.ToString(); label1.Text = 价格:; label3.Text = 元; labe

34、l4.Text = 制作时间约为 F.4.7 流程逻辑F.4.8 接口本模块与其它相关模块间根据桌号和菜名平行方式连接。F.4.9 存储分配无特别存储分配的需要。Check_list数据表,作用是描述订餐的信息Check_list表序号字段名数据类型是否主键意义1Table_NOVarchar(50)Yes桌号2Dish_namesVarchar(50)No菜名3PriceDecimal(18,0)No价格Menu数据表,作用是描述菜单的信息Menu表序号字段名数据类型是否主键意义1Dish_namesVarchar(50)Yes菜名2PrcieDecimal(18,0)No价格3Making

35、_timeVarchar(50)No制作时间4PictureimageNo图片Table数据表,作用是描述桌子的信息Table表序号字段名数据类型是否主键意义1IDintYes就餐号2Table_noVarchar(50)No桌号3Dish_namesVarchar(50)No菜名4Order_timedatetimeNo订餐时间5makingInt No制作6pricefloatNo图片7Making_timeVarchar(50)No制作时间F.4.10 注释设计a、在模块首部注释说明模块名称; b、在各分枝点处注释各个分支的作用;c、各变量的功能、范围、缺省条件等必须加上注释;d、对使用

36、的逻辑所加上必要的注释。F.4.11 限制条件顾客必须已经登陆该软件,而且在一个网速良好的环境下。F.4.12 测试计划测试模块测试功能测试指标点菜服务桌号录入能够判断桌号的逻辑和重复点菜与写备注能够点菜并写备注生成点菜表生成点菜表与提交制菜统筹系统生成的点菜表能在后厨显示出来退菜能够判断制菜状态,若能退菜则从点表中删去这一道菜催菜能够发送通知至后厨,后厨能够一小时只接受三次F.4.13 尚未解决的问题无F.5 评价管理模块程序F.5.1 程序描述对于一个饭店管理系统来说,大家可能觉得评价系统对于整个饭店管理系统并不是那么重要,但是如果想象淘宝,就觉得很重要,一个评价可以让客人得到一个很好的反馈,同时也可以让更多的用户可以对这个饭店可以有个一定的了解,比如:服务态度,饭店环境,菜色味道,以及价格等都可以进行客观的了解。这个评价系统可以对用户的好评率进行统计计算,对于进行差评的用户反馈给经理,经理可以对用户的评价进行一定的核实,然后进行相应的调整。这个评价管理系统对于近一个月的评价进行数据库存储,并且进行界面显示,对于这些评价处理进行顺序处理,根据时间写入数据库,并且界面显示。F.5.2 功能1.判断顾客是否已经付款2.如果没付款等待付款,如果付款显示评论界面系统给出非常好,很好,一般,很差四个选项给顾客选择,顾客可以根

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁