餐饮管理系统Word下载.docx

上传人:b****6 文档编号:22230916 上传时间:2023-02-03 格式:DOCX 页数:78 大小:2.47MB
下载 相关 举报
餐饮管理系统Word下载.docx_第1页
第1页 / 共78页
餐饮管理系统Word下载.docx_第2页
第2页 / 共78页
餐饮管理系统Word下载.docx_第3页
第3页 / 共78页
餐饮管理系统Word下载.docx_第4页
第4页 / 共78页
餐饮管理系统Word下载.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

餐饮管理系统Word下载.docx

《餐饮管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统Word下载.docx(78页珍藏版)》请在冰豆网上搜索。

餐饮管理系统Word下载.docx

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

结账模块运行效果如图5所示,主要功能是对指定的桌台进行结账操作,同时,清空结账桌台的所有消费信息。

3.4业务流程图

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

3.5程序运行环境

餐饮管理系统在运行中的具体运行环境如下。

●系统开发平台:

MicrosoftVisualStudio2008。

●系统开发语言:

C#。

●数据库管理系统:

MicrosoftSQLServer2005。

●运行平台:

WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)。

●运行环境:

Microsoft.NETFrameworkSDKv2.0。

●分辨率:

最佳效果1024×

768像素。

3.6数据库设计

在开发餐饮管理系统之前,分析了该系统的数据量。

由于系统管理餐饮方面的数据较多,商品信息、消费信息以及账目清单会占用较大的空间,因此选择MicrosoftSQLServer2000数据库存储这些信息,数据库命名为db_MrCy,在数据库中创建了6个数据表用于存储不同的信息,如图7所示。

说明:

MicrosoftSQLServer2000数据库的创建过程在第5章已经做过介绍,此处不再赘述。

3.7数据库概念设计

餐饮管理系统的数据库主要用于存储餐饮管理系统中的数据,由于餐饮管理系统的数据量很大,所以选择了MicrosoftSQLServer2000数据库,数据库中建立一个商品信息表,用于存储所有的商品信息。

商品信息实体E-R图如图8所示。

由于商品的种类很多,因此需要对商品进行分类,这样就可以对商品分门别类地进行储存,在查询时可以根据商品类别进行查询。

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

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

当顾客进行消费时,顾客会根据自己的需求消费不同的商品,系统将顾客消费的所有信息存储到数据表中,以便顾客结账时查询,在数据库中建立一个顾客消费信息表用于存储顾客的消费记录。

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

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

例如,大厅-01号桌台被顾客使用,顾客人数为5人等,方便操作员对桌台的操作,在数据库中建立一个桌台信息表用于存储所有桌台的详细信息。

桌台信息实体E-R图如图11所示。

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

这些用户通过登录模块登录系统,登录成功之后会根据不同的权限对不同的功能模块进行管理,在数据库中建立一个用户信息表,用于存储登录用户信息。

用户信息实体E-R图如图12所示。

在餐饮行业中,餐厅服务员起着极其重要的作用,但是由于服务人员数目众多,如果不进行相应的信息记录,可能管理起来会非常困难。

因此,需要对服务人员的详细信息进行记录。

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

职员信息实体E-R图如图13所示。

3.8数据库逻辑结构设计

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

tb_food(商品信息表)

tb_food用于保存所有商品信息,该表的结构如表1所示。

表1商品信息表

字段名

数据类型

长度

主键

描述

ID

int

4

系统编号

foodty

char

10

类别编号

foodnum

商品代号

foodname

varchar

50

商品名称

foodprice

decimal

9

商品价格

tb_foodtype(商品类别信息表)

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

表2商品类别信息表

Foodtype

商品类别名称

tb_GuestFood(顾客消费信息表)

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

表3顾客消费信息表

foodsum

消费数量

foodallprice

waitername

操作员姓名

beizhu

备注

zhuotai

消费桌台

datatime

消费时间

tb_Room(桌台信息表)

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

表4桌台信息表

RoomName

桌台名称

RoomJC

桌台简称

RoomBJF

桌台包间费

RoomWZ

桌台位置

RoomZT

桌台状态

RoomType

桌台类型

RoomBZ

桌台备注

RoomQT

桌台其他信息

GuestName

顾客姓名

zhangdanDate

开台时间

Num

顾客人数

WaiterName

tb_User(用户信息表)

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

表5用户信息表

UserName

用户登录名

UserPwd

用户登录密码

power

用户权限

tb_Waiter(职员信息表)

表tb_Waiter用于保存所有职员信息,该表结构如表6所示。

表6职员信息表

职员姓名

CardNum

身份证号码

WaiterNum

职员编号

Sex

性别

Age

年龄

Tel

电话

3.9文件夹组织结构

每个项目都会有相应的文件夹组织结构,如果项目中窗体数量很多,可以将所有的窗体及资源放在不同的文件夹中。

如果项目中窗体不是很多,可以将图片、公共类或者程序资源文件放在相应的文件夹中,而窗体可以直接放在项目根目录下。

餐饮管理系统就是按照后者的文件夹组织结构排列的,如图14所示。

4登录模块设计

4.1登录模块概述

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

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

这也是设计管理系统软件之前必须考虑的问题,整个登录模块的实现过程非常简单,相信读者会很快掌握。

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

4.2登录模块技术分析

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

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

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

HasRows属性

获取一个值,该值指示SqlDataReader是否包含一行或多行。

语法如下:

publicoverrideboolHasRows{get;

}

属性值:

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

否则为false。

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

SqlConnectionconn=BaseClass.DBConn.CyCon();

conn.Open();

SqlCommandcmd=newSqlCommand("

select*fromtb_UserwhereUserName='

"

+txtName.Text+"

'

andUserPwd='

+txtPwd.Text+"

conn);

SqlDataReadersdr=cmd.ExecuteReader();

sdr.Read();

if(sdr.HasRows)

{

MessageBox.Show("

登录成功"

"

警告"

MessageBoxButtons.OK,MessageBoxIcon.Warning);

}

登录模块验证的方法有很多,除了本章登录模块的验证方法外,还可以使用第2章登录模块的验证方法,第2章是通过COUNT聚合函数进行验证的,具体参看第2章登录模块设计中的内容。

4.3登录模块实现过程

本模块使用的数据表:

tb_User

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

(1)新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统的登录功能。

该窗体用到的主要控件如表7所示

表7登录窗体用到的主要控件

控件ID

主要属性设置

用途

txtName

输入登录用户名

txtPwd

PasswordChar属性设置为*

输入登录用户密码

btnSubmit

Text属性设置为“登录”

登录

btnConcel

Text属性设置为“取消”

取消

(2)由于餐饮系统使用MicrosoftSQLServer2000作为后台数据库,因此先要引用命名空间,以便在程序中操作数据库。

关键代码如下:

usingSystem.Data.SqlClient

(3)单击“登录”按钮之后,登录模块首先判断是否输入了用户名和密码,如果没有输入用户名和密码将弹出提示框,提示用户输入登录系统的用户名和密码;

如果输入了用户名和密码,系统将判断输入的用户名和密码是否正确。

例程01代码位置:

光盘\TM\06\MrCy\frmLogin.cs

privatevoidbtnSubmit_Click(objectsender,EventArgse)

if(txtName.Text=="

)//判断用户名是否为空

请输入用户名"

else

if(txtPwd.Text=="

)//判断密码是否为空

{

MessageBox.Show("

请输入密码"

MessageBoxButtons.OK,Messan.Warning);

else

SqlConnectionconn=BaseClass.DBConn.CyCon();

//连接数据库

//打开数据库

SqlCommandcmd=newSqlCommand("

SqlDataReadersdr=cmd.ExecuteReader();

//创建SqlDataReader对象

sdr.Read();

//读取

if(sdr.HasRows)//验证用户名和密码

sdr.Close();

cmd=newSqlCommand("

SqlDataReadersdr1=cmd.ExecuteReader();

sdr1.Read();

stringUserPower=sdr1["

power"

].ToString().Trim();

conn.Close();

//关闭链接

frmMainmain=newfrmMain();

main.power=UserPower;

main.Names=txtName.Text;

main.Times=DateTime.Now.ToShortDateString();

main.Show();

//打开主窗体

this.Hide();

//隐藏当前登录窗体

MessageBox.Show("

用户名或密码错误"

);

//弹出提示信息

}

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

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

例程02代码位置:

privatevoidtxtPwd_KeyPress(objectsender,KeyPressEventArgse)

if(e.KeyChar==13)//判断是否按下Enter键

btnSubmit_Click(sender,e);

//调用“登录”按钮的Click事件

(5)单击“取消”按钮,退出系统登录。

例程03代码位置:

privatevoidbtnConcel_Click(objectsender,EventArgse)

if(MessageBox.Show("

确定退出系统吗?

提示"

MessageBoxButtons.OKCancel,Messan.Asterisk)==DialogResult.OK)

Application.Exit();

//退出系统

5主窗体模块设计

5.1主窗体模块概述

在餐饮系统中主窗体模块是由3部分组成的。

第一部分是位于主窗体模块上端的系统菜单,主要实现链接系统功能菜单。

第二部分是位于主窗体模块中间的桌台显示,主要用于显示餐厅中所有的桌台情况,包括桌台是否已使用、已使用桌台的客人数量等信息,方便了用户对桌台的管理。

第三部分是位于主窗体模块下端的状态栏,主要用于显示系统当前状态信息。

主窗体模块运行结果如图16所示。

双击某个桌台,弹出“桌台基本信息”窗体,用于显示此桌台的详细信息,如图17所示。

在某个桌台上单击鼠标右键,在弹出的快捷菜单中用户可以选择“开台”、“取消开台”、“点/加菜”、“消费查询”和“结账”命令,如图18所示。

5.2主窗体模块技术分析

开发主窗体模块中的桌台显示时,主要是通过ListView控件实现的,系统首先从数据库中检索出每个桌台的状态,然后根据不同的状态通过ListView控件的Items属性中的Add方法向控件中添加项目集合,下面进行详细介绍。

(1)Items属性

功能:

此属性获取包含控件中所有项的集合。

publicListViewItemCollectionItems{get;

ListView.ListViewItemCollection包含ListView控件中所有的项。

例如:

privatevoidbutton9_Click(objectsender,EventArgse)

SqlConnectioncon=newSqlConnection("

server=.;

uid=sa;

pwd=;

database=zhy"

//链接数据库

con.Open();

stringstr="

select*fromstudentwhereid='

+strid+"

;

//建立SQL语句

SqlCommandcom=newSqlCommand(str,con);

//执行SQL语句

SqlDataReaderdr=com.ExecuteReader();

while(dr.Read())

ListViewItemlt=newListViewItem(dr.GetValue(0).ToString());

lt.SubItems.Add(dr.GetValue

(1).ToString());

lt.SubItems.Add(dr.GetValue

(2).ToString());

this.listView1.Items.Add(lt);

//添加项目

dr.Close();

con.Close();

(2)Add方法

将项添加到具有指定文本和图像的集合。

publicvirtualListViewItemAdd(stringtext,intimageIndex)

参数说明:

text:

项的文本。

imageIndex:

要为该项显示的图像的索引。

返回值:

已添加到集合中的ListViewItem。

例如,在本模块中向控件中添加项集合。

lvDesk.Items.Add(sdr["

RoomName"

].ToString(),1);

另外,在桌台显示中使用ContextMenuStrip控件实现右键弹出菜单。

ContextMenuStrip控件提供了与某个控件关联的快捷菜单,如图19所示。

其使用方法如下:

(1)双击工具栏中的ContextMenuStrip控件将其添加到Form窗体中。

(2)为ContextMenuStrip控件添加菜单项。

(3)设置控件或窗体的ContextMenu属性为contextMenuStrip1,运行程序,在窗体或者控件上单击鼠标右键,将出现相应的右键菜单。

5.3主窗体实现过程

tb_Room、tb_Waiter、tb_User

主窗体模块的具体实现步骤如下:

(1)新建一个Windows窗体,命名为frmMain.cs,主要用于实现系统的菜单栏、桌台显示和显示系统状态的功能。

该窗体用到的主要控件如表8所示。

表8主窗体中用到的主要控件

menuStrip1

Items属性中添加7个MenuItem项

实现窗体中的菜单

statusStrip1

Items属性中添加8个StatusLabel项

实现系统的状态栏

imageList1

Images属性中添加两个成员

显示代表桌台状态的图片

contextMenuStrip1

Items属性中添加5个MenuItem项

实现右键菜单

lvDesk

显示所有桌台

(2)首先创建4个公共变量,方便程序调用。

例程04代码位置:

光盘\TM\06\MrCy\frmMain.cs

publicSqlDataReadersdr;

publicstringpower;

publicstringNames;

publicstringT

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

当前位置:首页 > 高等教育 > 医学

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

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