软件工程餐厅管理系统设计报告.docx
- 文档编号:4349328
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:30
- 大小:113.12KB
软件工程餐厅管理系统设计报告.docx
《软件工程餐厅管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《软件工程餐厅管理系统设计报告.docx(30页珍藏版)》请在冰点文库上搜索。
软件工程餐厅管理系统设计报告
软件工程课程设计
题目:
饭店餐饮管理系统
——详细设计说明书
班级:
2012级计科1班
学号:
2012484222
姓名:
王雪静
2012年10月20日
目录
目录1
第一章引言1
1.1目的1
1.2背景1
1.3定义2
1.4参考资料2
第二章程序系统的结构2
2.1软件结构图2
2.2包房信息模块3
2.3结账信息管理4
2.4各模块之间的关系ER图4
第三章程序设计说明4
3.1程序描述4
3.2功能5
3.3性能6
3.4输入项6
3.5输出项6
3.6算法6
3.7流程逻辑9
3.8接口9
3.9存储分配11
3.10测试计划11
3.10.1预期效果11
3.10.2测试11
第四章程序
(2)标识符设计说明错误!
未定义书签。
4.1房间模块设计说明12
4.2账单模块设计说明14
第五章编码19
5.1包房信息模块功能编码19
5.1.1查询功能19
5.1.2添加功能20
5.1.3修改功能20
5.1.4删除功能21
5.2结账信息模块功能编码18
5.2.1连接到账单表功能18
5.2.2消费金额计算显示功能22
5.2.3退台功能19
设计总结24
学习体会25
小组互评25
详细设计说明书
第一章引言
1.1目的
在计算机飞速发展的今天,快捷便利的操作方法被越来越多的人所接受,计算机代替了人们众多复杂繁琐的工作。
目前餐饮管理系统尚未被广泛应用,还存在着进一步开发的可能性。
餐饮管理者和消费者将成为餐饮管理系统报告的潜在读者。
本系统为饭店餐饮管理系统是为了有效解决现行系统中手工运作所面临的工作量大、数据传递不及时、数据统计和计算易发生差错等造成餐饮管理效率低的种种问题,本系统将采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。
控制精度或生产能力的提高方面对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。
在管理信息服务的改进方面实现对消费的历史记录进行查询。
系统应最大限度地实现易维护性和易操作性。
实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。
1.2背景
2经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理,进入到重视定量管理的科学阶段。
众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理。
传统手工操作管理存在着许多无法避免的问题,例如:
1.人工计算账单容易出差错。
2.收银工作中跑单、漏单、偷钱现象普遍。
3.个别服务员作弊、改单、宰客情形发生。
3.客人消费数据难以保存查询。
4.无法对大量营业数据进行统计分析。
因此制约了整个餐饮业的规模化发展和整体服务水平的提升。
有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统视为一条有效的解决途径。
说明:
a.待开发软件系统的名称:
餐饮管理系统
b.本项目的任务提出者:
罗文劼开发者:
李佳慧郭俊雪王雪静
1.3定义
房间信息表:
表中有roomid(房间号),state(房间状态),capacity(房间容纳人次),roomkind(房间类型)和chief(负责员工号)
1.4参考资料
[1]王珊萨师煊·数据库系统概论(第四版)·北京·高等教育出版社·2006
[2]郭睿志·C#+SQLServer项目开发实践·北京·中国铁道出版社·2007
[3]JohnSharp·VisualC#2005从入门到精通·北京·清华大学出版社·2006
[4]飞狼李春萌·数据库管理与应用指南·人民邮电出版社·2005
第二章程序系统的结构
2.1软件结构图
图2—1餐饮管理软件功能结构图
2.2包房信息模块
图2—2房间信息功能结构
2.3结账信息管理
图2—3结账模块功能结构
2.4各模块之间的关系ER图:
图2—4各实体及其联系图
1、房间和顾客之间是使用关系;
供房间可以供不同的顾客所使用,顾客也可是选择不同的包房使用,所以是多对多的对应关系。
2、顾客与账单之间是付账的关系;
一张账单只对应固定的消费顾客,所以他们之间是一对一的对应关系。
且只有在进行付账过程中才有付款方式的选择和找零,所以这两个属性应该在对应关系上标出。
3、房间与账单的之间是对应关系;
房间在不同顾客使用过程中,对应不同的账单;而账单可以来自不同的房间,所以两者之间是多对多的关系。
第三章程序设计说明
。
3.1程序描述
本程序非常驻内存,只把所需到的部分调入内存运行即可。
包含子程序,包厢模块及菜单管理方面有覆盖要求,属于顺序处理。
本程序包含以下内容:
前台营业:
日常营业操作
日始日结:
设定每个营业日的开始和结束
接待预订:
显示房台状态,进行房台预订
点菜收银:
开台、点菜、结帐、交班,提供最主要的营业功能
营业设置:
日常营业所必需的数据库设定
酒菜设置:
按类别(酒水饮料、凉菜、热菜、主食、包桌、服务用品等)设置酒菜数据
房台设置:
类别设置包房或餐台
其他设置:
付款方式(现金、银行卡、赠券、挂账、免单)、点菜说明等
营业分析:
对营业数据进行统计分析、打印报表
销售分析:
营业总况、收入金额
房台分析:
按房台统计分析营业情况
酒菜分析:
各种酒菜的详细销售情况统计
操作分析:
统计分析服务员的营业情况
业绩分析:
统计分析提成服务员的销售业绩和提成金额
财务查询:
查询各类单据和消费情况
帐单查询:
查询所有已结帐单
点单查询:
查询所有历史点单
挂帐查询:
查询挂帐(签单)客人消费情况
辅助管理:
日常营业所需的其他管理功能
操作员管理:
管理操作员信息,并设置系统操作权限和最低折扣值
挂帐管理:
挂帐人信息录入、修改、挂帐归还
3.2功能
该系统可以帮助餐饮企业处理日常工作业务,规范管理工作和操作流程,是餐饮行业的得力助手。
可以帮助管理者们边工作、边了解企业经营状况,为经营者提供决策分析的数据;可以杜绝内部管理的漏洞和避免人为错误给企业造成损失;可以为顾客提供全方位满意的服务;可以为顾客提供正规、精美、具有企业特色的结帐单;可以保证企业营业额数目的准确;可以了解常客的不同消费习惯和消费历史信息;可以知道畅销菜品和不受欢迎菜品;同时还能建立全方位的管理模式。
3.3性能
稳定快速,实时控制。
本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理。
本研究报告结合公司对餐饮业的实地调查所得出的许多数据,对餐饮业的发展概况和现状、投资特性、行业发展预测等进行详细的分析,并重点对本行业及市场竞争格局做了具体的剖析。
3.4输人项
名称
标识
数据类型
数据格式
有效范围
数据类型
约束条件
管理员工号
chief
Int
整形
8位
整形
不得为空
菜名
dishid
Char
字符串形
10位
字符串形
不得为空
房间号
Roomid
Char
整形
8位
整形
无
管理员密码
password
char
整形
10位
整形
不得为空
负责人
Name
Char
字符串形
8位
字符串形
无
3.5输出项
名称
标识
数据类型
数据格式
有效范围
输出形式
餐桌号
tableid
char
整形
4位
晶体管输出
状态
state
int
字符型
2位
晶体管输出
容量
capacity
int
整形
4位
晶体管输出
房间类型
roomkind
char
字符型
2位
晶体管输出
账单号
billid
char
整形
8位
晶体管输出
账单总价
totalprice
int
浮点型
4位
晶体管输出
点菜数量
number
int
整形
4位
晶体管输出
房间号
roomid
char
整形
8位
晶体管输出
3.6算法
以下详细说明本程序所选用的算法,具体的计算公式和计算步骤。
§添加功能
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();
}
§修改功能
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();
§删除功能
void__fastcallTForm1:
:
Button3Click(TObject*Sender)
{
Application->MessageBoxA("餐桌将被删除","信息提示框");
ADOQuery1->Delete();
§消费金额计算显示功能
void__fastcallTForm_jiezhangxinxi:
:
Button3Click(TObject*Sender)
{
Stringmysql="selectsum(uniteprice)a\
fromdishs,dishwheredishs.dishid=dish.dishidandroomid='"+ComboBox2->Text+"'";
ADOQuery4->Active=false;
ADOQuery4->SQL->Clear();
ADOQuery4->SQL->Add(mysql);
ADOQuery4->Open();
AnsiStrings=ADOQuery4->FieldByName("a")->AsString;
Edit1->Text=s;
}
3.7流程逻辑
图3—7餐饮管理系统的业务流程图
3.8接口
1、餐饮管理系统各模块关系如下:
酒店员工登陆模块
用户模块
2、逻辑结构设计
此为房间实体对应的关系模式:
房间(房间号,状态,容量,房间类型,管理员工号)
此为账单实体对应的关系模式。
账单(账单号,菜名,点菜数量,房间号)
数据库中对包厢信息的定义及设计如下表:
表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
8
NULL
无
菜名
dishamount
int
4
NULL
无
点菜数量
roomid
char
4
NULL
无
房间号
3.9存储分配
房间号、房间状态、管理员工号、点菜数量分配4个存储单位。
容量、房间类型、账单号、菜名分配8个存储单位。
3.10测试计划
说明对本程序进行单元测试的计划,包括对测试的技术要求、输入数据、预期结果、驱动程序及桩模块等的规定。
3.10.1设计预期效果
(1)支持日常业务运作。
(2)集中管理业务数据,支持管理预测与决策。
(3)有良好的可扩充性(系统配置灵活,支持用户未来信息化进程的发展)。
(4)汉字图形用户界面,人机对话友好,操作方便。
(5)响应速度合理,安全性较高(对折扣、退菜、赠送、优惠操作提供权限校验,并有记录备查。
数据库安全中支持前后台双数据库管理),网络运行稳定。
(6)不能轻易被破坏,不能让管理人员以外的人删改餐饮等信息,对断电、死机、系统崩溃等问题有有力措施以保障数据不受损失。
3.10.2测试
§包房信息管理模块:
1、查询功能:
1在“餐桌类型”输入框中,输入“中包”,点击“查询”,将在显示框中显示出房间类型为“中包”的元组;
2在“负责人”输输入框中,输入“和平”,点击“查询”,将在显示框中显示出员工姓名为“和平”的元组;
3当输入的输入项不符合要求时,在显示框中出现空表,没有显示内容;
2、插入功能:
在出现的对话框右侧,依次输入房间号为5,容纳人数为10,负责编号为123,包房类型大包后,点击“确定”,在显示框中便会立即出现新插入的数组{"5","10","123","","大包"};
3、删除功能:
在对话框中直接输入房间号,便可以直接删除对应的房间元组;
出现的错误:
再删除房间元组后,出现了产出异常,对应的管理员工的数据也被删除,在其他表中,涉及到该员工的信息元组都一并被删除了。
解决方案:
经删除语句中,将当初设计的“级联”修改为“限制”。
4、修改功能:
如插入功能类似,在输入框中输入需要修改的信息,点击修改,然后点击确定,在显示框中便会立即显示出修改后的新数组信息。
§结账功能模块:
1进入页面后,点击“房间号”输入框后的下拉菜单即可选择房间号码,在选中具体号码之后,便会在“账单号”输入框中自动显示,该房间的账单号;
2点击查询后,在显示框中就会心输出账单信息;
3点击“总金额”,便会在“折扣前总金额”显示出消费金额;
第四章程序2(标识符)设计说明
1、房间模块设计说明
图3—2房间实体及属性图
房间必须有以一个房间号和所能容纳的顾客人数,在实际使用中需要有一个属性来表示房间是否已经被使用,根据房间具有不同的大、中、小包需要给出房间类型属性,还有专门的员工对某一房间进行管理,在添加管理员工号这一属性。
便构成了如图所示的结构。
具体功能描述如下:
1)按房间类型查询:
通过对房间类型的查询,查看某类房间的使用情况,方便员工和顾客选择房间和了解房间使用情况。
如:
顾客光临的时候,根据顾客人数的多少,选择合适的房间类型后,通过按类型查询,查看该类房间的使用情况,了解是否还有空余的房间。
2)按房间号查询:
通过对某一房间号查询到具体房间,了解该房间此时的使用情况。
方便餐厅工作人员了解具体房间的使用情况,对给该房间的开放时间,到目前的使用时间,负责房间的员工等信息直观显示。
如:
顾客结账时,查看该房间是在什么时间开始使用的,到结账时间位置,总共消费使用了多长时间和负责该房间服务员工的员工号是多少,据此找到是负责该房间的员工。
3)删除房间和增加房间:
此项主要是考虑到在具体的实际生活中,餐厅的中房间,可能会因为某种原因不能使用和在问题接触后重新恢复使用,或者餐厅扩大规模,缩小规模的实际情况。
如:
房间需要重新装修,或者由于设施等反面的原因在一段时间内,该房间不能使用,置于停止使用状态,为了能够在平日的工作中直观的表现出来,将把此房间从数据库中暂时删除掉。
便用到了此项操作,这样在日常的营业中,进行相关操作时便不会出现该房间的任何信息,避免将此房间开出而不能使用的尴尬局面。
在暂停使用的房间重新开始使用,或者是餐厅扩大规模,增加了新的房间时。
就需要恢复数据库信息或者修改增加数据库中的信息。
这就用到了增加房间的操作。
4)修改房间信息:
在实际的工作中,房间的相关信息并不是一成不变的,所以就需要对房间的相关信息进行及时的修改,以保证信息的正确性。
如:
由于员工的变动,本来负责某一房间的员工告假,就需要安排新的员工负责该房间。
或者,由于员工的辞职离去,招聘了新的员工进入,在员工数据库信息发生变动的同时,间接的影响到了房间信息数据库的异常。
此时,就需要根据具体情况,对包房信息数据库进行相应的修改。
2、账单模块设计说明:
图3—3账单实体及属性图
账单通常是都有一个账单号的,账单需要显示顾客所选用的菜名以及数量,并标明是那个房间号。
便需要以上的个属性。
具体功能如下:
1)连接包房表:
通过连接包房表,找到顾客消费时使用的包房编号,包房类型;
2)连接账单表:
连接到账单,显示所选择的菜品和数量;
3)结账方式选择:
此程序系统为顾客提供了多种支付方式供选择,并且直接在营业额显示中按不同的支付方式总额的比例;
4)退台:
将使用完毕的包房重新在前台包房信息中恢复显示,供前台服务员安排包房的使用。
第五章编码
5.1包房信息模块功能编码
5.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();
}
}
5.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();
}
5.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();
//给字段赋值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 餐厅 管理 系统 设计 报告