软件工程餐厅管理系统设计报告.docx

上传人:b****6 文档编号:12733466 上传时间:2023-06-07 格式:DOCX 页数:24 大小:114.97KB
下载 相关 举报
软件工程餐厅管理系统设计报告.docx_第1页
第1页 / 共24页
软件工程餐厅管理系统设计报告.docx_第2页
第2页 / 共24页
软件工程餐厅管理系统设计报告.docx_第3页
第3页 / 共24页
软件工程餐厅管理系统设计报告.docx_第4页
第4页 / 共24页
软件工程餐厅管理系统设计报告.docx_第5页
第5页 / 共24页
软件工程餐厅管理系统设计报告.docx_第6页
第6页 / 共24页
软件工程餐厅管理系统设计报告.docx_第7页
第7页 / 共24页
软件工程餐厅管理系统设计报告.docx_第8页
第8页 / 共24页
软件工程餐厅管理系统设计报告.docx_第9页
第9页 / 共24页
软件工程餐厅管理系统设计报告.docx_第10页
第10页 / 共24页
软件工程餐厅管理系统设计报告.docx_第11页
第11页 / 共24页
软件工程餐厅管理系统设计报告.docx_第12页
第12页 / 共24页
软件工程餐厅管理系统设计报告.docx_第13页
第13页 / 共24页
软件工程餐厅管理系统设计报告.docx_第14页
第14页 / 共24页
软件工程餐厅管理系统设计报告.docx_第15页
第15页 / 共24页
软件工程餐厅管理系统设计报告.docx_第16页
第16页 / 共24页
软件工程餐厅管理系统设计报告.docx_第17页
第17页 / 共24页
软件工程餐厅管理系统设计报告.docx_第18页
第18页 / 共24页
软件工程餐厅管理系统设计报告.docx_第19页
第19页 / 共24页
软件工程餐厅管理系统设计报告.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程餐厅管理系统设计报告.docx

《软件工程餐厅管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《软件工程餐厅管理系统设计报告.docx(24页珍藏版)》请在冰点文库上搜索。

软件工程餐厅管理系统设计报告.docx

软件工程餐厅管理系统设计报告

 

题目:

软件工程餐厅管理设计报告

 

目录1

绪论

第一章需求分析3

§1.1设计任务3

§1.2设计目标4

§1.3要达到的技术要求4

第二章总体设计6

§2.1软件结构图6

§2.2服务与处理的数据结构设计7

§2.3安全设计8

第3章数据库设计9

§3.1总体设计9

§3.1.1概念结构设计9

§3.2逻辑结构设计11

§3.3物理结构设计11

第四章详细设计12

第五章编码15

§5.1包房信息模块功能编码15

§5.1.1查询功能15

§5.1.2添加功能16

§5.1.3修改功能16

§5.1.4删除功能17

§5.2结账信息模块功能编码17

§5.2.1连接到账单表功能17

§5.2.2消费金额计算显示功能18

§5.2.3退台功能18

第6章测试19

设计总结20

学习体会21

致谢22

参考文献23

 

 

绪论

随着我国市场经济的快速发展,餐饮业的发展日新月异,近两年来已呈现出高速发展的态势。

但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。

随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。

有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统视为一条有效的解决途径。

本系统是为了有效解决现行系统中手工运作所面临的工作量大、数据传递不及时、数据统计和计算易发生差错等造成餐饮管理效率低的种种问题,提供一个检索迅速、查找方便、存储量大、成本低的优势,从而大大提高信息管理的效率,促进餐饮行业健康、完善、稳步发展。

在人力与设备费用的节省方面,系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。

控制精度或生产能力的提高方面对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。

在管理信息服务的改进方面实现对消费的历史记录进行查询。

系统应最大限度地实现易维护性和易操作性。

实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。

因此本项目应实现系统人机交互的方式,使界面美观友好,信息查询灵活、方便,数据存储安全可靠,功能齐全。

如菜品的增删,价格的改变、桌台的增删、人员的流动,还能很好的管理顾客的点菜、查询消费记录、结账,改善传统意义上的管理,使管理变得方便并且有效。

我们设计的人间使用c++builder6.0编写程序,建造窗口,美化界面,改进操作,是软件和数据库完美结合。

旨在达到技术和操作两方面的要求。

技术方面,做全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上做出界面美观,人机交互能力强,满足用户需求的软件。

操作方面,人机交互能力强,界面友好,操作方便。

第一章需求分析

§1.1设计任务

完成以下功能要求:

前台营业:

日常营业操作

日始日结:

设定每个营业日的开始和结束

接待预订:

显示房台状态,进行房台预订

点菜收银:

开台、点菜、结帐、交班,提供最主要的营业功能

营业设置:

日常营业所必需的数据库设定

酒菜设置:

按类别(酒水饮料、凉菜、热菜、主食、包桌、服务用品等)设置酒菜数据

房台设置:

类别设置包房或餐台

其他设置:

付款方式(现金、银行卡、赠券、挂账、免单)、点菜说明等

营业分析:

对营业数据进行统计分析、打印报表

销售分析:

营业总况、收入金额

房台分析:

按房台统计分析营业情况

酒菜分析:

各种酒菜的详细销售情况统计

操作分析:

统计分析服务员的营业情况

业绩分析:

统计分析提成服务员的销售业绩和提成金额

财务查询:

查询各类单据和消费情况

帐单查询:

查询所有已结帐单

点单查询:

查询所有历史点单

挂帐查询:

查询挂帐(签单)客人消费情况

辅助管理:

日常营业所需的其他管理功能

操作员管理:

管理操作员信息,并设置系统操作权限和最低折扣值

挂帐管理:

挂帐人信息录入、修改、挂帐归还

§1.2设计目标

(1)支持日常业务运作。

(2)集中管理业务数据,支持管理预测与决策。

(3)有良好的可扩充性(系统配置灵活,支持用户未来信息化进程的发展)。

(4)汉字图形用户界面,人机对话友好,操作方便。

(5)响应速度合理,安全性较高(对折扣、退菜、赠送、优惠操作提供权限校验,并有记录备查。

数据库安全中支持前后台双数据库管理),网络运行稳定。

(6)系统建设费用较低。

§1.3要达到的技术要求

(1)功能:

该系统可以帮助餐饮企业处理日常工作业务,规范管理工作和操作流程,是餐饮行业的得力助手。

可以帮助管理者们边工作、边了解企业经营状况,为经营者提供决策分析的数据;可以杜绝内部管理的漏洞和避免人为错误给企业造成损失;可以为顾客提供全方位满意的服务;可以为顾客提供正规、精美、具有企业特色的结帐单;可以保证企业营业额数目的准确;可以了解常客的不同消费习惯和消费历史信息;可以知道畅销菜品和不受欢迎菜品;同时还能建立全方位的管理模式。

(2)输入/输出:

条形码英文和汉字输入,英文和汉字输出

(3)性能:

稳定快速,实时控制。

本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理。

本研究报告结合公司对餐饮业的实地调查所得出的许多数据,对餐饮业的发展概况和现状、投资特性、行业发展预测等进行详细的分析,并重点对本行业及市场竞争格局做了具体的剖析。

(4)安全与保密要求:

不能轻易被破坏,不能让管理人员以外的人删改餐饮等信息,对断电、死机、系统崩溃等问题有有力措施以保障数据不受损失。

该系统包含有密码装置来实现基本密码操作。

在系统功能中通过身份鉴别分别授予经理与员工不同的权限。

它是为增强普通关系数据库管理系统的安全性而设计的。

该系统中通过基本设置实现了数据库数据存储等的完整性要求。

第二章总体设计

§2.1软件结构图

图2—1餐饮管理软件功能结构图

 

§2.2服务与处理的数据结构设计

图2—2餐饮管理系统的业务流程图

§2.3安全设计

本系统考虑到了安全方面的问题,因此,设置了系统的登录权限,工作人员分经理和员工,并且每个工作人员进入界面都有自己的登录名和密码,只有用户名和密码一致,才能进入系统。

不同职位的人员有着不同的负责部分,进入到不同的界面,只能在自己的界面上进行业务,比如增、删、改信息。

员工只负责日常服务工作,不可以对员工信息和房间信息性进行访问和修。

经理权限要大一些,可以对员工信息和房间信息性进行访问和修。

 

第三章数据库设计

§3.1总体设计

在此系统中,本人主要负责包房信息管理,结账功能管理两个模块。

在此,针对这两个功能模块所涉及到得有关数据库设计过程作一下描述。

§3.1.1概念结构设计

(1)总体ER模型设计

图3—1各实体及其联系图

1、房间和顾客之间是使用关系;

供房间可以供不同的顾客所使用,顾客也可是选择不同的包房使用,所以是多对多的对应关系。

2、顾客与账单之间是付账的关系;

一张账单只对应固定的消费顾客,所以他们之间是一对一的对应关系。

且只有在进行付账过程中才有付款方式的选择和找零,所以这两个属性应该在对应关系上标出。

3、房间与账单的之间是对应关系;

房间在不同顾客使用过程中,对应不同的账单;而账单可以来自不同的房间,所以两者之间是多对多的关系。

 

(2)部分ER模型设计

 

图3—2房间实体及属性图

房间必须有以一个房间号和所能容纳的顾客人数,在实际使用中需要有一个属性来表示房间是否已经被使用,根据房间具有不同的大、中、小包需要给出房间类型属性,还有专门的员工对某一房间进行管理,在添加管理员工号这一属性。

便构成了如图所示的结构。

 

图3—3账单实体及属性图

账单通常是都有一个账单号的,账单需要显示顾客所选用的菜名以及数量,并标明是那个房间号。

便需要以上的个属性。

§3.2逻辑结构设计

将概念模型转换为逻辑结构,给出关系模式:

此为房间实体对应的关系模式:

房间(房间号,状态,容量,房间类型,管理员工号)

此为账单实体对应的关系模式。

账单(账单号,菜名,点菜数量,房间号)

§3.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

房间号

第四章详细设计

§4.1包房信息模块

图4—1房间信息功能结构

§4.1.1模块设计:

运用c++builder6.0进行可视化页面的设计,并且连接数据库,在数据库中建立包房信息的数据库。

数据库中包含房间信息表,表中有roomid(房间号),state(房间状态),capacity(房间容纳人次),roomkind(房间类型)和chief(负责员工号)五项属性。

 

§4.1.2功能描述:

具体功能描述如下:

1)按房间类型查询:

通过对房间类型的查询,查看某类房间的使用情况,方便员工和顾客选择房间和了解房间使用情况。

如:

顾客光临的时候,根据顾客人数的多少,选择合适的房间类型后,通过按类型查询,查看该类房间的使用情况,了解是否还有空余的房间。

2)按房间号查询:

通过对某一房间号查询到具体房间,了解该房间此时的使用情况。

方便餐厅工作人员了解具体房间的使用情况,对给该房间的开放时间,到目前的使用时间,负责房间的员工等信息直观显示。

如:

顾客结账时,查看该房间是在什么时间开始使用的,到结账时间位置,总共消费使用了多长时间和负责该房间服务员工的员工号是多少,据此找到是负责该房间的员工。

3)删除房间和增加房间:

此项主要是考虑到在具体的实际生活中,餐厅的中房间,可能会因为某种原因不能使用和在问题接触后重新恢复使用,或者餐厅扩大规模,缩小规模的实际情况。

如:

房间需要重新装修,或者由于设施等反面的原因在一段时间内,该房间不能使用,置于停止使用状态,为了能够在平日的工作中直观的表现出来,将把此房间从数据库中暂时删除掉。

便用到了此项操作,这样在日常的营业中,进行相关操作时便不会出现该房间的任何信息,避免将此房间开出而不能使用的尴尬局面。

在暂停使用的房间重新开始使用,或者是餐厅扩大规模,增加了新的房间时。

就需要恢复数据库信息或者修改增加数据库中的信息。

这就用到了增加房间的操作。

4)修改房间信息:

在实际的工作中,房间的相关信息并不是一成不变的,所以就需要对房间的相关信息进行及时的修改,以保证信息的正确性。

如:

由于员工的变动,本来负责某一房间的员工告假,就需要安排新的员工负责该房间。

或者,由于员工的辞职离去,招聘了新的员工进入,在员工数据库信息发生变动的同时,间接的影响到了房间信息数据库的异常。

此时,就需要根据具体情况,对包房信息数据库进行相应的修改。

 

§4.1.3界面设计:

利用c++builder6.0自动生成的界面,进行添加所需要的项目框,构成实际操作中所需要的功能栏。

然后通过数据库连接连接到相应的数据库信息。

在然后通过程序代码的编写,就可以实现通过在界面的相应操作框中输入正确的信息,进行查询,增加,删除和修改,以及显示的具体操作了。

§4.2结账信息管理

图4—2结账模块功能结构

此模块与包房信息模块虽然在某些功能上不同,但是在实现界面设计和实现方式上是基本相同,类似的。

在此仅对功能进行简要的描述。

§4.1.1功能描述:

具体功能如下:

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();

//给字段赋值

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();

}

§5.1.4删除功能

void__fastcallTForm1:

:

Button3Click(TObject*Sender)

{

Application->MessageBoxA("餐桌将被删除","信息提示框");

ADOQuery1->Delete();

}

§5.2结账信息模块功能编码

§5.2.1连接到账单表功能

void__fastcallTForm_jiezhangxinxi:

:

Button2Click(TObject*Sender)

{

Stringmysql="selectdish.dishid菜品编号,dishname菜品名称,dishamount菜品数量fromdishs,dish\

wheredishs.dishid=dish.dishidandroomid='"+ComboBox2->Text+"'";

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(mysql);

ADOQuery1->Open();

Stringmysqls="selectdistinctbillidfromdishswhereroomid='"+ComboBox2->Text+"'";

ADOQuery4->Active=false;

ADOQuery4->SQL->Clear();

ADOQuery4->SQL->Add(mysqls);

ADOQuery4->Open();

AnsiStringq=ADOQuery4->FieldByName("billid")->AsString;

Edit5->Text=q;

}

 

§5.2.2消费金额计算显示功能

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;

}

§5.2.3退台功能

void__fastcallTForm_jiezhangxinxi:

:

Button1Click(TObject*Sender)

{

Stringmysql="insertintoconsume(billid,money,roomid,chargerid,discount,payways)values('"+Edit5->Text+"','"+Edit3->Text+"','"+ComboBox2->Text+"','"+ComboBox1->Text+"','"+Edit2->Text+"','"+k+"')";

ADOQuery3->Active=false;

ADOQuery3->SQL->Add(mysql);

ADOQuery3->ExecSQL();

Application->MessageBoxA("操作成功","信息提示框");

mysql="updateroomsetstate=0whereroomid='"+ComboBox2->Text+"'";

ADOQuery3->Active=false;

ADOQuery3->SQL->Clear();

ADOQuery3->SQL->Add(mysql);

ADOQuery3->ExecSQL();

Form_yuangong->ADOQuery1->Close();

Form_yuangong->ADOQuery1->Open();

mysql="deletefromdishswhereroomid='"+ComboBox2->Text+"'";

ADOQuery3->Active=false;

ADOQuery3->SQL->Clear();

ADOQuery3->SQL->Add(mysql);

ADOQuery3->ExecSQL();

Form_yuangong->ADOQuery1->Close();

Form_yuangong->ADOQuery1->Open();

this->Close();

 

}

 

第六章测试

§6.1包房信息管理模块:

1、查询功能:

1在“餐桌类型”

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2