C#餐饮管理系统详细设计含所有窗体代码.docx

上传人:b****8 文档编号:9490297 上传时间:2023-02-04 格式:DOCX 页数:37 大小:27.84KB
下载 相关 举报
C#餐饮管理系统详细设计含所有窗体代码.docx_第1页
第1页 / 共37页
C#餐饮管理系统详细设计含所有窗体代码.docx_第2页
第2页 / 共37页
C#餐饮管理系统详细设计含所有窗体代码.docx_第3页
第3页 / 共37页
C#餐饮管理系统详细设计含所有窗体代码.docx_第4页
第4页 / 共37页
C#餐饮管理系统详细设计含所有窗体代码.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C#餐饮管理系统详细设计含所有窗体代码.docx

《C#餐饮管理系统详细设计含所有窗体代码.docx》由会员分享,可在线阅读,更多相关《C#餐饮管理系统详细设计含所有窗体代码.docx(37页珍藏版)》请在冰豆网上搜索。

C#餐饮管理系统详细设计含所有窗体代码.docx

C#餐饮管理系统详细设计含所有窗体代码

 

餐饮管理系统

 

1.1开发背景

 

近几年来,计算机网络、分布技术日趋成熟,随着科技的发展,餐饮业的竞

争也越来越激烈。

想在这样竞争激烈的环境下生存,就必须运用科学的管理思想

与先进的管理方法,使点餐与管理一体化。

这样不仅提高了工作效率,也避免了

以前手工作业的麻烦,从而使管理者能够准确、有效地管理餐饮。

因此,餐饮业

的管理者更希望从科学的管理中取得竞争的优势,在竞争激烈的商业市场中取胜。

 

1.2系统分析

1.2.1需求分析

通过与XXX餐饮公司的沟通和需求分析,要求系统具体以下功能:

系统操作简单,界面友好

规范、完善的基础信息设置;

支持多人操作,要求有权限分配功能;

为了方便用户,要求系同支持模糊查询;

实现对消费账目自动结算。

1.2.2可行性分析

1.引言

(1)编写目的

以文件的形式给企业的决策层提供项目实施的参考依据,其中包括项目存在

的风险、项目需要的投资和能够收获的最大效益。

(2)背景

XXX餐饮公司是一家以餐饮经营为主的私营企业。

为了完善管理制度、增强

企业的竞争力、实现信息化管理,公司决定开发餐饮管理系统。

2.可行性研究的前提

(1)要求

餐饮管理系统必须提供桌台信息、菜品信息和人事档案信息的基础设置;强

大的查询功能和消费管理功能;可以分不同权限、不同用户对该系统进行操作。

另外,该系统还必须保证数据的安全性、完整性和准确性。

 

(2)目标

餐饮管理系统的目标是实现企业的信息化管理,节约人力、物力、财力等资

源,提高餐饮行业的服务效率并提升企业市场竞争力。

(3)条件、假定和限制

为实现企业的信息化管理,必须对才做人员进行培训,而且将原有的菜品、

桌台、人事档案等信息转换为信息化数据,需要操作员花费大量时间和精力来完成,为不影响企业的正常运行,餐饮管理系统必须在两个月的时间内交付用户使用。

系统分析人员需要两个内到位,用户需要4天时间确认需求分析文档。

去除其中可能出现的问题,例如用户可能临时有事,占用5天时间确认需求分析。

那么程序开发人员需要在一个月零19天的时间内进行系统设计、程序编码、系统测试、程序调试和程序的打包工作。

其间,还包括员工每周的休息时间。

(4)评价尺度

根据用户的要求,项目主要以桌台信息、菜品信息和查询统计功能为主,对于认识档案和消费信息应该及时准确地保存,并提供相应的查询和统计。

3.投资及效益分析

(1)支出

根据系统的规模及项目的开发周期(两个月),公司决定投入7个人。

为此,

公司将直接支付10万元的工资及各种福利待遇。

在项目安装及调试阶段,用户

培训、员工出差等费用支出需要2万元。

在项目维护阶段预计需要投入3万元的

资金。

累计项目投入需要15万元资金。

(2)收益

用户提供项目资金35万元。

对于项目运行后进行的改动,采取协商的原则

根据改动规模额外提供资金。

因此从投资与收益的效益比上看,公司可以获得

20万元的利润。

项目完成后,会给公司提供资源储备,包括技术、经验的累积,其后在开发

类似的项目时,可以极大地缩短项目开发周期。

4.结论

根据上面的分析,在技术上不会存在问题,因此项目延期的可能性很小。

 

效益上公司投入7个人、两个月的时间获利20万元,效益比较可观。

在公司今

后发展上可以储备项目开发的经验和资源。

因此认为该项目可以开发。

 

1.3系统设计

1.3.1系统目标

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

本系

统应达到以下目标:

系统采用人机交互的方式,界面美观有好,信息查询灵活、方便,数据存储

安全可考;

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

对用户数的数据进行严格的数据检验,尽可能地避免人为错误;

实现对消费账目自动结算;

实现对消费的历史记录进行查询、支持模糊查询;

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

1.3.2系统功能结构

餐饮管理系统功能结构如图1_1所示。

 

餐饮系统管理

 

基础信息辅助工具系统维护系统设置

 

 

图1_1系统功能结构图

 

帮助退出

 

退

1.3.3业务逻辑编码规则

 

遵守程序编码规则所开发的程序,代码清晰、整洁、方便阅读,并可以提高

程序的可读性,真正做到“见名知意”。

本节哦哪个数据库设计和程序编码两个

方面介绍程序开发中的编码规则。

1.数据库对象命名规则

(1)数据库命名规则

数据库命名以字母db开头(小写),后面加数据库相关英文单词或缩

写。

下面将举例说明,如表

1_1所示。

1_1

数据库命名

数据库名称

描述

db_MrCy

餐饮管理系统数据库

 

(2)数据表命名规则

数据表命名以字母tb开头(小写),后面加数据库相关英文单词或缩

写和数据表名,多个单词间用“_”分隔。

下面将举例说明,如表1_2所

示。

1_2

数据表命名

数据表名称

描述

tb_food

tb_foodtype

点菜信息表

菜品类别信息表

 

(3)字段命名规则

字段一律采用英文单词或词组(可利用翻译软件)命名,如找不到专

业的英文单词或词组,可以用相同意义的英文单词或词组代替。

下面将举

例说明,表1_3为桌台信息表中的部分字段。

1_3

字段命名

数据表名称

描述

RoomName

RoomJC

RoomZT

桌台名称

桌台位置

桌台状态

 

2.业务编码规则

(1)桌台编号

桌台的ID编号是餐饮管理系统中桌台的唯一标识,不同的桌台可以

通过该编号来区分。

该编号是个字增序号,从数字1开始。

例如1、2、3。

 

(2)食品类别编号

食品类别编号用于区分食品的不同类别,不同的食品种类可以通过该

编号来区分。

该编号是个字增序号,从数字1开始。

例如1、2、3。

(3)员工编号

员工编号用于区分各个员工的信息,不同的员工可以通过该编号来区

分(即使员工名称相同)。

该编号是个字增序号,从数字1开始。

例如1、

2、3。

 

1.3.4系统预览

 

餐饮管理系统由多个窗体组成,下面仅列出几个典型窗体,

主窗体模块如图1_2所示,主要功能是连接系统功能菜单、显示所有桌台和现实系统当前状态。

 

图1_2主窗体模块

点菜模块如图1_3所示,主要功能是为顾客点菜。

 

图1_3点/加菜模块

 

开台模块如图1_4所示,主要功能是实现对指定的桌台进行开台操作。

 

图1_4开台模块运行结果

结账模块如图1_5所示,主要功能是对指定的桌台进行结账操作,同时,清

空结账桌台的所有消费信息。

 

图1_5结账模块运行结果

1.3.5业务流程图

餐饮管理系统的业务流程图如图1_6所示。

 

登录

 

是否登录

系统主窗体

系统维护

基础信息

是否是管理员

系统设置

 

辅助工具退出

 

 

帮助

 

图1_6餐饮管理系统的业务流程图

 

1.4数据库设计

1.4.1数据库概要说明

在本系统中,采用的是SQLServer2008数据库,用来存储商品信息、桌台信

息、员工信息、操作员信息等。

这里将数据库命名为db_MrCy,其中包含了6

张数据表,用于存储不同的信息,如图1_7所示。

 

商品信息表

商品类别信息表

顾客消费信息表

桌台信息表

用户信息表

职员信息表

 

图1_7数据库结构

1.4.2数据库概念设计

通过对数据库进行的需求分析、业务流程设计及系统功能结构的确定,规

划出系统中使用的数据库实体对象及实体E-R图。

由于商品的种类很多,因此需要对商品进行分类,这样就可以对商品分门别

类地进行存储,在查询时可以根据商品类别进行查询,商品信息实体E-R图如图

1_8所示。

在数据库中建立一个商品类型信息表,用于存储商品的所有类别信息,

商品类别信息实体E-R图如图1_9所示。

 

商品信息表

(tb_Food)

 

商品价格

商品系统编号

 

商品名称

商品类别编号

 

商品代号

 

图1_8商品信息实体E-R图

 

商品类别信息表

(tb_FoodType)

 

商品类别编号商品类别名称

 

图1-9商品类别信息实体E-R图

 

当顾客进行消费时,顾客会根据自己的需求消费不同的商品,系统将顾客消

费的所有信息存储到数据表中,以便顾客结账时查询,在数据库中建立一个顾客

消费信息表用于存储顾客的消费记录。

顾客消费信息实体E-R图图如1_10所示。

 

消费桌台名称备注信息

 

开单人

消费时间

 

顾客消费信息表

(tb_GuestFood)

 

系统编号

商品价格

 

商品代码

消费商品数量

 

商品名称

 

1_10顾客消费信息实体E-R图

 

餐厅中会有多个桌台供顾客选择,每个桌台会有不同的信息。

例如,大厅01

号桌被顾客使用,顾客人数为5人等,方便操作员对桌台的操作,在数据库中建

立一个桌台信息表用于存储所有桌台的详细信息。

桌台信息实体E-R图如图1_11

所示。

 

开台时间顾客名称

 

桌台其他信

顾客人数

 

桌台备注

开单人

 

桌台信息表

(tb_Room)

 

桌台类型

系统编号

 

开桌台状态

桌台名称

 

桌台简称桌台位置

 

桌台包间费

 

图6_11桌台信息实体E-R图

 

为了对系统进行不同的管理,需要为系统建立管理用户。

这些用户通过登录

模块登录系统,登录成功之后会根据不同的权限对不同的功能模块进行管理,在

数据库中建立一个用户信息表,用于存储登录用户信息。

用户信息实体E-R图如

图1_12所示。

 

用户信息表

(tb_User)

 

系统编号

 

登录帐号

 

帐号权限

 

登录密码

 

图1_12用户信息实体E-R图

在餐饮行业中,餐厅服务员起着及其重要的作用,但是由于服务人员数众多,

如果不进行相应的信息记录,可能管理起来会非常困难。

因此,需要对服务人员

的详细信息进行记录。

在数据库中建立一个志愿信息表用于存储所有服务人员的

信息。

支援信息实体E-R图图如1_13所示。

 

职员年龄

 

职员电话

职员性别

 

职员信息表

(tb_Waiter)

 

职员编号

系统编号

 

职员姓名

身份证号号码

 

图1_13职员信息实体E-R图

 

1.4.3数据库逻辑设计

根据设计好的E-R图在数据库中创建各表,系统数据库中各表的结构如下。

1.tb_Food(商品信息表)

tb_Food表用于保存所有商品信息,该表的结构如表

1_4所示。

表1_4商品信息表

字段名称

数据类型

字段大小

说明

ID

int

1

系统编号

foodty

char

10

类别编号

foodnum

char

10

商品代号

foodname

varchar

50

商品名称

foodprice

decimal

9

商品价格

 

2.

 

tb_FoodType(商品类别信息表)

tb_FoodType表用于保存商品类别信息,该表的结构如表

1_5所示。

 

字段名称

表1_5

数据类型

商品类别信息表

字段大小

 

说明

ID

int

4

系统编号

foodtype

varchar

50

商品类别名称

 

3.tb_GuestFood(顾客消费信息表)

tb_GuestFood表用于保存顾客的消费信息,该表结构如表

1_6所示。

表1_6

顾客消费信息表

字段名称

数据类型

字段大小

说明

ID

int

4

系统编号

foodnum

char

10

商品代号

foodname

varchar

50

商品名称

foodsum

char

10

消费数量

foodallprice

decimal

9

商品价格

waitername

varchar

50

操作员姓名

beizhu

varchar

50

备注

zhuotai

char

10

消费桌台

datatime

varchar

50

消费时间

 

4.

 

tb_Room(桌台信息表)

tb_Room表用于保存所有桌台信息,该表结构如表

1_7所示。

字段名称

数据类型

字段大小

说明

ID

RoomName

int

char

4

10

系统编号

桌台名称

 

RoomJC

char

10

桌台简称

RommBJF

decimal

9

桌台包间费

RoomWZ

char

10

桌台位置

RoomSZT

char

10

桌台状态

RoomType

char

10

桌台类型

RoomBZ

varchar

50

桌台备注

RoomQT

varchar

50

桌台其他信息

GuestName

varchar

50

顾客姓名

zhangdanDate

varchar

50

开台时间

Num

int

4

顾客人数

WaiterName

varchar

50

操作员姓名

 

5.tb_User(用户信息表)

tb_User表用于保存所有系统用户信息,该表结构如表

1_8所示。

表1_8用户信息表

字段名称

数据类型

字段大小

说明

ID

int

4

系统编号

UseName

varchar

50

用户登录名

UserPwd

varchar

50

用户登录密码

power

char

10

用户权限

 

6.tb_Writer(职员信息表)

tb_Writer表用于保存所有职员信息,该表结构如表

1_9所示。

表1_9职员信息表

字段名称

数据类型

字段大小

说明

ID

int

4

系统编号

WaiterName

varchar

50

职员姓名

CardNum

varchar

50

身份证号码

WaiterNum

char

10

职员编号

Sex

char

10

性别

Age

char

10

年龄

Tel

varchar

50

电话

 

1.5公共类设计

为了节省系统资源,实现代码重用,可以在系统中设计一些公共类。

本系统

中创建了一个DBConn公共类,该类封装了用于连接数据库的方法。

由于此类对

数据库进行操作,所以需要引入一个命名空间,其主要代码如下:

 

自定义方法CyCon用于连接数据库,此方法返回一个SqlConnection对象,

主要代码如下:

 

1.6系统登录模块设计

1.6.1系统登录模块概述

为了使系统的安全性得到保障,大多数系统都开发登录模块。

只有通过登录

模块,才能对登录用户进行验证,只有系统的合法用户才可以进入系统的主界面。

登录模块运行结果如图1_14所示。

 

图1_14登录模块运行结果

 

1.6.2系统登录模块技术分析

运行本系统的登录模块,用户只需要输入用户名和密码,单击“登录”按钮

进行验证。

登录模块以登录的用户和密码作为搜索条件,在数据库中进行查询。

 

使用SqlDataReader对象的HasRows属性判断登录用户名和密码是否正确。

下面

介绍SqlDataReader对象的HasRows属性。

HasRows属性用于获取一个bool型的值,该值指示SqlDataReader是否包含

一行或多行,语法如下:

publicoverrideboolHasRows{get;}

属性值:

如果SqlDataReader包含一行或多行,则为true;否则为false。

例如,验证登录用户名和密码是否正确,可以通过以下代码实现:

 

1.6.3系统登录模块实现过程

该模块需要使用的数据表示:

tb_User

系统登录模块的具体实现步骤如下:

(1)

新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统

的登录功能,该窗体用的主要主要空间表如表

1-10所示。

表1_10

登录窗体用到的主要控件

控件类型

控件ID

主要属性设置

用途

txtName

输入登录用户名

txtPwd

PasswordChar属性设置为*

输入登录用户密码

btnSubmit

Text属性设置为“登录”

登录

btnCancel

Text属性设置为“取消”

取消

 

(2)由于餐饮系统使用MicrosoftSQLServer2012作为后台数据库,因

为先要引用命名空间,以便在程序操作数据库,关键代码如下:

 

单击“登录”按钮之后,登录模块首先判断是否输入了用户名和

密码,如果没有输入用户名和密码将弹出提示框,提示用户输入

登录系统的用户名和密码;如果输入了用户名和密码,系统将判

断输入的用户名和密码是否正确,关键代码如下:

 

当用户输入用户名和密码之后,还可以按Enter键登录系统,实现的原理是:

在输入密码的文本框的KeyPress事件下,判断是否按了Enter键,如果按了Enter键就会激发“登录”按钮的Click事件,关键代码如下:

 

单击“取消”按钮,退出系统登录,关键代码如下:

 

1.7开台模块设计

1.7.1开台模块概述

 

当顾客要进行消费时,首先要看一下是否还有可用的桌台,如果还有空闲的桌台,那么就要为顾客开台,只有在开台之后,才能为顾客点菜、查询和结账。

所以开台模块在整个系统中是非常重要的。

开台模块用于对指定的桌台进行开台操作,此功能是通过“开台”窗体实现的,如图1_15所示。

 

图1_15开台单窗体

1.7.2开台模块技术分析

在某个桌台上选择其中右键菜单中的“开台”命令,将根据该桌台的名称弹

出相应的开台单窗体,在开台单窗体中用户可以对桌台编号、帐单日期、顾客名

称、用餐人数、服务员和备注进行录入或更改。

数据录入或修改完毕后,单击“保

存”按钮完成开台单的操作。

在开发此模块时,主要用到了数据库的更新技术,

例如,将姓名为小吕的年龄修改为28,可以使用下面的代码实现:

Updatetb_lssetage=28wherename=’小吕’

1.7.3开台模块实现过程

本模块使用的数据表示:

tb_Room、tb_Waiter

(1)新建一个Windows窗体,命名为frmOpen.cs,主要用于实现对指定的桌台进行开台操作的功能,该窗体用到的主要控件如表1_12所示。

表1_12开台单窗体中用到的主要控件

控件类型

控件ID

主要属性设置

txtName

Text属性设置为Guest

输入顾客姓名

txtNum

输入用餐人数

txtBZ

输入开台单备注

cbNum

选择开台的桌台号

cbWaiter

选择开单的服务员

 

groupBox1

控制布局

dateTimePicker1

选择日期

btnSave

Text属性设置为“保存”

保存

btnExit

Text属性设置为“退出”

退出

 

(2)首先建立两个公共变量一边程序汇总调用,关键代码如下:

 

在窗体加载时,将数据库中所有的桌台信息和职员信息检索出来显示在

ComboBox控件中,关键代码如下:

 

(3)在“用餐人数”文本框中输入用餐人数,此数据必须保证为大于0的数字,关键代码如下:

 

(4)当数据输入完毕之后,单击“保存”按钮即可对指定的桌台进行开台操作,关键代码如下:

 

1.8点/加菜模块设计

1.8.1点/加菜模块概述

为顾客选好桌台,并且开台之后,会根据顾客的需要点菜或购买茶水研究

之类的消费品,在点/加菜模块中会显示餐厅特有的一些菜系,用户可以对不同

的菜系进行选择。

点/加菜模块运行结果如图1_16所示。

 

图1_16点/加菜模块运行结果

 

1.8.2点/加菜模块技术分析

系统点/加菜模块主要利用TreeView控件显示所有的菜系,利用DataGridView控件显示顾客消费的所有信息,当单击某个菜系时,右侧将出现此菜系的所有详细信息,选择菜系后单击“保存”按钮完成对指定桌台的点菜操作。

 

1.8.3点/加菜模块实现过程

本模块使用的数据表:

tb_Food、tb_Waiter、tb_Room、tb_GuestFood点/加菜模块的具体实现步骤如下:

(1)新建一个Windows窗体,命名为frmDC.cs,主要用于实现系统的点菜

功能,该窗体用到的主要控件如表1_14所示。

表1_14点/加菜窗体中用到的主要控件

控件类型控件ID

tvFood

 

txtNum

txtName

txtPrice

txtPNum

txtAllPrice

txtRemark

cbWaiter

 

btnSave

btnDelete

btnExit

dgvFoods

主要属性设置用途

无显示餐厅所有菜系

 

Enabled属性设置为false显示某个菜系的编号

Enabled属性设

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

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1