C#餐饮管理系统课程设计.doc
《C#餐饮管理系统课程设计.doc》由会员分享,可在线阅读,更多相关《C#餐饮管理系统课程设计.doc(34页珍藏版)》请在冰点文库上搜索。
郑州科技学院
C#课程设计
院系信息工程学院
项目名称餐饮管理系统
班级10计科2班
学号201015058
姓名刘云涛
指导老师王玉萍
完成日期2013年6月2号
目录
摘要
一.需求分析 1
1.系统可行性分析 1
2.经济上可行性分析 1
3.管理上的可行性分析 2
4.简要总结 2
二、总体设计 3
2.1项目规划 3
2.2系统功能结构图 8
三.系统设计 8
四系统的具体实施 10
(一)系统介绍 10
(二)各个模块的实现 10
五、详细设计 17
5.1主界面的代码 17
5.2职工信息查询代码 25
5.3消费查询部分代码 29
五、致谢词 30
六、参考文献 31
摘要
当今社会已经进入了在计算机信息管理领域中激烈竞争的时代,应用计算机已经变得十分普遍了,如同我们离不开的自行车、汽车一样。
我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中立于不败之地。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已经为人们深刻认识,它以已经进入人类社会的各个领域并发挥着越来越重要的作用。
越来越多的管理人员意识到信息管理的重要性。
作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查询方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高信息管理的效率,也是企业科学化、正规化、管理与世界接轨的重要条件。
关键词:
餐饮管理系统开台点菜消费查询结账
一.需求分析
1.系统可行性分析
(1)技术上的可行性:
技术方面的可行性就是根据现有的技术条件,能否实现系统的各项要求。
据分析此系统采用VS2008位开发平台、C#为开发语言、SQLServer2000为后台数据库,根据所学的知识完全可以设计出此系统的各个功能和模块。
(2)硬件设备上的可行性分析:
设备上的可行性是指该系统对所需的硬件设备,如PC机、打印机或网络等的性能要求。
据分析现有设备的性能完全能够满足系统功能的要求。
(3)软件上的可行性分析:
本系统属于数据库应用程序,本餐饮管理系统需求一个数据库服务器及其运行的操作系统,根据客户的数据量并不是十分巨大,我们选择目前市场上价格比较低廉的数据库服务器产品:
MicrosoftSQLServer2000及配套的平台WindowsServer2003操作系统。
而前台开发工具采用VisualStudio2008,利用其可视化的开发环境、丰富的控件资源,能够快速地开发出应用程序。
这些软件在中小型MIS开发中已经被大量应用,技术上都比较成熟,因此技术上是可行的
2.经济上可行性分析
(1)费用上可行性分析:
根据酒店多年来良好的经济效益,酒店的经济实力比较雄厚,加上硬件设备和软件的价格比较便宜,就这为系统的实施奠定了经济基础,足能提供购买硬件设备和开发软件所需的资金。
(2)效用上的可行性分析:
实施该系统也能给公司带来长期效益,它可以帮助领导实现管理方法的现代化、科学化、极大地提高餐饮企业的工作质量与工作效率、减少管理支出的费用,从而保证酒店管理的可持续的良好发展。
因此经济上具有了系统开发的可行性。
3.管理上的可行性分析
酒店的领导认识到当今社会的发展趋势,认为使用计算机从事酒店管理是公司当前非行必要的举措。
公司员工也会对本系统的开发十分的欢迎,因为采用计算机管理方式可以减少或避免酒店服务人员因为马虎大意而导致经济财产的错误,或由于客人过多,造成开台、点菜等方面的混乱。
另外,为了提高酒店的管理水平,适应管理信息系统的要求,该酒店对管理人员进行了全面的培训,提高了他们对餐饮管理信息系统的认识。
因此在管理上具有了系统开发的可能性。
4.简要总结
经过细致地初步调查和严密地可行性分析,我认为在现有的条件下,为餐饮业开发一款功能较齐全的餐饮管理系统是完全可行的。
二、总体设计
2.1项目规划
餐饮管理系统主要由用户登录、桌台信息管理、服务员信息管理、修改密码、开台、取消开台、点/加菜、消费查询、和退出等模块组成,具体规划如下。
2.1.1用户登录模块
该模块主要用于实现验证用户是否合法,只有合法用户才能有权登录,只有登录成功情况下才能进入系统功能主界面,并且在登录的同时能验证登录人员的管理权限,根据权限显示其能管理范围。
2.2.2桌台信息管理模块
该模块主要用于管理桌台的信息,可以设置桌台名称,桌台位置,桌台占用所需价钱。
2.2.3服务员信息管理模块
该模块主要用于方便对服务人员的信息进行管理。
2.2.4修改密码模块
该模块主要用于实现对登录人员的密码进行管理,长时间不更换密码是不安全的,增加此模块能增加系统的安全性。
2.2.5开台模块
该模块主要用于实现对顾客进行开台,已经占用的桌台不能被再次分配,方便分配未占用的桌台给顾客
2.2.6取消开台模块
该模块主要用于实现对已经开台的桌台进行取消开台。
2.2.7消费查询模块
该模块主要用于实现客户能够查询自己已消费清单情况,进行核对自己的消费。
2.2.8结账模块
该模块主要用于实现对客户的消费进行自动汇总,显示消费金额,能进行找零计算。
2.2.9数据库模块
该模块主要关于数据表的设计,各个表的命名及字段命名都是以相应名称的拼音首字母组合而成,下面所示为上面所说的在数据库中的六张表的截图信息。
图2-1用户登陆表tb_User
图2-2服务人员信息表tb_Waiter
图2-3餐桌和房间信息表tb_Room
图2-4食物种类表tb_foodtype
图2-5食物表tb_food
图2-6客人点菜信息表tb_GuestFood
图2-1用户登陆表tb_User
图2-2服务人员信息表tb_Waiter
图2-3餐桌和房间信息表tb_Room
图2-4食物种类表tb_foodtype
图2-5食物表tb_food
图2-6客人点菜信息表tb_GuestFood
2.2系统功能结构图
桌台信息
职员信息
日历
计算器
记事本
系统备份和恢复
关于
退出系统
权限管理
修改密码
锁定系统
基础信息
辅助工具
系统维护
帮助
退出
系统设置
餐饮管理系统
三.系统设计
1.当用户登陆系统时,系统会根据用户填写的用户名和密码根据数据库中的tb_User表进行查询用户名和密码是否正确,进而决定是否登陆成功进入主界面。
2.如果用户登陆成功则进入系统主窗体,系统根据当前用户数的权限决定当前用户的操作级别。
该系统有三种级别,分别是超级管理员、经理和一般用户。
如果当前用户的权限是超级管理员,则可以使用系统的所有功能其中包括:
系统维护、基础信息、系统设置、辅助工具、帮助和退出系统。
如果用户的权限是经理权限,则可使用基础信息、系统设置、辅助工具、帮助和退出系统。
如果当前用户的权限是一般用户权限,则只能使用系统设置、辅助工具、帮助和退出系统。
注:
以上三种权限的用户都可以对客户进行开桌、点菜、消费查询、结账功能。
采用这种不同权限的登陆方式可以保障系统的安全性和可靠性,下图为系统的业务流程图。
如图所示。
系统登录
是否登陆
系统主窗体
系统管理员
系统维护
基础信息
系统设置
退出
系统工具
帮助
否
是
是 否
四系统的具体实施
(一)系统介绍
本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标:
1.系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。
2.实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。
3.对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。
4.实现对消费账目自动结算。
5.实现对消费的历史记录进行查询,支持模糊查询。
6.系统应最大限度地实现易维护性和易操作性。
(二)各个模块的实现
4.1登陆模块
进入系统前首先进入登录这个界面,当用户登录成功后,可以进入主界面。
如图:
图4-1登陆模块
用户信息
Tb_User
系统编号
ID
用户名Username
用户权限power
用户密码UserPwd
用户信息ER图
4.2.主窗体设计
4.2.1基础信息—-桌台信息
可实现重填、修改有增加、删除、查询桌台信息的功能
双击图标是桌台基本信息
4.2.2基础信息—职工信息
4.3辅助工具
4.3.1辅助工具—日历
4.3.2辅助工具—计算器
4.3.3辅助工具—记事本
4.4系统维护
4.4.1系统维护—权限管理
4.5系统设置
4.5.1系统设置—修改密码
4.5.2系统设置—锁定系统
4.6帮助
4.7快捷菜单
4.7.1开台
4.7.2点\加菜
4.7.3消费查询
4.7.4结账
五、详细设计
5.1主界面的代码
namespaceMrCy
{
publicpartialclassfrmMain:
Form
{
publicfrmMain()
{
InitializeComponent();
}
publicSqlDataReadersdr;
publicstringpower;
publicstringNames;
publicstringTimes;
privatevoidfrmMain_Load(objectsender,EventArgse)
{
switch(power)
{
case"0":
toolStripStatusLabel13.Text="超级管理员";break;
case"1":
toolStripStatusLabel13.Text="经理";break;
case"2":
toolStripStatusLabel13.Text="一般用户";break;
}
toolStripStatusLabel10.Text=Names;
toolStripStatusLabel16.Text=Times;
if(power=="2")
{
系统维护SToolStripMenuItem.Enabled=false;
基础信息MToolStripMenuItem.Enabled=false;
}
if(power=="1")
{
系统维护SToolStripMenuItem.Enabled=false;
}
}
privatevoidAddItems(stringrzt)
{
if(rzt=="使用")
{
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;
frmOpenopenroom=newfrmOpen();
openroom.name=names;
openroom.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoidfrmMain_Activated(objectsender,EventArgse)
{
lvDesk.Items.Clear();
SqlConnectionconn=BaseClass.DBConn.CyCon();
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_Room",conn);
sdr=cmd.ExecuteReader();
while(sdr.Read())
{
stringzt=sdr["RoomZT"].ToString().Trim();
AddItems(zt);
}
conn.Close();
}
privatevoid点菜ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmDCdc=newfrmDC();
dc.RName=names;
dc.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoid消费查询ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmSerchserch=newfrmSerch();
serch.RName=names;
serch.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoid结账ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmJZjz=newfrmJZ();
jz.Rname=names;
jz.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoidlvDesk_DoubleClick(objectsender,EventArgse)
{
frmDetailsdetails=newfrmDetails();
details.TableName=lvDesk.SelectedItems[0].SubItems[0].Text;
details.ShowDialog();
}
privatevoidlvDesk_Click(objectsender,EventArgse)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
SqlConnectionconn=BaseClass.DBConn.CyCon();
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_RoomwhereRoomName='"+names+"'",conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
stringzt=sdr["RoomZT"].ToString().Trim();
sdr.Close();
if(zt=="使用")
{
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(zt=="待用")
{
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();
}
privatevoid取消开台toolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
SqlConnectionconn=BaseClass.DBConn.CyCon();
conn.Open();