黑龙江外国语学院
(学期)
专 业: 班 级: 学生姓名: 课程名称:
任课教师:
2015 年 12 月 4 日
个体餐饮系统设计与实现
杨昊川
摘要
近几今年我国市场经济飞速发展,各行业都呈现出生机勃勃的发展景象,尤其是餐饮业的发展尤为突出。如今已呈现出高速发展的势态。随着餐饮行业的规模和数量不断增长,手工管理模式无论是在工作效率、成本还是提供决策信息整体规划方面都已无法 适应现代化经营管理的需求,制约了整个餐饮业的规模化发展和整体服务水平的提升。本文结合饭店的服务和管理内容,利用现代化科技技术MIS有效的解决工作 效率和管理困难等问题。
关键词: 内聚耦合性 个体餐饮 软件工程基础 模块化分析
目 录
1.引言 .......................................................................................................... 5
1.1研究背景与现状 .......................................................................... 5
1.2研究目的及意义 .......................................................................... 5
2.系统分析 .................................................................................................. 5
2.1可行性研究................................................................................... 5
2.1.1可行性研究的方法 ........................................................... 6
2.1.2经济可行性 ....................................................................... 6
2.1.3技术可行性 ....................................................................... 6
2.2需求分析....................................................................................... 6
2.2.1 需求概述 .......................................................................... 6
2.2.2需求分析阶段的目标 ................................................. 7
2.2.3 需求分析阶段的任务 ................................................ 7
2.2.3.1处理对象 ....................................................... 7
2.2.3.2 处理功能及要求 .......................................... 7
3 系统设计 ................................................................................................. 8
3.1 系统设计思想 .......................................................................... 8
3.2 系统开发环境 ............................................................................. 8
3.2.1 系统开发程序(源码见附录1) ................................... 9
3.3系统功能设计 ........................................................................... 9
3.3.1 系统功能模块图 .............................................................. 9
4.数据库设计 ............................................................................................ 12
4.1建立数据库(数据表,视图) ............................................. 12
4.1.1建立数据库 ..................................................................... 13
4.1.2 建立数据表 .................................................................... 13
4.2数据入库..................................................................................... 14
5.内聚 ........................................................................................................ 15
5.1内聚性 ......................................................................................... 15
5.2偶然内聚..................................................................................... 15
5.3逻辑内聚..................................................................................... 15
5.4时间内聚..................................................................................... 15
5.5过程内聚..................................................................................... 16
5.6通信内聚..................................................................................... 16
5.7顺序内聚..................................................................................... 16
5.8功能内聚..................................................................................... 16
6.系统调试与程序功能测试 ................................................................ 16
结 论 ....................................................................................................... 17
附录1 源码 .............................................................................................. 19
1.引言
1.1研究背景与现状
随着人民群众生活水平的提高,餐饮业的功能向社会交往。休闲享受等方面不断拓展,节日家宴、婚庆消费、日常快餐等大众消费成为餐饮业的消费主流,餐饮行业的个体工商户不断的注册成立,数量不断壮大。但是目前阶段,餐饮业个体工商户由于市场准入门槛较低,技术含量不高,经营规模相对较小,产权的私有化和家庭化相融合,会计核算不健全或者根本没有会计核算。现行的手工管理方式,整体科技含量低。随着餐饮业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升
1.2研究目的及意义
本文通过以点餐系统为例,包涵用户的基本要求进行需求分析后,将系统按照不用的用户类型划分为服务员模块、管理员模块、财务管理模块。按照数据库设计流程用业务流程图、数据流程图,进行系统模型设计,系统架构设计,登录模块设计,台桌模块设计,数据同步模块设计,建立一个能满足用户对个体餐饮方便实用的个体餐饮管理系统。
2.系统分析
2.1可行性研究
2.1.1可行性研究的方法
可行性研究的方法如下:
(1) 个体餐饮现状调查
(2) 市场相关管理软件的试用与同类软件产品的调查
2.1.2经济可行性
进一步实现自动化管理,提高整体效率。
1)机件投资
硬件设备:PC机
软件:Windows XP以上系统环境, CentOS 4以上系统环境
2)其它一次性支出
软件设计和开发费用
(3)经常性支出
软件数据库维护费用,需求升级的费用。
2.1.3技术可行性
本个体餐饮系统采用常规的数据库系统管理方法,根据信息管理的各项特点,使程序对数据的查询、插入、删除进行了相应优化设计。 数据流程和处理流程如图所示:
2.2需求分析
2.2.1 需求概述
需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,并影响
到设计结果是否合理和使用。
2.2.2需求分析阶段的目标
1.了解个体餐饮工作模式;
2.了解个体餐饮个用户需求;
3.优化需求方案;
2.2.3 需求分析阶段的任务
2.2.3.1处理对象
系统的处理对象涉及以下几个方面的信息:
系统用户状态信息(AdminState):用户编号,用户活动。
菜品基本信息(FoodInfo):菜品编号,菜品价格。
消费项目基本信息(Atariff):消费项目编号,消费项目名称,消费项目价格。
台桌状态信息(TableState):台桌编号,台桌活动。
消费信息(Consumelist):台桌编号,消费项目编号,消费项目数量,消费金额。
2.2.3.2 处理功能及要求
1.能够存储一定数量的菜品,并方便有效的进行相应的菜品数据操作和管理,这主要包括:
1)菜品信息的录入,删除和修改。
2)菜品信息的编号查询。
2.能够对顾客的台桌信息,点餐信息,消费信息进行相应的操作,
这主要包括:
1)顾客消费的登记,删除及修改。
2)顾客消费信息的汇总。
3.能够提供一定的安全机制,提供数据信息授权访问,修改和删除,防止随意查询,修改及删除。
4.对查询,统计的结果能够列表显示。
3 系统设计
3.1 系统设计思想
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。
本系统开发设计思想有一下几点:
1.尽量采用第配置硬件环境,充分利用个体现有资源,提高系统开发水平和应用效果的目的。
2.系统应符合个体餐饮管理的需求,满足日常工作的需要,并且达到操作过程中的直观、方便、实用、安全等要求。
3.采用系统模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未开发的模块的开发和维护。
4.系统应具备数据库维护的功能,及时根据用户进行数据的添加、删除、修改、备份等操作。
3.2 系统开发环境
发采用低端硬件环境,支持Windows XP及以上工作环境。软件
采用C/C++的工作开发环境,兼容性强,速度快,稳定安全。
3.2.1 系统开发程序(源码见附录1)
3.3系统功能设计
3.3.1 系统功能模块图
本系统的功能主要包括如图几个方面:
系统架构图:
模块汇总(登录模块设计,台桌模块设计,数据同步模块):
登录模块:
台桌模块:
数据同步
:
4.数据库设计
4.1建立数据库(数据表,视图)
4.1.1建立数据库
数据库的建立
Create database Fabcind; 4.1.2 建立数据表
(1)系统用户信息表的建立: create table admin (
Ano char(20) not null, Aname char(20)not null, Apwd char(20)not null, Aid char(15) unique not null )
表1 系统用户信息
列名 Ano Aname Apwd Aid
数据类型 char(20) char(20) char(20) char(105)
可否为空 not null not null not null not null
说明 管理编号 管理类型 管理密码 管理ID
(2)菜品信息表的建立: create table FoodInfo
(
Fodno char(20),
Fodname char(20)not null, Fodprice float not null,
check (Fodprice >0.0) )
表2菜品信息
列名 Fodno Fodname Fodprice
数据类型 char(20) char(20) float
可否为空 not null not null not null
说明 菜品编号 菜品名称 菜品价格
(3)台桌信息表的建立: create tableTabInfo (
Tabno char(20), TabMoney float not null, check (TabMoney > 0.0) )
表3台桌信息
列名 Tabno FodMoney
数据类型 char(20) float
可否为空 not null not null
说明 台桌编号 消费价格
4.2数据入库
系统包括系统用户信息表、菜品信息表、台桌信息表,共有3张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2000数据
导入/导出向导功能,直接将数据导入到相应的基本表中。 5.内聚 5.1内聚性
是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。
经实践证明,保证模块的高内聚性比低耦合性更为重要,在软件设计时应将更多的注意力集中在提高模块的内聚性上。模块的内聚性主要可划分为如下几种不同的类型。 5.2偶然内聚
若一个模块由多个完成不同任务的语句段组成,各语句段之间的联系十分松散或根本没有任何联系,则称此模块的内聚为偶然内聚。 5.3逻辑内聚
这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。 5.4时间内聚
若一个模块包含了需要在同一时间段中执行的多个任务,则称该模块的内聚为时间内聚。例如,将多个变量的初始化放在同一个模块中实现,或将需要同时使用的多个库文件的打开操作放在同一个模块中,都会产生时间内聚的模块。
5.5过程内聚
若一个模块中的各个部分相关,并且必须按特定的次序执行,则称该模块的内聚为过程内聚。在结构化程序中,通常采用程序流程图作为设计软件和确定模块划分的工具,因此,这样得到的模块往往具有过程内聚的特性。 5.6通信内聚
若一个模块中的各个部分使用同一个输入数据或产生同一个输出数据,则称该模块的内聚为通信内聚。 5.7顺序内聚
若一个模块中的各个部分都与同一个功能密切相关,并且必须按照先后顺序执行(通常前一个部分的输出数据就是后一个部分的输入数据),则称该模块的内聚为顺序内聚。 5.8功能内聚
若一个模块中各个组成部分构成一个整体并共同完成一个单一的功能,则称该模块的内聚为功能内聚。 6.系统调试与程序功能测试
对该个体餐饮管理系统进行测试,验证每个功能是否符合要求,具体的测试如下:
1.测试系统间能否正常跳转。
2 .检验数据在存储过程中是否正确存储,数据是否能够准确入表。 3.测试系统是否能够按预期目标稳定运行。
结 论
本文从餐饮管理系统发展现状谈起,根据餐饮系统的流程,分析了系统的需求,通过总体设计、详细设计、数据库设计和编码实现几个阶段,完成了餐饮系统从用户登录到开台点菜,到结账收银,到统计一条线的信息化管理。规范了餐饮业的库存管理,扩展性的增加了内部管理等功能。系统将餐饮业中点菜、退钱、预定、结账等一连串的业务用计算机来管理,解决餐饮系统的关键技术,给出了餐饮业务的解决方案,实现了现代化的餐饮管理机制。
参考文献
[1] 赵赤龙,实用软件工程[M],北京:电子工业出版社,2011.
[2] 李代平,软件工程(第三版)[M],北京:清华大学出版社,2011. [3] 陈明,软件工程实用教程[M],北京:清华大学出版社,2012. [4] 萨师煊 王珊,数据库系统概论(第四版),北京:高教出版社,2006 [5] 王玉雯,《中小餐饮企业智能服务系统设计与实现》,电子科技大学,2013
附录1 源码
*(部分(*.h)代码 不作展示。)*
1. adminui.cpp
#include #include #include #include"menuui.h" #include using namespace std;
int choosemain;//主函数choose int choosemenu;//菜单界面choose int cm_num;//菜目编号 string cm_name;//菜单名字 int cm_price;//菜单价格
//bool cm_zt=false;//菜单状态 //bool cm_sure=false;//确定保存? char cm_zt;//菜单状态 char cm_sure;//确定保存? char cm_del;//确定删除? int cz_num=000;//定义餐桌号 string uname;//定义人员管理
class systemmain{ public:
systemmain() {
cout
cout>choosemain;
/*----------------------------------------*/ switch(choosemain) {
case 1:
system("cls"); Sleep(500); //添加 menuui(); break; case 2:
Sleep(700); cout
cout
cout "
Sleep(700); cout
cout
cout "
bool quit = true; break; } } };
//在menuui.h中定义使用 menuui::menuui(){
cout
cout 增加菜目" 删除菜目" 修改菜目" 查询菜目" 所有菜目" 返 回"
cout>choosemenu;
/*----------------------------------------*/ switch(choosemenu)
{
case 1:
Sleep(200);
cout>cm_num;
cout>cm_name;
cout>cm_price;
cout>cm_zt;
while(cm_zt == 'n' || cm_zt == 'N') continue;
cout>cm_sure;
while(cm_sure == 'n' || cm_sure == 'N') continue; menuui(); break; case 2:
cout"; cin>>cm_num;
cout
cout
cout>cm_del; menuui(); break; case 3:
cout
cout"; cin>>cm_num;
cout
cout
cout
cout
cout
"
break; case 6:
Sleep(500); system("cls"); systemmain(); default:
cout
/*void main() {
systemmain sys; }*/
2. login.cpp
#include #include #include #include"main.cpp" #include"adminui.cpp" #include"adminmenu.cpp" #include"serve.cpp" using namespace std;
int ts=0;//定义 输入错误时提示次数
class login{ protected:
string uname; string passwd; public:
loginok();
string Getuname(); string Getpasswd(); };
login::loginok(){
cout
cout "; cin>>uname;
cout "; cin>>passwd; };
string login::Getuname() {
return uname; }
string login::Getpasswd() {
return passwd; }
class matching:public login{ public:
matching(string uname,string passwd) {
if( uname == "123" && passwd == "123" ) {
cout
cout
else if( uname == "admin" && passwd == "admin" ) {
cout
cout
else if( uname == "111" && passwd == "111" ) {
cout
cout
cout
//cout
system("cls"); Sleep(500);
cout
cout
new(this)matching(log.Getuname(),log.Getpasswd());//在默认构造函数内部调用带参构造函数的问题 }
if(ts>3) {
system("cls"); Sleep(600);
cout
cout
int main( int argc, char *argv[] ) {
initialize(); Sleep(1000); system("cls"); login log; log.loginok();
matching(log.Getuname(),log.Getpasswd()); return 0; } 3. serve.cpp
#include #include #include using namespace std;
class serve{ private:
int chooseserve;
int zt_num;//定义 桌台号; int ls_num;//定义 流水号; int menu_num;//定义 菜品号; int ok_num;//定义 点餐份数; string dd_ok;//定义 确定点餐; string dd_go;//定义 继续点餐; string final_ok;//定义 确定结账; string zt_choose;//开桌 选择;
public: serve() {
cout
cout>chooseserve; bool quit = false; switch(chooseserve) {
case 1:
cout
cout ">zt_num;
cout>zt_choose;
if( zt_choose == "Y" || zt_choose == "y" ) {
Sleep(1000);
cout
break; case 2:
cout
cout
cout"; cin>>ls_num; Sleep(500);
cout
cout";
是否买单 活动"
cin>>menu_num;
cout"; cin>>ok_num;
cout"; cin>>dd_ok;
if( dd_ok == "Y" || dd_ok == "y" ) {
cout"; cin>>dd_go;
if( dd_go == "Y" || dd_go == "y" ) {
Sleep(600); system("cls"); serve(); } }
break; case 3:
cout
Sleep(600);
cout
cout"; cin>>ls_num;
cout
//cout
Sleep(600);
cout
cout>ls_num;
cout"; cin>>final_ok; Sleep(900);
cout
serve(); break; case 6:
bool quit = true; break; } // // } };
/*int main( int argc,char *argv[] ) {
serve sev; return 0; }*/
黑龙江外国语学院
(学期)
专 业: 班 级: 学生姓名: 课程名称:
任课教师:
2015 年 12 月 4 日
个体餐饮系统设计与实现
杨昊川
摘要
近几今年我国市场经济飞速发展,各行业都呈现出生机勃勃的发展景象,尤其是餐饮业的发展尤为突出。如今已呈现出高速发展的势态。随着餐饮行业的规模和数量不断增长,手工管理模式无论是在工作效率、成本还是提供决策信息整体规划方面都已无法 适应现代化经营管理的需求,制约了整个餐饮业的规模化发展和整体服务水平的提升。本文结合饭店的服务和管理内容,利用现代化科技技术MIS有效的解决工作 效率和管理困难等问题。
关键词: 内聚耦合性 个体餐饮 软件工程基础 模块化分析
目 录
1.引言 .......................................................................................................... 5
1.1研究背景与现状 .......................................................................... 5
1.2研究目的及意义 .......................................................................... 5
2.系统分析 .................................................................................................. 5
2.1可行性研究................................................................................... 5
2.1.1可行性研究的方法 ........................................................... 6
2.1.2经济可行性 ....................................................................... 6
2.1.3技术可行性 ....................................................................... 6
2.2需求分析....................................................................................... 6
2.2.1 需求概述 .......................................................................... 6
2.2.2需求分析阶段的目标 ................................................. 7
2.2.3 需求分析阶段的任务 ................................................ 7
2.2.3.1处理对象 ....................................................... 7
2.2.3.2 处理功能及要求 .......................................... 7
3 系统设计 ................................................................................................. 8
3.1 系统设计思想 .......................................................................... 8
3.2 系统开发环境 ............................................................................. 8
3.2.1 系统开发程序(源码见附录1) ................................... 9
3.3系统功能设计 ........................................................................... 9
3.3.1 系统功能模块图 .............................................................. 9
4.数据库设计 ............................................................................................ 12
4.1建立数据库(数据表,视图) ............................................. 12
4.1.1建立数据库 ..................................................................... 13
4.1.2 建立数据表 .................................................................... 13
4.2数据入库..................................................................................... 14
5.内聚 ........................................................................................................ 15
5.1内聚性 ......................................................................................... 15
5.2偶然内聚..................................................................................... 15
5.3逻辑内聚..................................................................................... 15
5.4时间内聚..................................................................................... 15
5.5过程内聚..................................................................................... 16
5.6通信内聚..................................................................................... 16
5.7顺序内聚..................................................................................... 16
5.8功能内聚..................................................................................... 16
6.系统调试与程序功能测试 ................................................................ 16
结 论 ....................................................................................................... 17
附录1 源码 .............................................................................................. 19
1.引言
1.1研究背景与现状
随着人民群众生活水平的提高,餐饮业的功能向社会交往。休闲享受等方面不断拓展,节日家宴、婚庆消费、日常快餐等大众消费成为餐饮业的消费主流,餐饮行业的个体工商户不断的注册成立,数量不断壮大。但是目前阶段,餐饮业个体工商户由于市场准入门槛较低,技术含量不高,经营规模相对较小,产权的私有化和家庭化相融合,会计核算不健全或者根本没有会计核算。现行的手工管理方式,整体科技含量低。随着餐饮业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升
1.2研究目的及意义
本文通过以点餐系统为例,包涵用户的基本要求进行需求分析后,将系统按照不用的用户类型划分为服务员模块、管理员模块、财务管理模块。按照数据库设计流程用业务流程图、数据流程图,进行系统模型设计,系统架构设计,登录模块设计,台桌模块设计,数据同步模块设计,建立一个能满足用户对个体餐饮方便实用的个体餐饮管理系统。
2.系统分析
2.1可行性研究
2.1.1可行性研究的方法
可行性研究的方法如下:
(1) 个体餐饮现状调查
(2) 市场相关管理软件的试用与同类软件产品的调查
2.1.2经济可行性
进一步实现自动化管理,提高整体效率。
1)机件投资
硬件设备:PC机
软件:Windows XP以上系统环境, CentOS 4以上系统环境
2)其它一次性支出
软件设计和开发费用
(3)经常性支出
软件数据库维护费用,需求升级的费用。
2.1.3技术可行性
本个体餐饮系统采用常规的数据库系统管理方法,根据信息管理的各项特点,使程序对数据的查询、插入、删除进行了相应优化设计。 数据流程和处理流程如图所示:
2.2需求分析
2.2.1 需求概述
需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,并影响
到设计结果是否合理和使用。
2.2.2需求分析阶段的目标
1.了解个体餐饮工作模式;
2.了解个体餐饮个用户需求;
3.优化需求方案;
2.2.3 需求分析阶段的任务
2.2.3.1处理对象
系统的处理对象涉及以下几个方面的信息:
系统用户状态信息(AdminState):用户编号,用户活动。
菜品基本信息(FoodInfo):菜品编号,菜品价格。
消费项目基本信息(Atariff):消费项目编号,消费项目名称,消费项目价格。
台桌状态信息(TableState):台桌编号,台桌活动。
消费信息(Consumelist):台桌编号,消费项目编号,消费项目数量,消费金额。
2.2.3.2 处理功能及要求
1.能够存储一定数量的菜品,并方便有效的进行相应的菜品数据操作和管理,这主要包括:
1)菜品信息的录入,删除和修改。
2)菜品信息的编号查询。
2.能够对顾客的台桌信息,点餐信息,消费信息进行相应的操作,
这主要包括:
1)顾客消费的登记,删除及修改。
2)顾客消费信息的汇总。
3.能够提供一定的安全机制,提供数据信息授权访问,修改和删除,防止随意查询,修改及删除。
4.对查询,统计的结果能够列表显示。
3 系统设计
3.1 系统设计思想
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。
本系统开发设计思想有一下几点:
1.尽量采用第配置硬件环境,充分利用个体现有资源,提高系统开发水平和应用效果的目的。
2.系统应符合个体餐饮管理的需求,满足日常工作的需要,并且达到操作过程中的直观、方便、实用、安全等要求。
3.采用系统模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未开发的模块的开发和维护。
4.系统应具备数据库维护的功能,及时根据用户进行数据的添加、删除、修改、备份等操作。
3.2 系统开发环境
发采用低端硬件环境,支持Windows XP及以上工作环境。软件
采用C/C++的工作开发环境,兼容性强,速度快,稳定安全。
3.2.1 系统开发程序(源码见附录1)
3.3系统功能设计
3.3.1 系统功能模块图
本系统的功能主要包括如图几个方面:
系统架构图:
模块汇总(登录模块设计,台桌模块设计,数据同步模块):
登录模块:
台桌模块:
数据同步
:
4.数据库设计
4.1建立数据库(数据表,视图)
4.1.1建立数据库
数据库的建立
Create database Fabcind; 4.1.2 建立数据表
(1)系统用户信息表的建立: create table admin (
Ano char(20) not null, Aname char(20)not null, Apwd char(20)not null, Aid char(15) unique not null )
表1 系统用户信息
列名 Ano Aname Apwd Aid
数据类型 char(20) char(20) char(20) char(105)
可否为空 not null not null not null not null
说明 管理编号 管理类型 管理密码 管理ID
(2)菜品信息表的建立: create table FoodInfo
(
Fodno char(20),
Fodname char(20)not null, Fodprice float not null,
check (Fodprice >0.0) )
表2菜品信息
列名 Fodno Fodname Fodprice
数据类型 char(20) char(20) float
可否为空 not null not null not null
说明 菜品编号 菜品名称 菜品价格
(3)台桌信息表的建立: create tableTabInfo (
Tabno char(20), TabMoney float not null, check (TabMoney > 0.0) )
表3台桌信息
列名 Tabno FodMoney
数据类型 char(20) float
可否为空 not null not null
说明 台桌编号 消费价格
4.2数据入库
系统包括系统用户信息表、菜品信息表、台桌信息表,共有3张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2000数据
导入/导出向导功能,直接将数据导入到相应的基本表中。 5.内聚 5.1内聚性
是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。
经实践证明,保证模块的高内聚性比低耦合性更为重要,在软件设计时应将更多的注意力集中在提高模块的内聚性上。模块的内聚性主要可划分为如下几种不同的类型。 5.2偶然内聚
若一个模块由多个完成不同任务的语句段组成,各语句段之间的联系十分松散或根本没有任何联系,则称此模块的内聚为偶然内聚。 5.3逻辑内聚
这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。 5.4时间内聚
若一个模块包含了需要在同一时间段中执行的多个任务,则称该模块的内聚为时间内聚。例如,将多个变量的初始化放在同一个模块中实现,或将需要同时使用的多个库文件的打开操作放在同一个模块中,都会产生时间内聚的模块。
5.5过程内聚
若一个模块中的各个部分相关,并且必须按特定的次序执行,则称该模块的内聚为过程内聚。在结构化程序中,通常采用程序流程图作为设计软件和确定模块划分的工具,因此,这样得到的模块往往具有过程内聚的特性。 5.6通信内聚
若一个模块中的各个部分使用同一个输入数据或产生同一个输出数据,则称该模块的内聚为通信内聚。 5.7顺序内聚
若一个模块中的各个部分都与同一个功能密切相关,并且必须按照先后顺序执行(通常前一个部分的输出数据就是后一个部分的输入数据),则称该模块的内聚为顺序内聚。 5.8功能内聚
若一个模块中各个组成部分构成一个整体并共同完成一个单一的功能,则称该模块的内聚为功能内聚。 6.系统调试与程序功能测试
对该个体餐饮管理系统进行测试,验证每个功能是否符合要求,具体的测试如下:
1.测试系统间能否正常跳转。
2 .检验数据在存储过程中是否正确存储,数据是否能够准确入表。 3.测试系统是否能够按预期目标稳定运行。
结 论
本文从餐饮管理系统发展现状谈起,根据餐饮系统的流程,分析了系统的需求,通过总体设计、详细设计、数据库设计和编码实现几个阶段,完成了餐饮系统从用户登录到开台点菜,到结账收银,到统计一条线的信息化管理。规范了餐饮业的库存管理,扩展性的增加了内部管理等功能。系统将餐饮业中点菜、退钱、预定、结账等一连串的业务用计算机来管理,解决餐饮系统的关键技术,给出了餐饮业务的解决方案,实现了现代化的餐饮管理机制。
参考文献
[1] 赵赤龙,实用软件工程[M],北京:电子工业出版社,2011.
[2] 李代平,软件工程(第三版)[M],北京:清华大学出版社,2011. [3] 陈明,软件工程实用教程[M],北京:清华大学出版社,2012. [4] 萨师煊 王珊,数据库系统概论(第四版),北京:高教出版社,2006 [5] 王玉雯,《中小餐饮企业智能服务系统设计与实现》,电子科技大学,2013
附录1 源码
*(部分(*.h)代码 不作展示。)*
1. adminui.cpp
#include #include #include #include"menuui.h" #include using namespace std;
int choosemain;//主函数choose int choosemenu;//菜单界面choose int cm_num;//菜目编号 string cm_name;//菜单名字 int cm_price;//菜单价格
//bool cm_zt=false;//菜单状态 //bool cm_sure=false;//确定保存? char cm_zt;//菜单状态 char cm_sure;//确定保存? char cm_del;//确定删除? int cz_num=000;//定义餐桌号 string uname;//定义人员管理
class systemmain{ public:
systemmain() {
cout
cout>choosemain;
/*----------------------------------------*/ switch(choosemain) {
case 1:
system("cls"); Sleep(500); //添加 menuui(); break; case 2:
Sleep(700); cout
cout
cout "
Sleep(700); cout
cout
cout "
bool quit = true; break; } } };
//在menuui.h中定义使用 menuui::menuui(){
cout
cout 增加菜目" 删除菜目" 修改菜目" 查询菜目" 所有菜目" 返 回"
cout>choosemenu;
/*----------------------------------------*/ switch(choosemenu)
{
case 1:
Sleep(200);
cout>cm_num;
cout>cm_name;
cout>cm_price;
cout>cm_zt;
while(cm_zt == 'n' || cm_zt == 'N') continue;
cout>cm_sure;
while(cm_sure == 'n' || cm_sure == 'N') continue; menuui(); break; case 2:
cout"; cin>>cm_num;
cout
cout
cout>cm_del; menuui(); break; case 3:
cout
cout"; cin>>cm_num;
cout
cout
cout
cout
cout
"
break; case 6:
Sleep(500); system("cls"); systemmain(); default:
cout
/*void main() {
systemmain sys; }*/
2. login.cpp
#include #include #include #include"main.cpp" #include"adminui.cpp" #include"adminmenu.cpp" #include"serve.cpp" using namespace std;
int ts=0;//定义 输入错误时提示次数
class login{ protected:
string uname; string passwd; public:
loginok();
string Getuname(); string Getpasswd(); };
login::loginok(){
cout
cout "; cin>>uname;
cout "; cin>>passwd; };
string login::Getuname() {
return uname; }
string login::Getpasswd() {
return passwd; }
class matching:public login{ public:
matching(string uname,string passwd) {
if( uname == "123" && passwd == "123" ) {
cout
cout
else if( uname == "admin" && passwd == "admin" ) {
cout
cout
else if( uname == "111" && passwd == "111" ) {
cout
cout
cout
//cout
system("cls"); Sleep(500);
cout
cout
new(this)matching(log.Getuname(),log.Getpasswd());//在默认构造函数内部调用带参构造函数的问题 }
if(ts>3) {
system("cls"); Sleep(600);
cout
cout
int main( int argc, char *argv[] ) {
initialize(); Sleep(1000); system("cls"); login log; log.loginok();
matching(log.Getuname(),log.Getpasswd()); return 0; } 3. serve.cpp
#include #include #include using namespace std;
class serve{ private:
int chooseserve;
int zt_num;//定义 桌台号; int ls_num;//定义 流水号; int menu_num;//定义 菜品号; int ok_num;//定义 点餐份数; string dd_ok;//定义 确定点餐; string dd_go;//定义 继续点餐; string final_ok;//定义 确定结账; string zt_choose;//开桌 选择;
public: serve() {
cout
cout>chooseserve; bool quit = false; switch(chooseserve) {
case 1:
cout
cout ">zt_num;
cout>zt_choose;
if( zt_choose == "Y" || zt_choose == "y" ) {
Sleep(1000);
cout
break; case 2:
cout
cout
cout"; cin>>ls_num; Sleep(500);
cout
cout";
是否买单 活动"
cin>>menu_num;
cout"; cin>>ok_num;
cout"; cin>>dd_ok;
if( dd_ok == "Y" || dd_ok == "y" ) {
cout"; cin>>dd_go;
if( dd_go == "Y" || dd_go == "y" ) {
Sleep(600); system("cls"); serve(); } }
break; case 3:
cout
Sleep(600);
cout
cout"; cin>>ls_num;
cout
//cout
Sleep(600);
cout
cout>ls_num;
cout"; cin>>final_ok; Sleep(900);
cout
serve(); break; case 6:
bool quit = true; break; } // // } };
/*int main( int argc,char *argv[] ) {
serve sev; return 0; }*/