C#餐饮管理系统详细设计含所有窗体代码Word文档下载推荐.docx
《C#餐饮管理系统详细设计含所有窗体代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#餐饮管理系统详细设计含所有窗体代码Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
为此,
公司将直接支付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开始。
(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
foodname
varchar
50
foodprice
decimal
9
2.
tb_FoodType(商品类别信息表)
tb_FoodType表用于保存商品类别信息,该表的结构如表
1_5所示。
表1_5
4
foodtype
商品类别名称
3.tb_GuestFood(顾客消费信息表)
tb_GuestFood表用于保存顾客的消费信息,该表结构如表
1_6所示。
表1_6
foodsum
消费数量
foodallprice
waitername
操作员姓名
beizhu
备注
zhuotai
消费桌台
datatime
4.
tb_Room(桌台信息表)
tb_Room表用于保存所有桌台信息,该表结构如表
1_7所示。
桌台简称
RommBJF
RoomWZ
RoomSZT
RoomType
RoomBZ
RoomQT
桌台其他信息
GuestName
顾客姓名
zhangdanDate
开台时间
Num
WaiterName
5.tb_User(用户信息表)
tb_User表用于保存所有系统用户信息,该表结构如表
表1_8用户信息表
UseName
用户登录名
UserPwd
用户登录密码
power
用户权限
6.tb_Writer(职员信息表)
tb_Writer表用于保存所有职员信息,该表结构如表
1_9所示。
表1_9职员信息表
CardNum
身份证号码
WaiterNum
Sex
性别
Age
年龄
Tel
电话
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开台单窗体中用到的主要控件
用
途
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
txtPrice
txtPNum
txtAllPrice
txtRemark
btnDelete
dgvFoods
主要属性设置用途
无显示餐厅所有菜系
Enabled属性设置为false显示某个菜系的编号
Enabled属性设