课程设计报告Delphi餐饮管理系统.docx
《课程设计报告Delphi餐饮管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计报告Delphi餐饮管理系统.docx(65页珍藏版)》请在冰豆网上搜索。
课程设计报告Delphi餐饮管理系统
4.5.2客户放弃开台设计...........................................37
4.5.3客户点菜完毕返回设计........................................37
摘要
几年来,随着我国国民经济的稳定增长,餐饮业的竞争也越来越激励,想在这样竞争激励的环境下生存,就必须运用科学的管理思想与先进的管理方法,使用点餐与管理一体化。
这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使得管理者能够准确,有效的管理餐饮。
因此,餐饮业的管理者更需要一种综合实时的管理模式,希望从更科学的管理中取得竞争的优势,在竞争激烈的商业市场中取胜。
结合管理信息系统的开发方法及步骤,以此为理论根据,开发出一个信息管理系统——餐饮管理系统。
它采用国际通用的先进餐饮管理模式,并结合中国的管理实际特点开发而成。
通过本系统功能模块,可为各种大小不同的餐饮管理所使用。
为管理者提供高效的管理手段,本系统有着人性理的设置理念,流程清晰、易懂。
具有独特的功能对于开台管理、点菜、菜谱设置等为管理人员带来很大的方便,减少人为因素的错误,提高服务水平,提升企业形象。
关键字:
餐饮管理系统、提高服务水平、提高工作效率
第一章系统需求分析
1.1系统功能需求分析
随着现在连锁餐饮店的不断崛起,作为餐饮业不可缺少的一部分——餐饮管理系统,它的内容对于餐饮业的决策者和管理者来说都非常重要。
本系统基于餐饮管理系统之下的一个子系统,可以把整个餐饮店的日常经营管理信息化,包括点餐、库存管理、员工信息等日常经营的一些统计功能。
现在此系统还不够完善,将来使此系统会集成更多的功能,例如:
餐饮管理系统的开发成功,实现了餐饮业的现代化,表明了餐饮管理正与国际化接轨,有了更为深入的发展。
《餐软管理系统》采用国际通用的先进餐饮管理模式,并结合中国的管理实际特点开发而成。
通过本系统功能模块,可为各种大小不同的餐饮管理所使用。
为管理者提供高效的管理手段,本系统有着人性理的设置理念,流程清晰、易懂。
具有独特的功能对于开台管理、点菜、菜谱设置等为管理人员带来很大的方便,减少人为因素的错误,提高服务水平,提升企业形象。
根据实际情况的需要,系统主要功能如下:
前台管理:
开台管理、客户结账、退出系统。
系统管理:
权限管理、系统管理、帮助。
基础信息管理:
酒水信息查询、菜谱信息查询及设置。
1.2系统数据流图
根据实际情况要求,系统数据流图如图1.2.1所示
图1.2.1数据流图
1.3数据字典
在这定义的酒店餐饮数据字典,主要对数据流程图中的数据流、数据存储和处理过程进行说明。
(1)主要的数据流定义
1)数据流名称:
客户信息
位置:
客户P2
定义:
客户信息=房间台号+所点菜+酒水+开单时间+服务员编号
数据流量:
说明:
客人点菜时可以进行特色菜和酒水信息的查询,买单时要核对消费名目是否属实。
2)数据流名称:
菜谱信息
位置:
菜谱P2
定义:
菜谱信息=编号+房间台号+菜名+单位+价格+菜系类别+口味说明
数据流量:
说明:
编号不能有重复的。
3)数据流名称:
桌台状况
位置:
桌台P1
定义:
桌台状况=编号+房台名称+类型说+餐饮部门+服务费+简要说明+状态
数据流量:
说明:
只有状态为空闲的房台才能开台。
4)数据流名称:
开台人
位置:
服务员P1
定义:
开台人=编号+姓名+员工类别+密码
数据流量:
说明:
不同的员工类别具有不同的权限,管理员具有所有权限,服务员不具备系统维修等权限。
5)数据流名称:
员工信息
位置:
P3P1
定义:
员工信息=员工编号+姓名+性别+出生日期+联系电话+联系地址+聘用日期+工作部门+员工类别+身份证号+备注
数据流量:
说明:
员工编号不可相同。
6)数据流名称:
管理员情况
位置:
管理员P3
定义:
管理员=姓名+口令
数据流量:
平均流量为每年传输50次。
说明:
通过管理员来不断的更新和维护这个系统。
7)数据流名称:
开台信息
位置:
P1P4
定义:
开台信息=房间台号+服务费
数据流量:
说明:
服务费可以省去。
8)数据流名称:
点菜信息
位置:
P2P4
定义:
点菜信息=房间台号+类别+编号+名称+类型+数量+价格+合计+点但日期+结单日期+服务员编号+服务员姓名+结帐编号
数据流量:
说明:
房间台号是根据开台而来的。
(2)主要的数据存储定义
1)数据存储编号:
D1
数据存储名称:
桌台信息
输入:
P1
输出:
P2
数据结构:
桌台信息=编号+房台名称+类型说+餐饮部门+服务费+简要说明+状态
存取方式:
检索和更新处理,以检索为主。
说明:
编号具有唯一性,状态只能是空闲或者营业。
2)数据存储编号:
D2
数据存储名称:
员工信息
输入:
P1
输出:
P3
数据结构:
员工信息=员工类别+口令
存取方式:
主要是检索。
说明:
根据员工类别的不同,在后面的操作中具有不同的权限。
3)数据存储编号:
D3
数据存储名称:
菜谱信息
输入:
P2
输出:
P2
数据结构:
菜谱信息=菜名+单位+价格+菜系类别+口味说明
存取方式:
检索
说明:
在点菜时对菜谱进行查询。
(3)主要处理过程
1)处理过程编号:
P1
处理过程名:
开台
输入:
服务员权限,桌台状况
输出:
开台信息
处理说明:
综合各方面信息,进行客人消费前最基本的准备。
2)处理过程编号:
P2
处理过程名:
点菜
输入:
D1,D3,D4
输出:
点菜信息
处理说明:
客人根据菜谱信息,酒水信息,特色菜信息,选择自己中意的项目进行。
3)处理过程编号:
P3
处理过程名:
权限管理
输入:
员工类型,口令
输出:
相应的操作权限
处理说明:
输入员工类别和口令获得相应的操作权限,管理员比服务员具有更多的操作权限。
第二章系统概要设计
2.1系统总体框架设计
根据业务情况,该系统共分为开台管理、客人买单、菜谱信息设置、客户点菜、酒水信息设置等模块,系统结构图如图2.1所示。
图2.1餐饮管理系统结构图
2.2各模块功能分析
(1)系统登录窗口主要功能:
1)以图标形式显示数据库中操作员,并凭口令登入到主界面。
2)操作员输入错误密码提醒错误并返回,三次输入错误口令则退出系统。
3)实现权限登录:
系统管理员拥有一切权利,其他操作员则被限制一些操作权限。
(2)系统主界面主要功能
1)根据操作员权限设置相应权限的菜单和工具栏功能。
2)可通过菜单或快捷键进入相应子界面。
3)显示了系统当前时间和相应操作员。
(3)系统菜谱信息设置界面主要功能:
实现对菜谱信息的添加、修改、删除、查询的功能。
(4)系统开台管理界面主要功能:
1)以图标模式显示空台、营业台,点击台号图标则自动显示相应台号信息。
2)通过输入台号检索符合条件的台号。
3)点击空房自动弹出与昂查询窗口从而自动开台。
(5)系统点菜界面主要功能:
1)实现菜谱,酒水查询的链接。
2)点击“开始点菜”按钮台号状态自动变为开台,并聚焦到编号栏。
3)在编号栏输入菜编号按回车自动录入菜的信息,。
4)自动生成结账编号,输入菜数量自动计算合计消费金额。
5)可实现挂单、读单、放弃开台和点菜完毕返回的功能。
第三章数据库设计
3.1系统E-R图的设计
系统E-R图如图3.1所示
图3.1系统E-R图
3.2数据库结构设计
数据库结构设计是总体设计阶段非常重要的环节,好的数据库结构可以简化开发过程,使系统功能更加清晰明确。
因为数据库结构的变化会造成编码的改动,所以必须认真设计数据库后再进行编码,从而避免了无谓的重复的工作。
本系统采用了SQLServer数据库,数据库名称为060412079。
该数据库包含4个表,分别是:
开台表,点菜表,菜谱费用信息表,台号信息表。
下面分别介绍数据表的结构。
1、开台表
开台表用于保存开台的相关信息。
开台表的结构见表3-2-1所示。
表3-2-1开台表结构
字段名称
数据类型
字段大小
允许为空否
编号
int
4
设置为主键
房台名称
char
30
允许为空
类型说明
char
20
允许为空
餐饮部门
char
20
允许为空
服务费
money
8
允许为空
简要说明
char
30
允许为空
状态
char
20
允许为空
2、点菜表
点菜表用于保存点菜信息和相应的消费信息。
点菜表的结构见表3-2-2所示。
表3-2-2点菜表结构
字段名称
数据类型
字段大小
是否允许为空
id
char
16
设置为主键
房间台号
int
4
允许为空
类别
Char
10
允许为空
编号
int
4
允许为空
名称
char
50
允许为空
类型
char
20
允许为空
单位
char
10
允许为空
数量
int
4
允许为空
价格
money
8
允许为空
合计
Money
8
允许为空
点单日期
datetime
8
允许为空
结单日期
datetime
8
允许为空
服务员编号
int
8
允许为空
服务员姓名
char
12
允许为空
状态
char
10
允许为空
结账编号
int
4
允许为空
是否结单
char
10
允许为空
3、菜谱费用信息表用于查询餐饮店所有的菜的信息。
菜谱费用信息表的结构如图3-2-3所示。
表3-2-3菜谱费用信息结构
字段名称
数据类型
字段大小
是否允许为空
编号
int
4
设为主键
菜名
char
50
允许为空
单位
char
10
允许为空
价格
money
8
允许为空
菜系类别
char
20
允许为空
口味说明
char
30
允许为空
4、台号信息表用于台号信息的查询,方便了消费者选台,开台及其他的作用。
台号信息表的结构如图3-2-4示。
表3-2-4台号信息表结构
字段名称
数据类型
字段大小
是否允许为空
编号
int
4
设为主键
房台名称
char
30
设为主键
类型说明
Char
20
允许为空
餐饮部门
Char
20
允许为空
服务费
money
8
允许为空
简要说明
char
30
允许为空
状态
char
10
允许为空
容纳人数
Int
4
允许为空
第四章系统详细设计及实现
4.1系统登陆界面设计
1.实现目标
程序启动后,首先登陆此界面验证操作员的密码。
主要实现的功能如下:
1)以图标形式显示数据库中操作员,并凭口令登入到主界面。
2)操作员输入错误密码提醒错误并返回,三次输入错误口令则退出系统。
3)实现权限登录:
系统管理员拥有一切权利,其他操作员则被限制一些操作权限。
系统登录界面如图4.1.1所示。
图4.1.1系统登录界面
2.实现过程
(1)添加窗体设置窗体caption属性为“登录窗口”,保存窗体为u79in.pas。
(2)向窗体中添加Datasource、Query、Edit、Listview、ImageList、Image、Time、Label等控件。
主要控件对象的属性如表4-2-1所示。
表4-2-1主要控件对象的属性列表
控件名
属性
值
功能
Query1
Databasename
SQL
060412079
Select*from员工信表
权限查询
Database1
Dataset
Query1
设置数据源
3.程序主要代码如下:
单击“登陆”按钮,将判断操作员、操作密码是否正确,如果正确进入主界面并根据操作员权限设置菜单和工具是否可用。
如果输入密码错误将提醒并返回,三次错误输入则自动退出系统。
procedureTUser.BitBtn1Click(Sender:
TObject);
begin
MainForm.ToolButton1.Enabled:
=True;
MainForm.ToolButton2.Enabled:
=True;
MainForm.ToolButton5.Enabled:
=True;
MainForm.ToolButton6.Enabled:
=True;
MainForm.N1.Enabled:
=True;
MainForm.N2.Enabled:
=True;
MainForm.N4.Enabled:
=True;
MainForm.N3.Enabled:
=True;
MainForm.N5.Enabled:
=True;
MainForm.N6.Enabled:
=True;
MainForm.N7.Enabled:
=True;
MainForm.N8.Enabled:
=True;
MainForm.N9.Enabled:
=True;
MainForm.N17.Enabled:
=True;
MainForm.N19.Enabled:
=True;
ifQuery1.FieldByName('编号').AsString='controller'then//如果是系统管理员
begin
ifEdit1.Text<>Query1.FieldByName('密码').AsStringthen
begin
ShowMessage('['+Query1.FieldByName('姓名').AsString+']的口令错误.');//口令错误
Edit1.SetFocus;
End
Else
begin
MainForm.StatusBar1.Panels[1].Text:
='用户['+Query1.FieldByName('姓名').AsString+']';
MainForm.User1:
=Query1.FieldByName('姓名').AsString;
User_Close:
=3;
Timer1.Enabled:
=False;
Close;
end;
End
Else
begin
MainForm.ToolButton1.Enabled:
=False;
MainForm.ToolButton2.Enabled:
=False;
MainForm.ToolButton5.Enabled:
=False;
MainForm.N1.Enabled:
=False;
MainForm.N2.Enabled:
=False;
MainForm.N4.Enabled:
=False;
MainForm.N3.Enabled:
=False;
MainForm.N5.Enabled:
=False;
MainForm.N6.Enabled:
=False;
MainForm.N7.Enabled:
=False;
MainForm.N8.Enabled:
=False;
MainForm.N9.Enabled:
=False;
MainForm.N17.Enabled:
=False;
MainForm.N19.Enabled:
=False;
ifEdit1.Text<>Query1.FieldByName('密码').AsStringthen
begin
ShowMessage('['+Query1.FieldByName('姓名').AsString+']的口令错误.');
Edit1.SetFocus;
End
Else
begin
Name:
=Query1.FieldByName('权限').AsString;
MainForm.EnabledKey(Name);//设置操作员权限
MainForm.StatusBar1.Panels[1].Text:
='用户['+Query1.FieldByName('姓名').AsString+']';
User_Close:
=3;
Timer1.Enabled:
=False;
Close;
end;
end;
END;
窗体启动,关闭钥匙,后将所有操作员添加到操作员列表。
procedureTUser.FormShow(Sender:
TObject);
varList:
Array[0..1]ofTListItem;
begin
Timer1.Enabled:
=True;
User_Close:
=0;//打开关闭钥匙
Query1.Close;
Query1.Open;
ListView1.Items.Clear;
WhilenotQuery1.Eofdo
begin
List[0]:
=ListView1.Items.Add;
List[0].Caption:
=Query1.FieldByName('姓名').AsString;
ifQuery1.FieldByName('编号').AsString='controller'then
begin
List[0].ImageIndex:
=0;
End
Else
begin
List[0].ImageIndex:
=1;
end;
Query1.Next;
end;
end;
选择操作员,点击其中一个则将员工的姓名和类型添加到了相应位置。
procedureTUser.ListView1Click(Sender:
TObject);
varList:
Array[0..1]ofTListItem;
begin
List[0]:
=ListView1.Selected;
ifList[0]<>Nilthen
begin
Query1.Locate('姓名',List[0].Caption,[loCaseInsensitive]);
//查询姓名,但是如果有从名的按第一个算.
end;
end;
4.2主界面设计
1、程序启动后。
系统在“登陆界面”验证操作员密码后,将进入此界面。
系统主界面主要功能:
根据操作员权限设置相应权限的菜单和工具栏功能。
可通过菜单或快捷键进入相应子界面。
显示了系统当前时间和相应操作员。
主程序界面如图4.2.1所示。
图4.2.1主程序界面
2.实现过程
(1)启动Delphi,设置窗体名为mainfrom,设置窗体caption为“餐饮管理系统”,保存为u791.pas。
(2)向窗体中添加Imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label等控件主要属性为:
控件名
属性
值
功能
Toolbar1
images
Imagelist1
设置工具栏图标
stausbar1
Panel1
用户登录【管理员】
显示程序状态、参数
(3)主要程序代码如下:
使应用项目的提示信息挂钩程序。
procedureTMainForm.FormCreate(Sender:
TObject);
begin
Application.OnHint:
=DisPlayHint;//与应用项目的提示信息挂钩
end;
先调用系统登陆窗口,再设置窗体状态参数程序。
procedureTMainForm.FormShow(Sender:
TObject);
varYear,Month,Day:
Word;
begin
Close_1:
=1;
User.ShowModal;//调用系统登陆窗口
IfClose_1=0Then
Close
Else
begin
Application.MainForm.WindowState:
=wsMaximized;
Application.MainForm.WindowState:
=wsNormal;
DecodeDate(StrToDate(DateTOStr(Date)),Year,Month,day);//分解日期
StatusBar1.Panels[2].Text:
='系统日期:
'+IntToStr(Year)+'年'+IntToStr(Month)+'月'+IntToStr(day)+'日';
end;
end;
调入开台界面程序。
procedureTMainForm.N8Click(Sender:
TObject);
begin
IfAssigned(KTGL)Then
begin
DataModule1.THXX.Open;//打开台号信息表
DataModule1.cybmb.Open;//打开餐饮部门表
DataModule1.JZBH.Open;//打开结帐编号表
KTGL:
=TKTGL.Create(Self);
KTGL.ShowModal;
end;
end;
设置“B”类权限有系统管理和系统维护操作权,“A”类权限即系统管理员的操作享有一切操作权限。
如图4.2.2所示。
图4.2.2B类权限主程序界面
代码如下:
FunctionTMainForm.EnabledKey(key:
String):
Boolean;//声明操作权限函数EnabledKey
begin
ifPos('A',key)>0then//具有"A"类权限
begin
MainForm.ToolButton1.Enabled:
=True;
MainForm.ToolButton2.Enabled:
=True;
MainForm.ToolButton5.Enabled:
=True;
MainForm.ToolButton6.Enabled:
=True;
MainForm.N1.Enabled:
=True;
MainForm.N2.Enabled:
=True;
MainForm.N4.Enabled:
=True;
MainForm.N3.Enabled:
=True;
MainForm.N8.Enabled:
=True;
MainForm.N9.Enabled:
=True;
MainForm.N17.Enabled:
=True;
MainForm.N19.Enabled:
=True;
End
Else
ifPos('B',key)>0then//具有"B"类权限
begin
MainForm.ToolButton1.Enabled:
=True;
MainForm.ToolButton2.Enabled:
=True;
MainForm.ToolButton6.Enabled:
=True;
MainForm.N1.Enabled:
=True;
MainForm.N5.Enabled:
=True;
MainForm.N6.Enabled:
=True;
MainForm.