1、摘 要随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。近两年来已呈现出高速发展的态势。但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统不视为一条有效的解决途径。本论文主要针对中小型饭店餐饮管理中的一些
2、问题,将其与计算机信息管理系统结合起来,实现中小型饭店管理信息计算机化、系统化,将中小型饭店管理中的工作流转化成比较科学化、规范化的业务流程,使管理基础数据更加准确化,管理人员摆脱了事务性工作,转而从事管理专业工作,为经营决策提供了快捷和强大的数据支持。把计算机用于餐饮企业管理,可在很大程度上提高管理者分析和决策的科学性,提高经营管职水平,带来更多的顾客,使企业取得更好的经济效益。关键词 餐饮管理;信息查询;数据库连接目录1 系统功能概述11.1系统功能分析11.2 系统结构总图12 数据库设计22.1 需求分析22.2 E-R模型22.3 表结构设计43 各窗体设计53.1启动封面窗体及登录
3、对话框的设计53.2 主窗体73.3注册新用户窗体93.4分别设计各个信息窗体113.5客人就餐管理窗体143.6各种信息的查询窗体16总结.20参考文献.211 系统功能概述1.1系统功能分析 本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标:系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。实现对消费账目自动结算。实现对消费的历史记录进行查询。系统应最大限度地实现易维护性和易操作性1.2 系统结构总图饭店就餐管理系
4、统的结构总图,如图1.1所示用户管理菜谱管理饭店就餐管理系统注册新用户退出文件系统设置管理餐桌管理销售金额统计菜肴消费排行榜数据查询和统计现态查询图1.1 饭店就餐管理系统的结构总图2 数据库设计2.1 需求分析本系统运用VB 6.0及Microsoft Office Access2007实现,拥有1个登录窗体、1个主窗体、8个子窗体、2个数据环境设计器。登录窗体可以登录到主窗体,点击主窗体的菜单按钮,可以选择具体功能。1. 系统设置管理:包括菜谱管理,餐桌管理,用户管理2. 数据查询:数据查询包括:现态查询 3. 查询统计管理:包含销售金额统计和菜肴销售排行以上内容需要四个表分别是:包含以下
5、实体及属性:1. 菜肴信息(菜肴编号,分类,菜名,规格,单价,有效日期)2. 餐桌信息(餐桌编号,餐桌位置,餐桌档次,可容纳人数,是否空闲)3. 账单表(流水号,餐桌编号,就餐时间,就餐人数,应收金额,实收金额,折扣,经手人)4. 账单明细表(流水号,菜肴编号,数量)5. 用户表(用户名,密码)2.2 E-R模型1.菜谱管理E-R图,如图2.1所示有效日期单价菜谱信息菜肴编号菜名规格分类 图2.1 菜谱管理2.餐桌管理E-R图,如图2.2所示餐桌信息餐桌位置餐桌档次是否空闲餐桌编号可容纳人数 图2.2 餐桌管理3.用户信息E-R图,如图2.3所示用户信息密码用户名 图2.3 用户信息4. 登录
6、E-R图登录用户名密码 图2.4 登录2.3 表结构设计下面为各个表的设计1.菜肴信息表图2.5 菜肴信息表2.餐桌信息表图2.6 餐桌信息表3.用户信息表图2.7 用户信息表4.账单表图2.8 账单表5.账单明细表图2.9 账单明细表3 各窗体设计3.1启动封面窗体及登录对话框的设计要求:图片背景、欢迎类文字、单击显示“进入系统”标题的标签或按钮,将打开“登录”对话框,用户输入用户名和密码,若正确则打开下面的主窗体;否则提示密码错误,请重新输入。最多允许输入3次。如图3.1,3.2所示图3.1 进入系统窗体进入系统后进入登陆主窗体的编码为:Private Sub Command1_Click
7、()Frmdenglu.ShowEnd Sub图3.2 登录窗体登录编码如下:Private Sub Command1_Click()Dim sqlstr As Stringsqlstr = Select * From 用户表 Where 用户名= & Text1 & Adodc1.RecordSource = sqlstrAdodc1.RefreshIf Adodc1.Recordset.EOF Then MsgBox 用户名错误,重新输入, vbExclamation, 警告 Text1.Text = Text1.SetFocusElse If Adodc1.Recordset.Field
8、s(密码) = Text2 Then MDIForm1.Show Unload Me Else MsgBox 密码错误,重新输入 , vbExclamation, 警告Text2.Text = Text2.SetFocus End IfEnd IfmiCount = miCount + 1If miCount = 3 Then Unload MeEnd SubPrivate Sub Command2_Click() Unload MeEnd Sub3.2 主窗体要求:设计为MDI窗体,含有主菜单:文件、系统设置管理、客人就餐管理、数据查询和统计 文件菜单包含以下子菜单及其功能:注册新用户菜单:
9、打开“注册新用户”窗体退出:结束程序运行 系统设置管理 包含以下子菜单:菜谱管理菜单:显示菜谱信息窗体餐桌管理菜单:显示餐桌信息窗体用户管理菜单:显示用户信息窗体退出菜单:结束程序运行 客人就餐管理包含以下子菜单:开台菜单:打开“开台”窗体,登记客人的餐桌号,并启动“点菜”窗体点菜菜单:打开“点菜”窗体,修改某餐桌上客人的点菜信息结账菜单:打开“结账”窗体,选择要结算的餐桌,进行结算,打印账单。数据查询和统计包含以下子菜单:现态查询:显示当前每个餐桌的占用/空闲情况,占用餐桌的用餐人数销售金额统计:按时间段统计饭店的销售总额,累计用餐人数菜肴消费排行榜:按顺序显示消费次数最多的菜肴名称及其消费
10、次数如图3.3所示:图3.3 主菜单其编码如下:Option ExplicitPrivate Sub caipu_Click()Frmcaipu.ShowEnd SubPrivate Sub caiyao_Click()Frmcaiyaoxiaofei.ShowEnd SubPrivate Sub canzhuo_Click()Frmcanzhuo.ShowEnd SubPrivate Sub denglu_Click()Frmdenglu.ShowEnd SubPrivate Sub Image1_Click()End SubPrivate Sub keren_Click()End SubP
11、rivate Sub tc_Click()Unload MeEnd SubPrivate Sub xiantai_Click()Frmxiantai.ShowEnd SubPrivate Sub xiaoshou_Click()Frmxiaoshoutongji.ShowEnd SubPrivate Sub yonghu_Click()Frmyonghu.ShowEnd SubPrivate Sub zhuce_Click()Frmzhuce.ShowEnd Sub3.3注册新用户窗体用于添加新的用户名和密码。;单击“注册新用户”菜单,打开对话框如图2要求:若新用户名与系统信息表原有用户名相同
12、,则提示“用户名已存在,重新输入”;判断二次输入密码若不一致,则提示用户“输入密码不一致,重新输入密码”;判断若输入密码为空,则提示“密码不能为空”;若输入正确,则将输入的用户名保存到“系统信息”表,并提示“注册用户成功”,关闭本窗体。以下各窗体设为MDI主窗体的子窗体,如图3.4 3.5所示:图3.4注册用户窗体其编码为:Private Sub Command1_Click()Dim sqlstr As StringIf Text1 = Then MsgBox 请输入用户名!, vbExclamation, 确认用户名 Text1.SetFocus Exit SubElse sqlstr =
13、 Select * from 用户表 where 用户名= & Text1 & Adodc1.RecordSource = sqlstr Adodc1.Refresh If Adodc1.Recordset.EOF = False Then Text1 = Text1.SetFocus Exit Sub End IfEnd If判断二次输入密码是否一致:If Text2 Text3 Then MsgBox 二次输入的密码不一致,请重新输入, vbExclamation, 检验密码 Text2 = : Text3 = Text2.SetFocus Exit SubElseIf Text2 = T
14、hen MsgBox 密码不能为空!, vbExclamation, 检验密码 Text2.SetFocus Else Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(用户名) = Trim(Text1) Adodc1.Recordset.Fields(密码) = Trim(Text2) Adodc1.Recordset.Update Me.Hide MsgBox 成功注册新用户!, vbInformation, 添加用户End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub3.4分别设
15、计各个信息窗体功能:浏览和录入各信息。该窗体以文本框显示当前记录,用按钮首记录、末记录、前一个、后一个,控制记录指针的移动;用一个标签Label显示:当前记录号/记录总数;单击表格显示按钮,显示DataGrid控件(Visible=True),以表格形式显示商品信息表,单击返回按钮,可以关闭本窗体,返回主窗体。可以对记录进行新增、确认、删除、取消操作。如图3.7 3.8 3.9 所示:图3.5 菜谱管理窗体 图3.6 餐桌管理窗体 图3.7 用户管理窗体其编码为:Option ExplicitPrivate Sub Command1_Click()Adodc1.Recordset.AddNew
16、Command1.Enabled = FalseCommand2.Enabled = FalseCommand3.Enabled = TrueCommand4.Enabled = TrueEnd SubPrivate Sub Command10_Click()Adodc1.Recordset.MovePrevious 记录指针移到前一条记录Command9.Enabled = TrueCommand8.Enabled = TrueIf Adodc1.Recordset.BOF Then 如果记录指针移到首记录之前, Adodc1.Recordset.MoveFirst 则记录指针移到首记录上
17、Command5.Enabled = False Command10.Enabled = FalseEnd IfLabel3.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command2_Click()Dim xx = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveN
18、ext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd SubPrivate Sub Command3_Click()Adodc1.Recordset.UpdateCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = FalseEnd SubPrivate Sub Command4_Click()Adodc1.RefreshCommand1.
19、Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = FalseEnd SubPrivate Sub Command5_Click()Adodc1.Recordset.MoveFirst 记录指针移到首记录(显示首记录)Command5.Enabled = False 让首记录按钮无效Command10.Enabled = False 让前移按钮无效Command9.Enabled = True 让后移按钮有效Command8.Enabled = True 让末记录按钮有效Label3.C
20、aption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command7_Click()Dim n As Integern = Text3.TextAdodc1.Recordset.Move nLabel3.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command8_Click() Ad
21、odc1.Recordset.MoveLast 移到末记录 Command5.Enabled = True Command10.Enabled = True Command9.Enabled = False Command8.Enabled = FalseLabel3.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command9_Click()Adodc1.Recordset.MoveNext 记录指针移到下一条记录Command5.
22、Enabled = TrueCommand10.Enabled = TrueIf Adodc1.Recordset.EOF Then 如果记录指针移到了末记录之后 Adodc1.Recordset.MoveLast 则记录指针移到末记录上 Command9.Enabled = False Command7.Enabled = FalseEnd IfLabel3.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd Sub3.5客人就餐管理窗体 如下图: 图3.8 开台窗体图
23、3.9 点菜窗体图3.10 结账窗体其编码为:Private Sub Command1_Click()Adodc1.Recordset.AddNewAdodc1.Recordset.UpdateCommand1.Enabled = FalseCommand2.Enabled = TrueEnd SubPrivate Sub Command2_Click()Adodc1.RefreshCommand1.Enabled = TrueCommand2.Enabled = FalseFrmdiancai.ShowEnd SubPrivate Sub Command1_Click()Adodc1.Rec
24、ordset.AddNewAdodc1.Recordset.UpdateCommand1.Enabled = FalseCommand2.Enabled = TrueEnd SubPrivate Sub Command2_Click()Adodc1.RefreshCommand1.Enabled = TrueCommand2.Enabled = FalseFrmjiezhang.ShowEnd SubPrivate Sub Command1_Click()Unload FrmjiezhangMDIForm1.ShowEnd Sub3.6各种信息的查询窗体可以按各种条件查找,这些条件放在组合列表
25、框Combo中,供用户选择。在文本框中输入要查询的内容,单击查询按钮,查询结果用网格控件显示.。如图3.13 3.14所示:图3.11 现态查询窗体其编码为:Dim str As Stringstr = Select * From 餐桌信息 str = str & Where 餐桌信息. & Combo1.Text & Like & Text1 & % Adodc1.RecordSource = str Adodc1.RefreshEnd SubPrivate Sub Command2_Click()Unload FrmxiantaiMDIForm1.ShowEnd SubPrivate Su
26、b Form_Load()Combo1.AddItem 可容纳人数Combo1.AddItem 是否空闲Combo1.Text = 可容纳人数Text1.Text = End Sub 图3.12 消费金额统计窗体 其编码为:Private Sub Command1_Click()Dim str As Stringstr = Select * From 账单表 str = str & Where 账单表. & Combo1.Text & Like & Text1 & % Adodc1.RecordSource = str Adodc1.Refresh End SubPrivate Sub Com
27、mand2_Click()Unload FrmxiaoshoutongjiMDIForm1.ShowEnd SubPrivate Sub Form_Load()Combo1.AddItem 就餐人数Combo1.AddItem 实收金额Combo1.Text = 就餐人数Text1.Text = End Sub 图3.13 菜肴统计窗体其编码为:Option ExplicitPrivate Sub Command1_Click()Dim str As Stringstr = Select * From 账单明细表str = str & Where 账单明细表. & Combo1.Text &
28、Like & Text1 & % Adodc1.RecordSource = str Adodc1.RefreshEnd SubPrivate Sub Command2_Click()Unload FrmcaiyaoxiaofeiMDIForm1.ShowEnd SubPrivate Sub Form_Load()Combo1.AddItem 菜肴编号Combo1.AddItem 数量Combo1.Text = 菜肴编号Text1.Text = End Sub总结经过了接近一周的时间,我们组成员共同合作做的c#餐饮管理系统课程设计基本接近尾声了,做完这次的餐饮管理系统c#的课程设计,我对餐饮管
29、理系统设计有了整体的感知。能把C#语言讲清楚. 以基础为主,从简单入手,逐渐扩展开来,了解和学会了很多这方面的知识,掌握了C#的语法以及面向对象程序设计思想和方法,以windows程序为主,课程设计贴近我们的生活,使用价值高。读者会对餐饮管理系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发餐饮管理系统,要抓住开发的核心部分。餐饮系统大体由登录、桌台管理、开台、点菜、结账和密码修改等6大模块组成,只要掌握了这6个部分的开发,餐饮管理系统便会初具规模。而其他功能都是在这6个功能的基础上去补充添加的,也可以说是附属功能, 经过测试,各项功能基本符合要求。作为计算机应用的一部分,我
30、们做的餐饮管理系统使用计算机对餐饮信息进行管理,具有比手工管理无法比拟的优点,比如检索速度快,查询方便,可靠性高,存储容量大,信息处理速度大,成本低等。这些优点能极大地提高信息管理的效率,也是在计算机信息技术日渐成熟的今天使企业走向科学化、规范化、正规化管理、提高竞争力,及时与世界接轨的重要条件。但是在课程设计的过程中也出现了一些问题就是当顾客是新用户时不能该系统,另外还有一些功能不够完善,还需进一步改善。还有就是在做程序时,一定不要急于编写代码,而应该首先做好需求分析,同时把各个模块之间的关系,作用和功能了解清楚。另外还有一点值得注意的是,为了方便程序的后期维护,在编写代码的过程中,整体分析
31、一定要明确,代码分析一定要明确。最后,我相信餐饮管理系统的功能还会越来越强大,通过这次对餐饮管理系统的制作,我发现我的c#知识还是不够,只有不断学习,才能对知识加深。软件的制作水平才能提高。参考文献1 王进强Visual Basic.NET 基础教程北京:清华大学出版社,20042 童爱红,刘凯.VB.NET应用教程清华大学出版社,2005-013 张立科Visual Basic.NET设计与开发实例机械工程出版社,2005-24 前导工作室中文Access 2000开发使用手册机械工业出版社,2002-015 Craig EddyTimothy Buchanan 中文Access 2000机械工业出版社,20036 甘仞初系统开发北京:经济科技出版社,19967 龚沛曾,杨志强,陆慰民Visual Basic.NET实验知道与测试北京:高等教育出版社,200520