餐饮管理系统Word下载.docx
- 文档编号:22230916
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:78
- 大小:2.47MB
餐饮管理系统Word下载.docx
《餐饮管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统Word下载.docx(78页珍藏版)》请在冰豆网上搜索。
开台模块运行效果如图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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 餐饮 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)