餐饮管理系统数据库课程设计论文.docx
- 文档编号:8398777
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:37
- 大小:752.69KB
餐饮管理系统数据库课程设计论文.docx
《餐饮管理系统数据库课程设计论文.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统数据库课程设计论文.docx(37页珍藏版)》请在冰豆网上搜索。
餐饮管理系统数据库课程设计论文
摘要
随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。
近两年来已呈现出高速发展的态势.但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低.随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。
有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统不视为一条有效的解决途径。
本论文主要针对中小型饭店餐饮管理中的一些问题,将其与计算机信息管理系统结合起来,实现中小型饭店管理信息计算机化、系统化,将中小型饭店管理中的工作流转化成比较科学化、规范化的业务流程,使管理基础数据更加准确化,管理人员摆脱了事务性工作,转而从事管理专业工作,为经营决策提供了快捷和强大的数据支持。
把计算机用于餐饮企业管理,可在很大程度上提高管理者分析和决策的科学性,提高经营管职水平,带来更多的顾客,使企业取得更好的经济效益。
关键词:
计算机信息管理系统,中小型饭店,餐饮管理
第1章系统简介
1。
1课题背景
民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。
努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。
经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。
众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理.传统的手工操作管理存在着许多无法避免的问题,该系统将能大大的降低许多问题,减轻人力与物力。
1。
2系统开发的意义
本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标:
系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠.
实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。
对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误.
实现对消费账目自动结算。
实现对消费的历史记录进行查询。
系统应最大限度地实现易维护性和易操作性。
1.3系统开发及运行环境
系统开发平台:
MicrosoftVisualStudio2008
系统开发语言:
C#
数据库管理系统软件:
SQLServer2005
运行平台:
WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)
运行环境:
Microsoft.NETFrameworkSDKv2.0
分辨率:
最佳效果1024*768像素
第2章需求分析
2。
1餐饮管理系统的可行性分析
2。
1。
1技术水平分析
本软件采用MicrosoftVisualStudio2005为前台开发工具,SQLServer2005数据库作为后台数据库支持.本软件专为中小型餐厅消费管理而设计,本软件可在Windows2000/XP上运行,不用专业人士去配制服务器可以直接安装使用,具有很好的可移植性,有良好的中文界面,操作简便,适合餐饮服务人员使用。
2.1。
2经济效益分析
本软件能在很大程度上解决中小型餐厅的消费管理,方便对顾客的消费进行管理,本系统运行时能在主菜单上看到当前的桌台情况——是否被占用,能很好分配顾客的用餐,顾客点菜时能很好的进行记录,有方便的结账功能,直接计算出找零,本系统还能对桌台信息进行管理,方便以后的增加与减少桌台,同时也能方便的对服务人员的信息进行管理,有系统数据库备份功能,防止系统在死机的情况下丢失大量重要信息。
2.1。
3市场分析
现如今餐饮业发展壮大迅速,拥有一套良好的餐饮管理系统能在很大程度上解决许多问题,方便对服务人员的管理,以及内部的一些信息变化的管理——如菜品的增删,价格的改变、桌台的增删、人员的流动,还能很好的管理顾客的点菜、查询消费记录、结账,这将能改善传统意义上的管理,使管理变得方便并且有效,所以本系统有着很好的市场需求前景.
2。
2餐饮管理系统的需求分析
通过实际了解,要求本系统具有以下功能:
系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠.
实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作.
对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误.
实现对消费账目自动结算。
实现对消费的历史记录进行查询。
实现对餐厅人员流动进行管理以及能够管理餐厅桌台信息.
系统应最大限度地实现易维护性和易操作性.餐饮管理系统的用例图,如下图2.1所示。
图2。
1餐饮管理系统的用例图
第3章总体设计
3.1项目规划
餐饮管理系统主要由用户登录、桌台信息管理、服务员信息管理、修改密码、开台、取消开台、点/加菜、消费查询、数据库管理和退出等模块组成,具体规划如下。
(1)用户登录模块
该模块主要用于实现验证用户是否合法,只有合法用户才能有权登录,只有登录成功情况下才能进入系统功能主界面,并且在登录的同时能验证登录人员的管理权限,根据权限显示其能管理范围。
(2)桌台信息管理模块
该模块主要用于管理桌台的信息,可以设置桌台名称,桌台位置,桌台占用所需价钱.
(3)服务员信息管理模块
该模块主要用于方便对服务人员的信息进行管理。
(4)修改密码模块
该模块主要用于实现对登录人员的密码进行管理,长时间不更换密码是不安全的,增加此模块能增加系统的安全性。
(5)开台模块
该模块主要用于实现对顾客进行开台,已经占用的桌台不能被再次分配,方便分配未占用的桌台给顾客
(6)取消开台模块
该模块主要用于实现对已经开台的桌台进行取消开台。
(7)消费查询模块
该模块主要用于实现客户能够查询自己已消费清单情况,进行核对自己的消费。
(8)结账模块
该模块主要用于实现对客户的消费进行自动汇总,显示消费金额,能进行找零计算.
(9)数据库管理模块
该模块主要用于实现对系统数据库的备份,防止系统在死机的情况下丢失大量重要信息.
3。
2系统业务流程分析
餐饮管理系统的业务流程图如图3。
1所示.
图3.1餐饮管理系统的业务流程图
3.3系统功能结构
系统功能结构图如图3。
2所示。
图3。
2系统功能结构图1
第4章详细设计
4.1数据库设计
本系统采用SQLServer2005作为后台数据库,数据库名称为restaurantManage,其中包含5张数据表。
下面分别介绍:
4.1。
1数据表概要说明
为了对本系统后台数据库中的数据表有一个更清晰的认识,在此设计了一个数据表树形结构图,该结构图包括系统所有数据表,如图4。
1所示。
图4。
1数据表树状结构图
4.1。
2部分数据表E-R图
本里中规化出的实体主要有菜品信息实体、顾客点菜信息实体、桌台信息实体、用户登录信息实体和服务员信息实体。
其中部分实体的E-R图如下所示.
图4。
2用户表实体E-R图
图4。
3菜品信息实体E—R图
图4。
4桌台信息实体E—R图
图4。
5员工信息实体E—R图
图4.6顾客点菜信息实体E-R图
4。
1。
3数据表的结构
(1)food表(菜品信息表)
表food用于保存菜品的基本信息,该表的结构如图4。
7所示。
图4.7菜品信息表
(2)guestfood表(顾客点菜信息表)
表guestfood用于保存顾客点菜的详细信息,该表的结构如图4。
8所示。
图4。
8顾客点菜信息表
(3)room表(桌台信息表)
表room用于保存桌台的一些有关信息,该表的结构如图4。
9所示。
图4。
9桌台信息表
(4)userlogin表(登录人员信息表)
表userlogin用于保存登录用户基本信息,表的结构如图4。
10所示.
图4。
10登录用户信息表
(5)waiter表(餐厅服务人员信息表)
表waiter用于保存餐厅服务人员的一些基本信息,表的结构如图4。
11所示。
图4。
11餐厅服务人员信息表
4。
2系统主要功能模块设计与实现
4。
2.1系统登录模块的设计与实现
系统登录主要用于对进入餐饮管理系统的用户进行安全性检查,以防止非法用户进入该系统.在登录时,只有合法的用户,才可以进入该系统。
系统登录窗体如图4.12所示.
图4。
12系统登录
代码设计
单击【确定】按钮,程序执行判断用户输入的用户名和密码是否正确,如果正确,则成功登录餐饮管理系统,并将用户名、用户使用权限、用户登陆时间传到主窗体中,同时分别使用Names、power、Times全局变量进行接受。
否则,弹出“用户名或密码错误”信息提示.【确定】按钮的Click事件代码如下:
privatevoidbtnSure_Click(objectsender,EventArgse)
{
if(txtUserName.Text=="”)//判断用户名是否为空
{
MessageBox。
Show("用户名不能为空”,"警告",MessageBoxButtons.OK,MessageBoxIcon。
Warning);
}
else
{
if(txtPwd.Text==””)//判断密码是否为空
{
MessageBox.Show("请输入密码”,"警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
else//用户名及密码不为空的情况下执行如下代码
{
SqlConnectionconn=connectToDatabase。
restaurantManagementConn();
conn。
Open();
SqlCommandcmd=newSqlCommand(”selectcount(*)fromUserLoginwhereUserName=’"+txtUserName。
Text+"’andUserPwd=’”+txtPwd。
Text+"’”,conn);
inti=Convert。
ToInt32(cmd.ExecuteScalar());
if(i>0)
{
cmd=newSqlCommand(”select*fromUserLoginwhereUserName=’"+txtUserName。
Text+"’”,conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr。
Read();
stringUserPower=sdr[”Power”].ToString().Trim();
conn.Close();
formMainmain=newformMain();
main。
power=UserPower;
main。
Names=txtUserName.Text;
main。
Times=DateTime.Now。
ToShortDateString();
main.Show();
this.Hide();
}
else
{
MessageBox.Show("用户名或密码错误”);
}
}
}
}
4.2。
2主窗体的设计与实现
在正确验证用户的用户名和密码以后,就显示出餐饮管理系统的主窗体。
主窗体主要用于显示系统所具有的功能,例如菜单栏里显示了基础信息、辅助工具、系统设置、退出系统、系统维护等几个功能模块。
用户可以选择相应的按钮对应的子功能对系统进行不同的操作,餐饮管理系统的主窗体如图4。
13所示。
图4.13主窗体
主窗体实现的几个重要功能实现代码如下:
//接收从login窗体传来的信息,以下四个定义的变量是以后代码用到的全局变量
publicstringpower;
publicstringNames;
publicstringTimes;
privateSqlDataReadersdr;
//以下是窗体加载时执行的代码
privatevoidformMain_Load(objectsender,EventArgse)
{
StatusLabeUser.Text=Names;
StatusLabeLoginTime。
Text=Times;
switch(power)
{
case”0":
StatusLabePower。
Text="超级管理员”;break;
case"1":
StatusLabePower.Text="经理”;
TSMenuItemSystemMaintenance.Enabled=false;
break;
}
}
privatevoidformMain_Activated(objectsender,EventArgse)//窗体激发时执行如下代码
{
lvDesk.Items。
Clear();
SqlConnectionconn=connectToDatabase.restaurantManagementConn();
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromRoom”,conn);
sdr=cmd。
ExecuteReader();
while(sdr.Read())
{
stringstatus=sdr[”RoomStatus”].ToString()。
Trim();
AddItems(status);//根据桌台使用与否,选择图片显示桌子是否在被用中
}
conn.Close();
}
privatevoidAddItems(stringstatus)
{
if(status==”使用")
{
lvDesk。
Items.Add(sdr[”RoomName”].ToString(),1);
}
else
{
lvDesk。
Items.Add(sdr["RoomName”].ToString(),0);
}
}
//右键中单击开台会执行如下代码
privatevoid开台ToolStripMenuItem_Click(objectsender,EventArgse){
if(lvDesk。
SelectedItems.Count!
=0)
{
stringnames=lvDesk。
SelectedItems[0].SubItems[0].Text;
formOpenfrm=newformOpen();
frm。
name=names;
frm。
ShowDialog();
}
else
{
MessageBox.Show(”请选择一个桌台进行开台");
}
}
//右键中单击取消开台会执行如下代码
privatevoid取消开台ToolStripMenuItem_Click(objectsender,EventArgse){
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk。
SelectedItems[0]。
SubItems[0]。
Text;
SqlConnectionconn=connectToDatabase。
restaurantManagementConn();
conn。
Open();
SqlCommandcmd=newSqlCommand(”updateRoomsetRoomStatus=’待用’,Num=0
WhereRoomName=’"+names+”’”,conn);
cmd.ExecuteNonQuery();
cmd=newSqlCommand(”deletefromGuestFoodwhereDiningTable=’”+names+”’”,conn);
cmd。
ExecuteNonQuery();
conn.Close();
formMain_Activated(sender,e);
}
else
{
MessageBox.Show(”请选择桌台”);
}
}
其他右键功能代码在源代码中,代码设计思想和开台代码类似。
//单击listview控件中的一项内容时会执行如下代码,这里我们将listview的name定义为lvDesk
privatevoidlvDesk_Click(objectsender,EventArgse)
{
stringnames=lvDesk。
SelectedItems[0]。
SubItems[0].Text;
SqlConnectionconn=connectToDatabase。
restaurantManagementConn();
conn.Open();
SqlCommandcmd=newSqlCommand(”select*fromRoomwhereRoomName=’"+names+"’”,
conn);
SqlDataReadersdr=cmd。
ExecuteReader();
sdr.Read();
stringstatus=sdr["RoomStatus”]。
ToString().Trim();//将选中桌台的状态信息提取出来
sdr。
Close();
if(status==”使用”)
{
this.contextMenuStrip1.Items[0]。
Enabled=false;
this。
contextMenuStrip1.Items[1].Enabled=true;
this。
contextMenuStrip1.Items[3]。
Enabled=true;
this.contextMenuStrip1.Items[5]。
Enabled=true;
this.contextMenuStrip1。
Items[6]。
Enabled=true;
}
if(status==”待用”)
{
this。
contextMenuStrip1。
Items[0].Enabled=true;
this。
contextMenuStrip1.Items[1].Enabled=false;
this。
contextMenuStrip1。
Items[3].Enabled=false;
this。
contextMenuStrip1。
Items[5].Enabled=false;
this。
contextMenuStrip1。
Items[6]。
Enabled=false;
}
conn.Close();
}
//双击listview控件中的一项内容时会执行如下代码
privatevoidlvDesk_DoubleClick(objectsender,EventArgse){
deskInfodesk=newdeskInfo();
desk。
tableName=lvDesk。
SelectedItems[0]。
SubItems[0]。
Text;
desk。
ShowDialog();
}
//单击menustrip控件中基础信息下的桌台信息管理按钮会执行如下代码
privatevoidTSMenuItemTableInfo_Click(objectsender,EventArgse)
{
deskInfoManagementdesk=newdeskInfoManagement();
desk。
ShowDialog();
}
menustrip控件中的其他按钮的代码设计思路与上面的单击menustrip控件中基础信息下的桌台信息管理按钮类似都是初始化一个相应窗体的对象,显示窗体。
注:
其他代码详见系统设计文档.
4.2.3右键菜单中的几个重要功能的介绍
右键菜单功能中顾客可以选择开台,取消开台,点菜,查询消费记录以及结账,下面介绍其中三个重要功能的实现代码,有开台,点菜以及结账,窗体运行结果分别如图4.14、图4.15和图4。
16所示.
图4。
14开台窗体
图4。
15点菜窗体
图4。
16结账窗体
凭证信息录入窗体的主要实现代码如下:
图4。
15的实现代码
publicstringname;
publicSqlConnectionconn;
privatevoidformOpen_Load(objectsender,EventArgse)
{
conn=connectToDatabase。
restaurantManagementConn();
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromRoom”,conn);
SqlDataReadersdr=cmd.ExecuteReader();
while(sdr.Read())
{
cbNum。
Items。
Add(sdr[”RoomName"]。
ToString()。
Trim());
}
cbNum.SelectedItem=name。
Trim();
sdr.Close();
cmd=newSqlCommand(”select*fromWaiter",conn);
sdr=cmd。
ExecuteReader();
while(sdr。
Read())
{
cbWaiter。
Items.Add(sdr[”WaiterName”].ToString().Trim());
}
cbWaiter。
SelectedIndex=0;
sdr。
Close();
}
privatevoidtxtNum_KeyPress(objectsender,KeyPressEventArgse)
{
if((e。
KeyChar!
=8&&!
char。
IsDigit(e.KeyChar))&&e。
KeyChar!
=13)
{
MessageBox。
Show("请输入数字");
e。
Handled=true;
}
}
privatevoidbtnSave_Click(objectsender,EventArgse)
{
if(txtNum。
Text=="”||Convert。
ToInt32(txtNum.Text)〈=0)
{
MessageBox。
S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 餐饮 管理 系统 数据库 课程设计 论文