餐饮管理系统.docx
- 文档编号:28949428
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:26
- 大小:125.60KB
餐饮管理系统.docx
《餐饮管理系统.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
餐饮管理系统
题目:
饭店餐饮管理系统
班级:
学号:
姓名:
2014年10月20日
一、软件需求说明1
1、引言:
1
1.1编写目的1
1.2背景1
1.3参考资料2
2、任务概述2
2.1目标2
2.3假定和约束2
3、需求分析3
3.1用户需求分析:
3
3.2系统需求分析:
3
3.3对性能的规定4
4、运行环境规定4
4.1、系统特点:
4
4.2支持软件5
4.3软硬件环境需求:
5
二、概要设计6
1、总体设计6
1.1软件结构图6
1.2服务与处理的数据结构设计7
1.3安全设计8
2、数据库设计8
2.1总体设计8
2.1.1概念结构设计8
2.2逻辑结构设计10
三、详细设计11
1、包房信息模块11
1.1房间信息功能结构图11
1.2模块设计:
11
1.3功能描述:
11
1.4界面设计:
12
1.5模块功能:
13
1.5.1查询功能:
13
1.5.2插入功能:
13
2、结账信息管理模块14
2.1结账模块功能结构14
2.2功能描述:
14
2.3结账功能模块功能:
15
3、程序编码15
3.1包房信息模块功能编码15
3.1.1查询功能15
3.1.2添加功能16
3.1.3修改功能16
3.1.4删除功能17
3.2结账信息模块功能编码18
3.2.1连接到账单表功能18
3.2.2消费金额计算显示功能18
3.2.3退台功能19
四、学习总结19
1.设计总结19
2.学习体会20
一、软件需求说明
1、引言:
1.1编写目的
本系统为饭店餐饮管理系统是为了有效解决现行系统中手工运作所面临的工作量大、数据传递不及时、数据统计和计算易发生差错等造成餐饮管理效率低的种种问题,本系统将采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。
控制精度或生产能力的提高方面对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。
在管理信息服务的改进方面实现对消费的历史记录进行查询。
系统应最大限度地实现易维护性和易操作性。
实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。
我们设计使用c++builder6.0编写程序,建造窗口,美化界面,改进操作,是软件和数据库完美结合。
旨在达到技术和操作两方面的要求。
技术方面,做全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上做出界面美观,人机交互能力强,满足用户需求的软件。
操作方面,人机交互能力强,界面友好,操作方便。
1.2背景
经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理,进入到重视定量管理的科学阶段。
众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理。
传统手工操作管理存在着许多无法避免的问题,例如:
1.人工计算账单容易出差错。
2.收银工作中跑单、漏单、偷钱现象普遍。
3.个别服务员作弊、改单、宰客情形发生。
3.客人消费数据难以保存查询。
4.无法对大量营业数据进行统计分析。
因此制约了整个餐饮业的规模化发展和整体服务水平的提升。
有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统视为一条有效的解决途径。
1.3参考资料
[1]王珊萨师煊·数据库系统概论(第四版)·北京·高等教育出版社·2006
[2]郭睿志·C#+SQLServer项目开发实践·北京·中国铁道出版社·2007
[3]JohnSharp·VisualC#2005从入门到精通·北京·清华大学出版社·2006
[4]飞狼李春萌·数据库管理与应用指南·人民邮电出版社·2005
2、任务概述
2.1目标
系统是服务于餐馆的日常管理的,是为了满足餐饮业发展,科学管理餐馆管理、调高效率的管理系统。
餐饮管理系统能帮助餐饮业提高服务质量、工作效率、准备的考评员工绩效,掌握消费者信息,及时协调处理缺货情况。
它是一款专业的餐饮酒店管理软件件,它集前台收账,点菜收银等强大功能为一身,系统界面简洁,操作直观简单。
可以帮助餐饮企业处理日常工作业务,规范管理工作和操作流程,是餐饮行业的得力助手。
2.2用户的特点
(1)支持日常业务运作。
(2)集中管理业务数据,支持管理预测与决策。
(3)有良好的可扩充性(系统配置灵活,支持用户未来信息化进程的发展)。
(4)汉字图形用户界面,人机对话友好,操作方便。
(5)响应速度合理,安全性较高(对折扣、退菜、赠送、优惠操作提供权限校验,并有记录备查。
数据库安全中支持前后台双数据库管理),网络运行稳定。
2.3假定和约束
系统建设费用较低,系统应最大限度地实现易维护性和易操作性方便管理人员使用。
3、需求分析
3.1用户需求分析:
该系统可以帮助餐饮企业处理日常工作业务,规范管理工作和操作流程,是餐饮行业的得力助手。
可以帮助管理者们边工作、边了解企业经营状况,为经营者提供决策分析的数据;可以杜绝内部管理的漏洞和避免人为错误给企业造成损失;可以为顾客提供全方位满意的服务;可以为顾客提供正规、精美、具有企业特色的结帐单;可以保证企业营业额数目的准确;可以了解常客的不同消费习惯和消费历史信息;可以知道畅销菜品和不受欢迎菜品;同时还能建立全方位的管理模式。
3.2系统需求分析:
前台营业:
日常营业操作
日始日结:
设定每个营业日的开始和结束
接待预订:
显示房台状态,进行房台预订
点菜收银:
开台、点菜、结帐、交班,提供最主要的营业功能
营业设置:
日常营业所必需的数据库设定
酒菜设置:
按类别(酒水饮料、凉菜、热菜、主食、包桌、服务用品等)设置酒菜数据
房台设置:
类别设置包房或餐台
其他设置:
付款方式(现金、银行卡、赠券、挂账、免单)、点菜说明等
营业分析:
对营业数据进行统计分析、打印报表
销售分析:
营业总况、收入金额
房台分析:
按房台统计分析营业情况
酒菜分析:
各种酒菜的详细销售情况统计
操作分析:
统计分析服务员的营业情况
业绩分析:
统计分析提成服务员的销售业绩和提成金额
财务查询:
查询各类单据和消费情况
帐单查询:
查询所有已结帐单
点单查询:
查询所有历史点单
挂帐查询:
查询挂帐(签单)客人消费情况
辅助管理:
日常营业所需的其他管理功能
操作员管理:
管理操作员信息,并设置系统操作权限和最低折扣值
挂帐管理:
挂帐人信息录入、修改、挂帐归还
3.3对性能的规定
(1)输入/输出:
条形码英文和汉字输入,英文和汉字输出
(2)性能:
稳定快速,实时控制。
本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理。
本研究报告结合公司对餐饮业的实地调查所得出的许多数据,对餐饮业的发展概况和现状、投资特性、行业发展预测等进行详细的分析,并重点对本行业及市场竞争格局做了具体的剖析。
(3)安全与保密要求:
不能轻易被破坏,不能让管理人员以外的人删改餐饮等信息,对断电、死机、系统崩溃等问题有有力措施以保障数据不受损失。
该系统包含有密码装置来实现基本密码操作。
在系统功能中通过身份鉴别分别授予经理与员工不同的权限。
它是为增强普通关系数据库管理系统的安全性而设计的。
该系统中通过基本设置实现了数据库数据存储等的完整性要求。
4、运行环境规定
4.1、系统特点:
1、系统界面友好,在包房信息模块和点菜信息模块中能够以直接、清晰的界面显示所需要的信息,不显示对用户无用的信息;
2、操作简单,在界面上点击所要的操作,便可进入到具体的操作中;进行查询、修改时,只需按界面上的文字提示输入正确数据后,即可显示所需操作运行后的信息;
3、功能齐全,在两个板块中的操作中基本上包括了实际生活中餐厅关于包房和点菜两个方面的全部所需内容;
4.2支持软件
1、系统采用当今流行的C/S结构和三层架构模式,支持SQLServer等大型数据库系统。
2、在vs20008开发环境下,以C++builder为开发语言。
4.3软硬件环境需求:
需求名称
详细要求
Windows操作系统
Windowsxp操作系统,1G内存,硬盘剩余500M
浏览器
IE浏览器
1、打印机支持POS58,POS76等热敏小票打印机器,支持各型号针打和票据打印机(必须带硬字库)。
2、钱箱支持通过RJ45口连接小票打印机的钱箱。
3、刷卡设备支持无须驱动支持所有磁卡。
二、概要设计
1、总体设计
1.1软件结构图
图2—1餐饮管理软件功能结构图
1.2服务与处理的数据结构设计
图2—2餐饮管理系统的业务流程图
1.3安全设计
本系统考虑到了安全方面的问题,因此,设置了系统的登录权限,工作人员分经理和员工,并且每个工作人员进入界面都有自己的登录名和密码,只有用户名和密码一致,才能进入系统。
不同职位的人员有着不同的负责部分,进入到不同的界面,只能在自己的界面上进行业务,比如增、删、改信息。
员工只负责日常服务工作,不可以对员工信息和房间信息性进行访问和修。
经理权限要大一些,可以对员工信息和房间信息性进行访问和修。
2、数据库设计
2.1总体设计
在此系统中,本人主要负责包房信息管理,结账功能管理两个模块。
在此,针对这两个功能模块所涉及到得有关数据库设计过程作一下描述。
2.1.1概念结构设计
(1)总体ER模型设计
图3—1各实体及其联系图
1、房间和顾客之间是使用关系;
供房间可以供不同的顾客所使用,顾客也可是选择不同的包房使用,所以是多对多的对应关系。
2、顾客与账单之间是付账的关系;
一张账单只对应固定的消费顾客,所以他们之间是一对一的对应关系。
且只有在进行付账过程中才有付款方式的选择和找零,所以这两个属性应该在对应关系上标出。
3、房间与账单的之间是对应关系;
房间在不同顾客使用过程中,对应不同的账单;而账单可以来自不同的房间,所以两者之间是多对多的关系。
(2)部分ER模型设计
图3—2房间实体及属性图
房间必须有以一个房间号和所能容纳的顾客人数,在实际使用中需要有一个属性来表示房间是否已经被使用,根据房间具有不同的大、中、小包需要给出房间类型属性,还有专门的员工对某一房间进行管理,在添加管理员工号这一属性。
便构成了如图所示的结构。
图3—3账单实体及属性图
账单通常是都有一个账单号的,账单需要显示顾客所选用的菜名以及数量,并标明是那个房间号。
便需要以上的个属性。
2.2逻辑结构设计
将概念模型转换为逻辑结构,给出关系模式:
此为房间实体对应的关系模式:
房间(房间号,状态,容量,房间类型,管理员工号)
此为账单实体对应的关系模式。
账单(账单号,菜名,点菜数量,房间号)
2.3物理结构设计
将逻辑结构转化为物理结构,根据E—R图和逻辑结构设计,可以创建数据表。
表3—1房间信息表
字段名称
数据类型
长度
可否为空
约束条件
说明
roomid
int
4
NOTNULL
主键
房间号
state
int
4
NULL
无
状态
capacity
int
10
NULL
无
容量
roomkind
char
10
NULL
无
房间类型
chief
int
4
NULL
无
管理员工号
表3—2账单信息表
字段名称
数据类型
长度
可否为空
约束条件
说明
billid
int
8
NOTNULL
主键
账单号
dishid
char
10
NULL
无
菜名
dishamount
int
4
NULL
无
点菜数量
roomid
char
10
NULL
无
房间号
三、详细设计
1、包房信息模块
1.1房间信息功能结构图
图4—1房间信息功能结构
1.2模块设计:
运用c++builder6.0进行可视化页面的设计,并且连接数据库,在数据库中建立包房信息的数据库。
数据库中包含房间信息表,表中有roomid(房间号),state(房间状态),capacity(房间容纳人次),roomkind(房间类型)和chief(负责员工号)五项属性。
1.3功能描述:
具体功能描述如下:
1)按房间类型查询:
通过对房间类型的查询,查看某类房间的使用情况,方便员工和顾客选择房间和了解房间使用情况。
如:
顾客光临的时候,根据顾客人数的多少,选择合适的房间类型后,通过按类型查询,查看该类房间的使用情况,了解是否还有空余的房间。
2)按房间号查询:
通过对某一房间号查询到具体房间,了解该房间此时的使用情况。
方便餐厅工作人员了解具体房间的使用情况,对给该房间的开放时间,到目前的使用时间,负责房间的员工等信息直观显示。
如:
顾客结账时,查看该房间是在什么时间开始使用的,到结账时间位置,总共消费使用了多长时间和负责该房间服务员工的员工号是多少,据此找到是负责该房间的员工。
3)删除房间和增加房间:
此项主要是考虑到在具体的实际生活中,餐厅的中房间,可能会因为某种原因不能使用和在问题接触后重新恢复使用,或者餐厅扩大规模,缩小规模的实际情况。
如:
房间需要重新装修,或者由于设施等反面的原因在一段时间内,该房间不能使用,置于停止使用状态,为了能够在平日的工作中直观的表现出来,将把此房间从数据库中暂时删除掉。
便用到了此项操作,这样在日常的营业中,进行相关操作时便不会出现该房间的任何信息,避免将此房间开出而不能使用的尴尬局面。
在暂停使用的房间重新开始使用,或者是餐厅扩大规模,增加了新的房间时。
就需要恢复数据库信息或者修改增加数据库中的信息。
这就用到了增加房间的操作。
4)修改房间信息:
在实际的工作中,房间的相关信息并不是一成不变的,所以就需要对房间的相关信息进行及时的修改,以保证信息的正确性。
如:
由于员工的变动,本来负责某一房间的员工告假,就需要安排新的员工负责该房间。
或者,由于员工的辞职离去,招聘了新的员工进入,在员工数据库信息发生变动的同时,间接的影响到了房间信息数据库的异常。
此时,就需要根据具体情况,对包房信息数据库进行相应的修改。
1.4界面设计:
利用c++builder6.0自动生成的界面,进行添加所需要的项目框,构成实际操作中所需要的功能栏。
然后通过数据库连接连接到相应的数据库信息。
在然后通过程序代码的编写,就可以实现通过在界面的相应操作框中输入正确的信息,进行查询,增加,删除和修改,以及显示的具体操作了。
1.5模块功能:
1.5.1查询功能:
1在“餐桌类型”输入框中,输入“中包”,点击“查询”,将在显示框中显示出房间类型为“中包”的元组;
2在“负责人”输输入框中,输入“和平”,点击“查询”,将在显示框中显示出员工姓名为“和平”的元组;
3当输入的输入项不符合要求时,在显示框中出现空表,没有显示内容;
1.5.2插入功能:
在出现的对话框右侧,依次输入房间号为5,容纳人数为10,负责编号为123,包房类型大包后,点击“确定”,在显示框中便会立即出现新插入的数组{"5","10","123","","大包"};
1、删除功能:
在对话框中直接输入房间号,便可以直接删除对应的房间元组;
出现的错误:
再删除房间元组后,出现了产出异常,对应的管理员工的数据也被删除,在其他表中,涉及到该员工的信息元组都一并被删除了。
解决方案:
经删除语句中,将当初设计的“级联”修改为“限制”。
2、修改功能:
如插入功能类似,在输入框中输入需要修改的信息,点击修改,然后点击确定,在显示框中便会立即显示出修改后的新数组信息。
2、结账信息管理模块
2.1结账模块功能结构
图4—2结账模块功能结构
此模块与包房信息模块虽然在某些功能上不同,但是在实现界面设计和实现方式上是基本相同,类似的。
在此仅对功能进行简要的描述。
2.2功能描述:
具体功能如下:
1)连接包房表:
通过连接包房表,找到顾客消费时使用的包房编号,包房类型;
2)连接账单表:
连接到账单,显示所选择的菜品和数量;
3)结账方式选择:
此程序系统为顾客提供了多种支付方式供选择,并且直接在营业额显示中按不同的支付方式总额的比例;
4)退台:
将使用完毕的包房重新在前台包房信息中恢复显示,供前台服务员安排包房的使用。
2.3结账功能模块功能:
1进入页面后,点击“房间号”输入框后的下拉菜单即可选择房间号码,在选中具体号码之后,便会在“账单号”输入框中自动显示,该房间的账单号;
2点击查询后,在显示框中就会心输出账单信息;
3点击“总金额”,便会在“折扣前总金额”显示出消费金额;
3、程序编码
3.1包房信息模块功能编码
3.1.1查询功能
1)显示包房全部信息:
TForm1*Form1;
//---------------------------------------------------------------------------
__fastcallTForm1:
:
TForm1(TComponent*Owner)
:
TForm(Owner)
{
}
//---------------------------------------------------------------------------
void__fastcallTForm1:
:
Button14Click(TObject*Sender)
{
if(Edit11->Text!
="")
{
Stringmysql="selectroomid餐桌代码,capacity可容人数,chief负责编号,name负责人姓名,roomkind包间类型fromRoom,Staffwherechief=idandroomkind='"+Edit11->Text+"'";
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(mysql);
ADOQuery1->Open();
}
if(Edit11->Text=="")
{
Stringmysql="selectroomid餐桌代码,capacity可容人数,chief负责编号,name负责人姓名,roomkind包间类型fromRoom,Staffwherechief=id";
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(mysql);
ADOQuery1->Open();
}
}
3.1.2添加功能
void__fastcallTForm1:
:
Button1Click(TObject*Sender)
{
ADOQuery1->Insert();
ADOQuery1->FieldByName("餐桌代码")->Value=Edit1->Text;
ADOQuery1->FieldByName("可容人数")->Value=Edit2->Text;
ADOQuery1->FieldByName("负责编号")->Value=Edit3->Text;
ADOQuery1->FieldByName("包间类型")->Value=Edit4->Text;
ADOQuery1->Post();
}
3.1.3修改功能
void__fastcallTForm1:
:
Button2Click(TObject*Sender)
{
//1得到用户输入的新值
StringnewValue=Edit1->Text;
//第二步向TADOTable组件发出编辑的请求
ADOQuery1->Edit();
//给字段赋值
ADOQuery1->FieldByName("餐桌代码")->Value=newValue;
//第四步提交更改
ADOQuery1->Post();
//1得到用户输入的新值
StringnewValue2=Edit2->Text;
//第二步向TADOTable组件发出编辑的请求
ADOQuery1->Edit();
//给字段赋值
ADOQuery1->FieldByName("可容人数")->Value=newValue2;
//第四步提交更改
ADOQuery1->Post();
//1得到用户输入的新值
StringnewValue3=Edit3->Text;
//第二步向TADOTable组件发出编辑的请求
ADOQuery1->Edit();
//给字段赋值
ADOQuery1->FieldByName("负责编号")->Value=newValue3;
//第四步提交更改
ADOQuery1->Post();
//1得到用户输入的新值
StringnewValue4=Edit4->Text;
//第二步向TADOTable组件发出编辑的请求
ADOQuery1->Edit();
//给字段赋值
ADOQuery1->FieldByName("包间类型")->Value=newValue4;
//第四步提交更改
ADOQuery1->Post();
Stringmysql="selectroomid餐桌代码,capacity可容人数,chief负责编号,name负责人姓名,roomkind包间类型\
fromRoom,Staffwherechief=id";
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(mysql);
ADOQuery1->Open();
}
3.1.4删除功能
void__fastcallTForm1:
:
Button3Click(TObject*Sender)
{
Application->MessageBoxA("餐桌将被删除","信息提示框");
ADOQuery1->Delete();
}
3.2结账信息模块功能编码
3.2.1连接到账单表功能
void__fastcallTForm_jiezhangxinxi:
:
Button2Click(TObject*Sender)
{
Stringmysql="selectdish.dishid菜品编号,dishname菜品名称,dishamount菜品数量fromdishs,dish\
wheredishs.dishid=dish.dishidandroomid='"+ComboBox2->Text+"'";
ADOQuery1->Active=false;
A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 餐饮 管理 系统