C#餐饮管理系统详细设计含所有窗体代码Word文档下载推荐.docx

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

C#餐饮管理系统详细设计含所有窗体代码Word文档下载推荐.docx

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

C#餐饮管理系统详细设计含所有窗体代码Word文档下载推荐.docx

为此,

公司将直接支付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属性设

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

当前位置:首页 > 工程科技 > 交通运输

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

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