本科毕业设计论文饭店点餐管理系统的分析与设计Word文档下载推荐.docx
- 文档编号:22164309
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:31
- 大小:333.77KB
本科毕业设计论文饭店点餐管理系统的分析与设计Word文档下载推荐.docx
《本科毕业设计论文饭店点餐管理系统的分析与设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《本科毕业设计论文饭店点餐管理系统的分析与设计Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
F.2程序系统的结构
F.2.1制菜统筹
1.菜品提示功能
厨师:
下一道菜品
学徒:
下一道菜所需的食材种类和分量
顾客:
菜品正在制作
2.制菜的统筹功能
算法:
通过客人点菜的时间可以优先做菜,有和这道菜一样的菜就可以一块做,然后再通过算法显示下一道菜,前一个桌号总比下一个桌号多一道菜。
该功能实现了制菜的统筹合理安排制菜顺序。
同时将正在制作的菜状态设置为不可退。
还能提示下一道菜的菜名和具体信息,给厨师的下手准备食材。
3.无食材提示
当一道菜的食材不够用了会提示客户退菜或者换一道菜以及服务员,并自动从菜单中删除这道菜顾客根据提示退换菜。
F.2.2推送新菜
1.新菜录入
厨师新研制的菜肴的食材种类和分量详细的录入系统,储存在新菜菜单中。
2.评分机制
根据一周顾客的评分,若低于所有菜品的平均分则删除这道新菜,若高于平均分则加入菜单中。
F.2.3点菜服务
1.顾客点菜
(1)桌号的输入
顾客进入饭店之后选择座位坐下,通过扫描二维码在系统中先录入自己的桌号以方便点菜。
(2)口味的选择与菜色推荐
顾客进入系统之后,可以根据自己的偏好选择酸甜辛辣,淡咸之类的口味,从而系统自动进行推荐菜色,如以前顾客品尝过后评分较高的菜色或者该口味本饭店的招牌菜之类的菜色,同时,系统还可以自动推荐其他口味的评分较高的菜色以供顾客选择。
(3)点菜与写备注
顾客确定了自己所点的菜色之后,可以在系统上进行确认点菜,在点菜的同时,可以对自己所点的菜写入相应备注,如需要多一点辣味或者少加某样调料等等来满足自己的需求。
(4)生成菜单与提交制菜统筹系统
顾客点完菜之后,系统自动生成桌号+菜色+备注的菜单并将其提交至制菜统筹系统。
2.顾客退菜和催菜
(1)退菜
顾客在提交了菜单之后,如果想退菜,在系统中找到自己所点菜,如果厨师正在做这道菜,那么便无法进行退菜,如果厨师还没有做到这道菜,便可以从自己的菜单中删除这道菜,那么相应的制菜统筹系统中也会删除这道菜。
(2)催菜
顾客点菜之后,在等待的过程中,可以在系统中点催菜按钮,以此来催促厨师加快制作速度。
F.2.4会员服务
1.注册会员
顾客可以通过系统中的注册会员按钮进入注册会员选项,然后填写注册会员需要写明的各项具体信息提交给系统,系统从自身数据库中判断,某些不能重复的项目如手机号码等如和数据库重复冲突了则不能通过,并且提示顾客重新确认自己所填写的信息,而填写完成并且通过之后,则进入会员缴纳相应的会员费部分,缴纳会员费之后则正式成为饭店会员,同时系统为该客户分配唯一的会员号码,并以此作为识别会员身份的凭证。
2.会员服务
会员登录系统之后,便可以在其他任何地方都可以打电话预约座位和提前点菜,到饭店之后只需在预留的座位上等待直至菜品上桌,或者到饭店在进行点菜也可以。
点完菜之后,可以为会员提供相应的打折措施,消费500元以内打9折,500到1000元打8.5折,1000元以上打8折,与此同时还可以进行积分措施,消费多少则积相应的分数,到了一定程度后,每100分可以兑换5元现金券或者相应小礼品。
F.2.5评价
1.判断顾客是否已经付款
2.如果没付款等待付款,如果付款显示评论界面
3.系统给出非常好,很好,一般,很差四个选项给顾客选择,顾客可以根据服务态度,菜色,就餐环境等进行评价,评价完成后在顾客评价界面显示
4.顾客评价完成后,系统根据算法显示饭菜的好评率,并赠送相应的奖励给客户
5.经理登录系统可以查看顾客的评论以便进行调整,然后辩论其真实性再把评论反馈给相关人员,相关人员根据评论作出相应的调整
F.2.6账单管理
1.顾客提出付款信息
2.收银员收到消费清单后和顾客进行付款等操作,操作成功后,确定金额并打出清单
3.收银员向经理报告日收益,经理核实并确定
4.经理对厨房对外采购支出信息,饭店税收支出信息,员工信息支出统计,再根据月收益形成饭店支出表,最后算出饭店的日收益
F.2.7菜单管理
菜单管理系统有四个终端,按身份登录不同的身份进入的界面不一样。
(1)顾客、服务员终端主要满足如下功能:
1.顾客可以在各个类别(特色菜、招牌菜、优惠菜、套餐)下选择自己中意的菜,并查看该菜的介绍,评价,所需时间,还可以选择口味(拉框),如没有,可以在备注里填写。
2.顾客可以在总价这项里查询,增添和删除菜,也可以看到自己的消费金额。
3.顾客在消费完毕后,可以留下自己的意见和建议。
4.服务员可以帮顾客点菜。
5.顾客或服务员点菜完毕后,系统会自动将菜单传送到制菜统筹子系统。
(2)配菜员终端主要满足如下功能:
1.接收制菜统筹子系统分配的需要的配菜的菜名、份数。
2.如果菜所需材料没有了,配菜员通过终端选中菜后面的红×
(菜单管理系统自动通知服务员终端,服务员再去向顾客解释并询问顾客是否换菜,同时从当天菜单中删除,以免后面顾客继续点)。
(3)管理员终端主要满足如下功能:
1.根据统计系统反馈的数据,修改菜单、类别。
2.根据统计系统反馈的数据,及时跟员工协调。
3.将每天的打折信息更新。
4.反馈客户的意见及建议。
5.为员工分配相应的权限。
F.3制菜统筹设计说明
F.3.1程序描述
现如今大部分饭店之中厨师制菜通常需要一个传菜员来提示他该做哪道菜,提示服务员应该将菜送到哪张桌。
不仅时间上和人力物力上都造成了极大的浪费,而且传菜员一旦出错,会造成顾客等待时间过长的不愉快体验,从而给饭店造成损失。
所以我们的制菜统筹子系统之中将传菜员的职能转交由计算机来执行,通过算法智能的统筹。
计算机不用担心出错,因而顾客的体验都会比较好。
不仅如此,制菜统筹系统还充分利用了厨师的一个下手。
F.3.2功能
制菜统筹子系统:
a.提示厨师正在制作的菜品和下一道菜品,同时提示学徒下一道菜所需的食材种类和分量。
还有提示顾客菜品正在制作。
b.通过客人点菜的时间可以优先做菜,有和这道菜一样的菜就可以一块做,然后再通过算法显示下一道菜,前一个桌号总比下一个桌号多一道菜该功能实现了制菜的统筹合理安排制菜顺序。
c.将正在制作的菜状态设置为不可退。
d.提示下一道菜的菜名和具体信息。
e.提示客户退菜或者换一道菜。
F.3.3性能
计算时间<
20s;
传送时间<
3s;
F.3.4输入项
菜单信息
菜名(Dish)----类型:
String
份数(number)----类型:
Int
桌号(TableNumber)----类型:
备注(Remarks)----类型:
时间(Time)----类型:
time;
是否完成(IsFinish)----类型:
boolean;
默认:
false
F.3.5输出项
配菜名(DishesName)----类型:
配菜份数(DishesNumber)----类型:
int
即将烧的菜(SoonDish)----类型:
*号桌(num)----类型:
F.3.6算法
每个点菜单用结构体存放,并添加时间、是否制作完成字段
N个点菜单存放在结构体中
使用for循环遍历计算出即将需要做的菜
Count()//统计需做菜的份数
{
intN=5;
intj=10;
inti=1;
stringNO="
0"
;
SqlDataReaderdr;
//用于读取数据流
while(i<
=N)
stringcmd="
SelectCount(making)From[Table]Wheremaking='
1'
andTable_NO='
"
+i+"
'
//统计需做菜的份数SQL语句
dr=help.DataRead(cmd);
//执行SQL语句
dr.Read();
//读数据
NO=dr[0].ToString();
dr.Close();
//关闭读取流
stringcmd2="
updateTabe_useSetUP='
+NO+"
whereTable_NO='
//更新桌子使用情况
j=help.DataWrite(cmd2);
i++;
}
}
stringcmd3="
Selecttable_NOFromTabe_usewhereUP=(Selectmin(UP)FromTabe_use)anduse_ing='
//SQL语句
SqlDataReaderdr=help.DataRead(cmd3);
if(dr.Read())//判断数据流是否为空
Select*from[Table]wheremaking='
0'
andmaking_time!
='
andtable_NO='
+dr[0].ToString()+"
//查询未做的菜
cmd="
SelectCount(dish_names)From[Table]wheredish_names='
+label2.Text+"
SqlDataReaderdrNum2=help.DataRead(cmd);
drNum2.Read();
//数据流
label2.Text=label2.Text+"
数量:
+drNum2[0].ToString();
//将需做菜的份数传送到配菜员的显示屏上
drNum2.Close();
else
select*from[Table]wheremaking='
SqlDataReaderdr2=help.DataRead(cmd2);
if(dr2.Read())//判断数据流中是否有数据
label2.Text=dr2[2].ToString();
dr2.Close();
cmd2="
SqlDataReaderdrNum2=help.DataRead(cmd2);
//将数量传送到厨师显示屏上
label2.Text="
没有下一道菜了"
F.3.7流程逻辑
F.3.8接口
本模块与其它相关模块间平行方式连接。
F.3.9存储分配
Check_list数据表,作用是描述订餐的信息
Check_list表
序号
字段名
数据类型
是否主键
意义
1
Table_NO
Varchar(50)
Yes
桌号
2
Dish_names
No
菜名
3
Price
Decimal(18,0)
价格
Garnish数据表,作用是描述配菜的信息
Garnish表
Garnish_Number
配菜号
Food_Name
食材名
4
Garnish_Amount
float
数量
Menu数据表,作用是描述菜单的信息
Menu表
Prcie
Making_time
制作时间
Picture
image
图片
MenuList数据表,作用是描述菜单类别的信息
MenuList表
Cid
菜号
Char(20)
pcid
类别
Stock数据表,作用是描述库存的信息
Stock表
Stock_amount
库存量
Stock_price
Deciamal(18,0)
F.3.10注释设计
a、加在模块首部的注释;
b、加在各分枝点处的注释;
c、对各变量的功能、范围、缺省条件等所加的注释;
d、对使用的逻辑所加的注释等。
F.3.11限制条件
制菜统筹设计计算机的性能必须足够的强悍,可以在高峰期快速的计算。
F.3.12测试计划
测试模块
测试功能
测试指标
制菜智能统筹
菜品提示功能
在数据库中存在待制作的菜品时可以给出正确的提示:
厨师当前制作菜品菜名和份数、学徒下一道待制作菜品的配菜信息
制菜的统筹功能
能够将数据库中存在的待制作的菜品进行智能的安排制作顺序,取代配菜员的工作
无食材提示
厨师能够通过这个功能向客人发出当前菜品无食材的提示,同时会从菜单中暂时删去这道菜
新菜录入
能够将新的菜色信息录入到菜单中,并显示出来
评分机制
对新菜的评分并能够计算平均分
F.3.13尚未解决的问题
无
F.4点菜管理模块程序
F.4.1程序描述
该模块程序主要实现为顾客展示、推荐以及介绍菜品和实现顾客对菜品的点菜、退菜和催菜操作。
顾客只有在输入桌号之后才能点菜,点菜之后才能进行结账和评价
F.4.2功能
1.开桌:
顾客输入自己的桌号。
该桌号唯一不可与其他人重复,若重复则给出相应提示。
桌号的位数由饭店规模决定默认为两位数,如:
01、02。
确认桌号后不可修改,如有添桌请求需要用另一台设备另外开桌。
2点菜:
顾客可以根据需要选择自己喜欢的口味,系统筛选对应口味的菜色同时推送本店特色菜品。
界面展示菜名、菜品图片和价格,顾客选择喜欢的菜色可以查看详细介绍,并提交份数。
生成点菜信息,在顾客点菜结束后展示,进行最后确认,确认后提交制菜统筹系统。
3.退菜:
顾客可以退去自己已点的,未上并且未在制作的菜。
若在制作或者已上,则提示相关错误。
否则从后厨数据库中删去,提示操作成功。
4.催菜:
顾客可以对已点菜品进行催促,催促会提示后厨加快速度,规定同一小时内后厨只会收到两次催促。
但顾客可以尽情催促,单不会传到后厨。
F.4.3性能
检索业务响应时间<
2s;
运行响应时间<
1s;
付款响应时间<
10s;
。
F.4.4输入项
桌号(Table_NO)——类型:
String;
输入方式:
手动输入;
输入数量:
1;
口味(Flavor)——类型:
选择;
输入数量0~3;
菜名(Dish_names)——类型:
输入数量>
0;
份数(Amount)——类型:
int;
F.4.5输出项
给出对每个输出项的我,包括名称、标识、数据的类型昨格式,数据值的有效范围,输出的形式数量和频度,输出媒体,对输出图形及符号的说明,安全保密条件等。
成功提示——类型:
弹窗输出;
输出频率:
触发输出1次;
错误提示——类型:
触发输出1次
菜品信息——类型:
界面输出;
一直输出,触发停止
F.4.6算法
使用while()语句判断一小时内接受催促的次数。
使用if()判断失误操作。
使用if()判断退菜。
数据的输入输出与sql数据库链接等基本算法
通过输入桌号来记录点餐桌号
button1_Click
Class.tableNO=textBox1.Text;
FrmCustomerfc=newFrmCustomer();
fc.Show();
this.Hide();
开始点菜,这里点的菜同步更新到服务员的菜单表,也实现了退菜的功能,如果菜正在制作就无法退,若还是要求退需要叫服务员来操作
FrmCustomer_Load
this.Text=Class.tableNO.ToString()+"
号桌"
/*显示菜单*/
stringconnStr="
DataSource=yao-pc;
InitialCatalog=item;
IntegratedSecurity=True"
与数据建立连接
stringstr2="
Select*fromMenuList"
//读取菜单
SqlDataAdapterda=newSqlDataAdapter(str2,conn);
DataSetds=newDataSet();
//将数据库读取到的数据放到Dataset
da.Fill(ds);
//利用dataset的fill方法填充到表格中
nodes(this.treeView1.Nodes,ds,0);
inti=1;
Select*from[Table]whereTable_NO='
+Class.tableNO.ToString()+"
//sql语句
SqlDataReaderdr=help.DataRead(cmd);
while(dr.Read())//循环遍历数据流
stringID=i.ToString();
//保存Id号
stringdish_names=dr["
dish_names"
].ToString();
//保存菜名
stringprice=dr["
price"
//保存价格
stringmaking_time=dr["
making_time"
//保存制作时间
ListViewItemlvi=newListViewItem();
//首先创建一个ListView项item
lvi.Text=ID;
//该项的文本
lvi.SubItems.AddRange(newstring[]{dish_names,price,making_time});
//添加该项的子项,,也就是第2,3,4列的值
listView1.Items.Add(lvi);
//最后把创建的项加到ListView控件的项中
/*创立TreeView结点*/
nodes(TreeNodeCollectiontnode,DataSetds,intd)
DataViewdview=newDataView(ds.Tables[0]);
dview.RowFilter="
pcid='
+d+"
//循环遍历
foreach(DataRowViewrowindview)
TreeNodenode=newTreeNode();
node.Text=row["
tnode.Add(node);
nodes(node.Nodes,ds,Int32.Parse(row["
cid"
].ToString()));
//退菜操作
button4_Click(objectsender,EventArgse)
/*退订一道菜与数据库同步*/
if(listView1.SelectedItems.Count>
0)
cmd="
Select*From[Table]whereTable_NO='
anddish_names='
+labName.Text+"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 论文 饭店 管理 系统 分析 设计