《饭店点菜系统详细设计项目说明指导书.doc》由会员分享,可在线阅读,更多相关《饭店点菜系统详细设计项目说明指导书.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程详细设计阐明书文档饭店点餐管理系统分析与设计学院名称信电工程学院专业名称计算机科学与技术所属学期 -(一)小组名单班级学号姓名13计卓陈尧13计卓韩洁13计卓刘蕊13计卓邓辉任课教师王小磊 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 输入项
2、15F.3.5 输出项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 程序描
3、述33F.5.2 功能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:一种用于访问查询数据库语言事务流:数据进入模块后也许有各种途径进行解决主键:数据库表中核心域,值互不相似外部主键:数据库表中与其她表主键关联域Vs:Microsoft Visual Studio(简称VS)是美国微软公司开发工具包系列产品。 C#:C#是微软公司发布一种面向对象、运营于.NET Framework之上高档程序设计语言。F.1.4 参照资料百度文库F.2 程序系统构造F.2.1 制菜统筹1.菜品提示功能厨师:
6、下一道菜品学徒:下一道菜所需食材种类和分量顾客:菜品正在制作2.制菜统筹功能算法:通过客人点菜时间可以优先做菜,有和这道菜同样菜就可以一块做,然后再通过算法显示下一道菜,前一种桌号总比下一种桌号多一道菜。该功能实现了制菜统筹合理安排制菜顺序。同步将正在制作菜状态设立为不可退。还能提示下一道菜菜名和详细信息,给厨师下手准备食材。3.无食材提示当一道菜食材不够用了会提示客户退菜或者换一道菜以及服务员,并自动从菜单中删除这道菜顾客依照提示退换菜。F.2.2 推送新菜1.新菜录入厨师新研制菜肴食材种类和分量详细录入系统,储存在新菜菜单中。2.评分机制依照一周顾客评分,若低于所有菜品平均分则删除这道新菜
7、,若高于平均分则加入菜单中。F.2.3 点菜服务1.顾客点菜(1)桌号输入顾客进入饭店之后选取座位坐下,通过扫描二维码在系统中先录入自己桌号以以便点菜。(2)口味选取与菜色推荐顾客进入系统之后,可以依照自己偏好选取酸甜辛辣,淡咸之类口味,从而系统自动进行推荐菜色,如此前顾客品尝过后评分较高菜色或者该口味本饭店招牌菜之类菜色,同步,系统还可以自动推荐其她口味评分较高菜色以供顾客选取。(3)点菜与写备注顾客拟定了自己所点菜色之后,可以在系统上进行确认点菜,在点菜同步,可以对自己所点菜写入相应备注,如需要多一点辣味或者少加某样调料等等来满足自己需求。(4)生成菜单与提交制菜统筹系统顾客点完菜之后,系
8、统自动生成桌号+菜色+备注菜单并将其提交至制菜统筹系统。2.顾客退菜和催菜(1)退菜顾客在提交了菜单之后,如果想退菜,在系统中找到自己所点菜,如果厨师正在做这道菜,那么便无法进行退菜,如果厨师还没有做到这道菜,便可以从自己菜单中删除这道菜,那么相应制菜统筹系统中也会删除这道菜。(2)催菜顾客点菜之后,在等待过程中,可以在系统中点催菜按钮,以此来催促厨师加快制作速度。F.2.4 会员服务1.注册会员顾客可以通过系统中注册会员按钮进入注册会员选项,然后填写注册会员需要写明各项详细信息提交给系统,系统从自身数据库中判断,某些不能重复项目如手机号码等如和数据库重复冲突了则不能通过,并且提示顾客重新确认
9、自己所填写信息,而填写完毕并且通过之后,则进入会员缴纳相应会员费某些,缴纳会员费之后则正式成为饭店会员,同步系统为该客户分派唯一会员号码,并以此作为辨认会员身份凭证。2.会员服务会员登录系统之后,便可以在其她任何地方都可以打电话预约座位和提前点菜,到饭店之后只需在预留座位上等待直至菜品上桌,或者到饭店在进行点菜也可以。点完菜之后,可觉得会员提供相应打折办法,消费500元以内打9折,500到1000元打8.5折,1000元以上打8折,与此同步还可以进行积分办法,消费多少则积相应分数,到了一定限度后,每100分可以兑换5元钞票券或者相应小礼物。F.2.5 评价1.判断顾客与否已经付款2.如果没付款
10、等待付款,如果付款显示评论界面3.系统给出非常好,较好,普通,很差四个选项给顾客选取,顾客可以依照服务态度,菜色,就餐环境等进行评价,评价完毕后在顾客评价界面显示4.顾客评价完毕后,系统依照算法显示饭菜好评率,并赠送相应奖励给客户5.经理登录系统可以查看顾客评论以便进行调节,然后辩论其真实性再把评论反馈给有关人员,有关人员依照评论作出相应调节F.2.6 账单管理1.顾客提出付款信息2.收银员收到消费清单后和顾客进行付款等操作,操作成功后,拟定金额并打出清单3.收银员向经理报告日收益,经理核算并拟定4.经理对厨房对外采购支出信息,饭店税收支出信息,员工信息支出记录,再依照月收益形成饭店支出表,最
11、后算出饭店日收益F.2.7 菜单管理菜单管理系统有四个终端,按身份登录不同身份进入界面不同样。(1)顾客、服务员终端重要满足如下功能: 1顾客可以在各个类别(特色菜、招牌菜、优惠菜、套餐)下选取自己中意菜,并查看该菜简介,评价,所需时间,还可以选取口味(拉框),如没有,可以在备注里填写。2顾客可以在总价这项里查询,增添和删除菜,也可以看到自己消费金额。3顾客在消费完毕后,可以留下自己意见和建议。4服务员可以帮顾客点菜。5顾客或服务员点菜完毕后,系统会自动将菜单传送到制菜统筹子系统。(2)配菜员终端重要满足如下功能:1接受制菜统筹子系统分派需要配菜菜名、份数。2如果菜所需材料没有了,配菜员通过终
12、端选中菜背面红(菜单管理系统自动告知服务员终端,服务员再去向顾客解释并询问顾客与否换菜,同步从当天菜单中删除,以免背面顾客继续点)。(3)管理员终端重要满足如下功能:1依照记录系统反馈数据,修改菜单、类别。2依照记录系统反馈数据,及时跟员工协调。3将每天打折信息更新。4反馈客户意见及建议。5为员工分派相应权限。F.3 制菜统筹设计阐明F.3.1 程序描述现如今大某些饭店之中厨师制菜普通需要一种传菜员来提示她该做哪道菜,提示服务员应当将菜送到哪张桌。不但时间上和人力物力上都导致了极大挥霍,并且传菜员一旦出错,会导致顾客等待时间过长不高兴体验,从而给饭店导致损失。因此咱们制菜统筹子系统之中将传菜员
13、职能转交由计算机来执行,通过算法智能统筹。计算机不用紧张出错,因而顾客体验都会比较好。不但如此,制菜统筹系统还充分运用了厨师一种下手。F.3.2 功能制菜统筹子系统:a. 提示厨师正在制作菜品和下一道菜品,同步提示学徒下一道菜所需食材种类和分量。尚有提示顾客菜品正在制作。b. 通过客人点菜时间可以优先做菜,有和这道菜同样菜就可以一块做,然后再通过算法显示下一道菜,前一种桌号总比下一种桌号多一道菜该功能实现了制菜统筹合理安排制菜顺序。c. 将正在制作菜状态设立为不可退。d. 提示下一道菜菜名和详细信息。e. 提示客户退菜或者换一道菜。F.3.3 性能计算时间20s;传送时间3s;F.3.4 输入
14、项 菜单信息 菜名(Dish)-类型:String 份数(number)-类型:Int 桌号(TableNumber)-类型:Int 备注(Remarks)-类型:String 时间(Time)-类型:time; 与否完毕(IsFinish)-类型:boolean ;默认:falseF.3.5 输出项配菜名(DishesName)-类型:String配菜份数(DishesNumber)-类型:int即将烧菜(SoonDish)-类型:String 备注(Remarks)-类型:String*号桌(num)-类型:intF.3.6 算法每个点菜单用构造体存储,并添加时间、与否制作完毕字段N个点菜
15、单存储在构造体中使用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 Table_NO= + i + ;/记录需做菜份数SQL语句 dr = help.DataRead(cmd);/执行SQL语句 dr.Read();/读数据 NO = dr0.ToString(); dr.Close();
16、/关闭读取流 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) From Tabe_use) and use_ing=1;/SQL语句 SqlDataReader dr = help.DataRead(cmd3); if (dr.Read()/判断数据流与否为空 string cm
17、d = 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 Count(dish_names) From Table where dish_names= + label2.Text + ;/SQL语句 SqlDataReader drNum2 = help.DataRead(cmd); d
18、rNum2.Read();/数据流 label2.Text = label2.Text + 数量: + drNum20.ToString();/将需做菜份数传送到配菜员显示屏上 drNum2.Close(); else dr.Close(); string cmd2 = select*from Table where making=0 and making_time!=0;/SQL语句 SqlDataReader dr2 = help.DataRead(cmd2); if (dr2.Read()/判断数据流中与否有数据 label2.Text = dr22.ToString(); dr2.Cl
19、ose(); cmd2 = Select Count(dish_names) From Table where dish_names= + label2.Text + ; SqlDataReader drNum2 = help.DataRead(cmd2); drNum2.Read(); label2.Text = label2.Text + 数量: + drNum20.ToString();/将数量传送到厨师显示屏上 drNum2.Close(); else dr2.Close(); label2.Text = 没有下一道菜了; F.3.7 流程逻辑F.3.8 接口本模块与其他有关模块间平行
20、方式连接。F.3.9 存储分派Check_list数据表,作用是描述订餐信息Check_list表序号字段名数据类型与否主键意义1Table_NOVarchar(50)Yes桌号2Dish_namesVarchar(50)No菜名3PriceDecimal(18,0)No价格Garnish数据表,作用是描述配菜信息Garnish表序号字段名数据类型与否主键意义1Garnish_NumberVarchar(50)Yes配菜号2Dish_namesVarchar(50)No菜名3Food_NameVarchar(50)No食材名4Garnish_AmountfloatNo数量Menu数据表,作用是
21、描述菜单信息Menu表序号字段名数据类型与否主键意义1Dish_namesVarchar(50)Yes菜名2PrcieDecimal(18,0)No价格3Making_timeVarchar(50)No制作时间4PictureimageNo图片MenuList数据表,作用是描述菜单类别信息MenuList表序号字段名数据类型与否主键意义1CidintYes菜号2Dish_namesChar(20)No菜名3pcidintNo类别Stock数据表,作用是描述库存信息Stock表序号字段名数据类型与否主键意义1Food_NameVarchar(50)Yes食材名2Stock_amountfloat
22、No库存量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 程序描述该模块程序重要实现为顾客展示、推荐以及简介菜品和实现顾客对菜品点菜、退菜和催菜操作。顾客只有在输入桌号之后才干点菜,点菜之后才干进行结账和评价 F.4.2 功能1.开桌:顾客输入自己桌号。该桌号唯一不可与其她人重复,若重复则给出相应提示。桌号位数由饭店规模决定默以为两位数,如:01、02。确认桌号后不可修改,如有添桌祈求需要用另一台设备此外开桌。2点菜:顾客可以依照需要选取自己喜欢口味,系统筛选相应口味菜色同步推送本店
24、特色菜品。界面展示菜名、菜品图片和价格,顾客选取喜欢菜色可以查看详细简介,并提交份数。生成点菜信息,在顾客点菜结束后展示,进行最后确认,确认后提交制菜统筹系统。3.退菜:顾客可以退去自己已点,未上并且未在制作菜。若在制作或者已上,则提示有关错误。否则从后厨数据库中删去,提示操作成功。4.催菜:顾客可以对已点菜品进行催促,催促会提示后厨加迅速度,规定同一小时内后厨只会收到两次催促。但顾客可以尽情催促,单不会传到后厨。F.4.3 性能检索业务响应时间2s;运营响应时间1s;付款响应时间0;份数(Amount)类型:int;输入方式:选取;输入数量0;F.4.5 输出项给出对每个输出项我,涉及名称、
25、标记、数据类型昨格式,数据值有效范畴,输出形式数量和频度,输出媒体,对输出图形及符号阐明,安全保密条件等。成功提示类型:弹窗输出;输出频率:触发输出1次;错误提示类型:弹窗输出;输出频率:触发输出1次菜品信息类型:界面输出;输出频率:始终输出,触发停止F.4.6 算法使用while()语句判断一小时内接受催促次数。使用if()判断失误操作。使用if()判断退菜。数据输入输出与sql数据库链接等基本算法通过输入桌号来记录点餐桌号button1_Click Class.tableNO = textBox1.Text; FrmCustomer fc = new FrmCustomer(); fc.S
26、how(); this.Hide(); 开始点菜,这里点菜同步更新到服务员菜单表,也实现了退菜功能,如果菜正在制作就无法退,若还是规定退需要叫服务员来操作 FrmCustomer_Load this.Text = Class.tableNO.ToString()+号桌; /*显示菜单*/ string connStr = Data Source=yao-pc;Initial Catalog=item;Integrated Security=True;与数据建立连接 string str2 = Select*from MenuList;/读取菜单 SqlDataAdapter da = new
27、SqlDataAdapter(str2,conn); DataSet ds = new DataSet();/将数据库读取到数据放到Dataset da.Fill(ds);/运用datasetfill办法填充到表格中 nodes(this.treeView1.Nodes,ds,0); int i = 1; string cmd = Select*from Table where Table_NO= + Class.tableNO.ToString() + ;/sql语句 SqlDataReader dr = help.DataRead(cmd); while (dr.Read()/循环遍历数据
28、流 string ID = i.ToString();/保存Id号 string dish_names = drdish_names.ToString();/保存菜名 string price = drprice.ToString();/保存价格 string making_time = drmaking_time.ToString();/保存制作时间 ListViewItem lvi = new ListViewItem(); /一方面创立一种ListView项item lvi.Text = ID; /该项文本 lvi.SubItems.AddRange(new string dish_na
29、mes,price,making_time ); /添加该项子项,也就是第2,3,4列值 listView1.Items.Add(lvi); /最后把创立项加到ListView控件项中 i+; dr.Close(); /*创立TreeView结点*/ nodes(TreeNodeCollection tnode,DataSet ds,int d) DataView dview = new DataView(ds.Tables0); dview.RowFilter = pcid= + d + ;/循环遍历 foreach (DataRowView row in dview) TreeNode n
30、ode = new TreeNode(); node.Text = rowdish_names.ToString(); tnode.Add(node); nodes(node.Nodes,ds,Int32.Parse(rowcid.ToString(); /退菜操作button4_Click(object sender,EventArgs e) /*退订一道菜与数据库同步*/ string cmd = ; if (listView1.SelectedItems.Count 0) cmd=Select*FromTable where Table_NO= + Class.tableNO.ToStr
31、ing() + and dish_names= + labName.Text + ;/SQL语句 SqlDataReader dr= help.DataRead(cmd); dr.Read(); if (1 = dr4.ToString()/判断菜与否正在制作 dr.Close(); MessageBox.Show(厨师正在制作,请稍等 若依然要退菜,请叫服务员); Else/菜未开始制作,执行退菜有关操作 dr.Close(); cmd = Delete from Table where Table_NO= + Class.tableNO.ToString() + and dish_name
32、s= + labName.Text + ; int i = help.DataWrite(cmd); listView1.SelectedItems0.Remove(); treeView1_NodeMouseClick if (e.Node.Parent = null) else string cmd = Select * From Menu + Where dish_names= + e.Node.Text + ;/获取配菜信息 SqlDataReader dr = help.DataReadPicture(cmd);/执行SQL语句并生成包括数据对象实例 dr.Read(); labNa
33、me.Text = e.Node.Text; labPrice.Text = dr1.ToString(); labTime.Text = dr2.ToString(); label1.Text = 价格:; label3.Text = 元; label4.Text = 制作时间约为 F.4.7 流程逻辑F.4.8 接口本模块与其他有关模块间依照桌号和菜名平行方式连接。F.4.9 存储分派无特别存储分派需要。Check_list数据表,作用是描述订餐信息Check_list表序号字段名数据类型与否主键意义1Table_NOVarchar(50)Yes桌号2Dish_namesVarchar(5
34、0)No菜名3PriceDecimal(18,0)No价格Menu数据表,作用是描述菜单信息Menu表序号字段名数据类型与否主键意义1Dish_namesVarchar(50)Yes菜名2PrcieDecimal(18,0)No价格3Making_timeVarchar(50)No制作时间4PictureimageNo图片Table数据表,作用是描述桌子信息Table表序号字段名数据类型与否主键意义1IDintYes就餐号2Table_noVarchar(50)No桌号3Dish_namesVarchar(50)No菜名4Order_timedatetimeNo订餐时间5makingInt N
35、o制作6pricefloatNo图片7Making_timeVarchar(50)No制作时间F.4.10 注释设计a、在模块首部注释阐明模块名称; b、在各分枝点处注释各个分支作用;c、各变量功能、范畴、缺省条件等必要加上注释;d、对使用逻辑所加上必要注释。F.4.11 限制条件顾客必要已经登陆该软件,并且在一种网速良好环境下。F.4.12 测试筹划测试模块测试功能测试指标点菜服务桌号录入可以判断桌号逻辑和重复点菜与写备注可以点菜并写备注生成点菜表生成点菜表与提交制菜统筹系统生成点菜表能在后厨显示出来退菜可以判断制菜状态,若能退菜则从点表中删去这一道菜催菜可以发送告知至后厨,后厨可以一小时只
36、接受三次F.4.13 尚未解决问题无F.5 评价管理模块程序F.5.1 程序描述对于一种饭店管理系统来说,人们也许觉得评价系统对于整个饭店管理系统并不是那么重要,但是如果想象淘宝,就觉得很重要,一种评价可以让客人得到一种较好反馈,同步也可以让更多顾客可以对这个饭店可以有个一定理解,例如:服务态度,饭店环境,菜色味道,以及价格等都可以进行客观理解。这个评价系统可以对顾客好评率进行记录计算,对于进行差评顾客反馈给经理,经理可以对顾客评价进行一定核算,然后进行相应调节。这个评价管理系统对于近一种月评价进行数据库存储,并且进行界面显示,对于这些评价解决进行顺序解决,依照时间写入数据库,并且界面显示。F.5.2 功能1.判断顾客与否已经付款2.如果没付款等待付款,如果付款显示评论界面系统给出非常好,较好,普通,很差四个选项给顾客选取,顾客可以依照服务态度,菜色,就餐环境等进行评价,评价完毕后在顾客评价界面显示3.顾客评价完毕后,依照算法显示饭店好评率4.经理登录系统可以查看顾客评论进行调节,然后辩论其真实性再把评论反馈给有关人员,有关人员依照评论作出相应调节 评价解决解决输出输入顾客名评价计算好评率写入数据库拟定评价评价打