软件工程导论

黑龙江外国语学院

(学期)

专 业: 班 级: 学生姓名: 课程名称:

任课教师:

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; }*/


相关文章

  • 软件工程导论课程设计教学大纲
  • <软件工程导论课程设计>教学大纲 (Project of Introduction to Software Engineering) (1周) 一.前言 <软件工程导论课程设计>是在学习完专业核心课<软件工程导 ...查看


  • 电子信息工程专业导论学习心得
  • 专业导论学习心得 班级:电信1301 姓名: 学号: 在本学期学习的电子信息科学技术中,我对自己电子信息工程这个专业由之前的略知到现在有了更深.更全面的认知,了解了我们专业在社会中起到的一个至关重要的作用,它推动着现代科技事业.电子事业的发 ...查看


  • 电气工程及其自动化 专业导论学习体会
  • 电气工程导论的学习体会 陈润淮 1007300046 电气102班 老师说专业导论有点像科普知识,从某种程度上讲,确实是专业内的科普知识. 导论,顾名思义是讲述有关专业的发展和应用,但是因为接触的专业课程还不是很多,所以对怎么样去学好这个专 ...查看


  • 微电子科学与工程专业导论
  • <微电子科学与工程专业导论> 课程教学大纲 一.课程基本信息 课程编号:201408104 课程中文名称:微电子科学与工程专业导论 课程英文名称:Introduction on Microelectronic science a ...查看


  • 制药工程导论教案-绪论
  • 第一章 药物与制药产业 1. 本章内容 第一节 药物的发现与发展 第二节 制药工业的形成与发展 2. 课时分配 2学时 3. 目标及要求 (1).初步掌握制药工程技术学科的构成.主要作用及基本内容. (2).初步熟悉该专业本科人才培养的基本 ...查看


  • 软件工程导论大作业
  • 要求: (1) 手写: (2) 每道题适当展开叙述,不得是提纲式回答问题: (3) 统一用A4纸书写. 软件工程导论大作业 1. 2. 3. 4. 5. 网上购票系统等网上分布式系统都要采用验证码机制? 叙述图灵机和冯诺依曼机的原理. 计算 ...查看


  • 物流工程导论专业论文
  • 课程名称:物流工程专业导论(1) 课程代码:1013823 物流工程专业导论(1)课程论文 姓名蔡新阳 学号 院系机械工程学院 专业物流工程 提交时间: 2016年 11月21 日 摘要 在为期7周的物流工程导论的学习里,李俚教授, 莫以为 ...查看


  • 人居环境科学导论读书有感
  • <人居环境科学导论>读书有感 仔细阅读了吴先生写的<人居环境科学导论>一书,受益匪浅,书中阐述的人与自然的哲学观对我启发很多,一种理念要高于一种制度和一项伟大的工程,未来改变人居环境的将是人们的观念而并非一种城市布局 ...查看


  • [软件工程导论]课程大作业-题目及要求
  • <软件工程专业导论与职业生涯规划>具体要求 一.大作业题目(注:每个小组完成一个题目) 1.计算机系统软件是什么?具体的系统软件有哪些?它们的特点.作用.地位是什么?就其中的2-3个具体的系统软件进行较为详细的阐述. 2.计算机 ...查看


  • 医疗器械工程导论--研究生考题2014
  • 研究生课程(考试类)试题 2013 /2014 学年第 2 学期 课程名称: 医疗器械工程导论 课程代码: 19000020 开课学院: 医疗器械与食品 任课教师签字:日期:2014年6月 25日 上海理工大学研究生课程试题* 20 /20 ...查看


热门内容