• 931.50 KB
  • 2022-04-22 13:42:46 发布

餐饮管理系统的研究毕业论文.doc

  • 32页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'餐饮管理系统的研究毕业论文目录1.概述31.1开发背景31.2开发环境简介32.系统分析42.1需求分析42.2系统的开发目标43.系统设计分析53.1系统的功能结构图53.2系统的业务流程图53.3数据库的设计64.功能模块的设计与实现124.1登录模块的设计124.2主窗体模块的设计144.3开台模块的设计184.4点菜模块的设计194.5结账模块的设计235.系统运行测试265.1测试方法26 5.2测试过程265.3开发中的难点及解决办法266.结论28致谢29参考文献30 摘要随着国情的发展,餐饮业在人们日常生活中的地位也越发增高,传统的手工作业记账方式已经不能满足快速发展的现代餐饮行业。在中型及以上规模的餐厅里,若从开启桌台一直到埋单结算都使用人工记录的方式来完成,非常浪费资源,使效率低下,并且记录也容易出现较多的错误,更有可能出现因保管不善而造成遗失或因年代久远而字迹模糊没有保存价值等无法避免的原因。然而,在科学技术发达的当今时代,我们可以用计算机软件技术来设计一个餐饮管理系统,以解决上述问题。本系统应用了MicrosoftSQLServer2000为后台数据库,以VisualC#2010为开发工具,实现了由点餐开始的一系列面向顾客的服务,和面向餐厅的后台管理类服务。本系统摒弃了传统手工记账的不足,利用计算机软件技术来达到餐饮管理的最高效,让计算易出错、易丢失等原因不再出现。真正达到了节能、高效。关键字:餐饮管理系统;SQLServer;VisualStudio;30 ABSTRACTWiththedevelopmentofthenationalconditionsandtheimprovementofpeople’sconsumptionslevels,thestatusoftherestaurantindustryinpeople’sdailylivesareincreasinglyhigh.Andthetraditionalwayofmanuallaborcannolongermeet.Inthemediumandlarge-scalerestaurant,it’sinefficienttoworkbyhumanrecoursefromfoundingtothecheckoutprocessanditeasilyleadtomuchmistakes.Suchaslossofrecordandvaluebecauseoftheageandsoonthatcan’tbeavoided.Butonceyoudesignacateringmanagementsystembycomputerinthishigh-technicalworld,insteadofthetraditionalmanualrecord,thosewouldbeallworkedout.ThesystemusestheSQLServerandtheVisualStudio,toachieveaseriesoffrontdeskoperationstoguests,andbackservices.Thissystemdropstheshortcomingofthetraditionalwayandmakeitthemostefficientbycomputersoftwaretechnic.Keywords:CateringManagementSystem;SQLServer;VisualStudio30 1.概述1.1开发背景  随着我国经济的快速发展,人们的生活水平不断的提高,餐饮所在人们日常生活中的地位也越发提高。而在当今这个生活质量大幅度提高的时代,我们对于饮食的要求已经不仅仅是解决温饱,更多的是需要多样化的菜式、更吸引人的美味来满足人们的味蕾。中国是举世闻名的美食大国,有五千年的饮食文化,中国料理在世界上享有盛誉。许多外国人偶然吃过中餐便无法自拔。世界在进步、经济在进步、美食当然也在进步。而与此同时,不仅仅是内容上需要改革,形式上也同样需要改进。开发一个餐饮管理系统软件来代替旧时代的传统手工作业方式显得尤为重要。它需要包括登陆、开台、点菜、查询、加菜、结账以及权限管理等多种功能,一改以往的毫无结构、存在漏洞的手工管理方式。此系统运用C#语言进行开发,并且有良好的后台数据库的支持。  现今,餐饮业拥有巨大的市场,但就像“一个硬币有两面”,餐饮行业在面对极大机遇的同时,也面临着极大挑战。导致它动荡不安的原因主要有几点:  1.人工结算出错率较高,缺少标准的科学管理体系; 2.缺乏先进的信息记录工具,缺乏应变能力,还有相当一部分小饭店还用纯手工方式; 3.人才专业度不高,多没有经过专业餐饮管理的培训。1.2开发环境简介(1)MicrosoftVisualStudio2010 VisualStudio是微软公司支持Windows7应用程序开发的开发环境,支持多种数据库,例如:IBMDB2、SQLServer等。 (2)MicrosoftSQLServer2000MicrosoftSQLServer是由美国微软公司所推出的关系数据库解决方案,数据库的内置语言原本是采用美国标准局(ANSI)和国际标准组织(ISO)所定义的SQL语言,但是微软公司对它进行了部分扩充而成为作业用SQL(Transact-SQL)。SQLServer2000数据库引擎提供完整的XML支持。(3)C#语言C#与C、C++类似,是集各种语言优点于一身的一种计算机语言。30 2.系统分析2.1需求分析 本系统由开台、点餐、结算及系统设置等几大模块组成,操作规范简便。并且本系统设置了不同身份登录持有不同的权限,使得经理、前台服务员、管理人员都能够充分利用其所在职位的所有职能,利用该系统进行对本店餐饮完善的管理。2.2系统的开发目标 充分考虑到使用者(服务员、经理)的需求,我将一切从用户的角度出发,建立一个人性化、实用性强的系统。将理论与实际相结合,从最初的设计规划到最终的开发使用,一切为使用者考虑。此系统有以下功能: 1.利用计算器功能自动计算消费金额及找零; 2.利用汉字图形界面,使得操作简便直观,查询一目了然; 3.将管理数字化,随时掌握数据一切变化,并且易查询; 4.减少人工管理无法避免的错误、易保存; 5.增加安全性,增强灵活性; 6.尽可能减少劳动者劳动力,提高效率; 7.使企业档次提高,增强企业竞争力。30 3.系统设计分析3.1系统的功能结构图系统功能结构如图1所示:餐饮管理系统基础信息辅助工具系统维护系统设置帮助退出桌台信息职员信息日历计算器记事本权限管理系统备份系统恢复口令设置锁定系统帮助退出系统图3-1餐饮管理系统功能结构图3.2系统的业务流程图它为我们展示的是一个完整的业务流程,我们可以通过它直观的感受到该系统大体上是如何处理事务的。它是一个整体的框架结构,一般不涉及具体数据及算法。根据登录身份的不同,其拥有的权限也有所限制。除此之外,系统还包括必要的辅助工具:计算器、日历等。如图3-2。30 系统维护基础信息系统设置辅助工具退出帮助系统主窗体是否管理员系统登录是否登录否是是否图3-2餐饮管理系统的业务流程图前台使用人员键入正确用户名密码登录该软件后,对于桌台的情况一目了然,管理人员使用起来也非常方便,系统可以满足各种需要的功能而没有冗余,使用户操作起来得心应手,十分方便。3.3数据库的设计3.3.1概念模型设计 该系统采用SQLSever作为后台数据库存储数据,因为它能足够存储大量的必要的信息。30 商品信息系统编号类别编号代号名称价格图3-3商品信息E-R图商品类别信息商品类别编号商品类别名称图3-4商品类别信息E-R图顾客消费信息消费桌台名称备注信息消费商品数量开单人消费时间系统编号商品代号商品名称商品价格图3-5顾客消费信息E-R图30 用户信息表登录账号系统编号账号权限登录密码图3-6用户信息E-R图桌台信息桌台包间费顾客人数开单人开台时间顾客名称桌台其他信息桌台备注桌台类型系统编号桌台名称桌台简称桌台位置桌台状态图3-7桌台信息E-R图30 职员信息职员电话职员年龄职员性别系统编号职员姓名身份证号码职员编号图3-8职员信息E-R图30 3.3.2逻辑结构设计1.2.3.4.30 5.6.30 4.功能模块的设计与实现4.1登录模块的设计登录模块的作用是阻挡非法人员进入系统。运行该模块之后,要想进入系统,需键入正确的用户名、密码,点击“登录”,如图4-1所示。该模块具体执行的过程如下:1.单击“登录”按钮后,第一步判断用户名和密码是否为空。若为空,弹出提示框:“用户输入用户名(密码)”;若不为空,系统对已输入的数据是否正确进行判断。具体实现代码如下。privatevoidbtnSubmit_Click(objectsender,EventArgse){if(txtName.Text==""){MessageBox.Show("请输入用户名","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);}else{if(txtPwd.Text==""){MessageBox.Show("请输入密码","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);}else{SqlConnectionconn=BaseClass.DBConn.CyCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromtb_UserwhereUserName=""+txtName.Text+""andUserPwd=""+txtPwd.Text+""",conn);30 inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0){cmd=newSqlCommand("select*fromtb_UserwhereUserName=""+txtName.Text+""",conn);SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();stringUserPower=sdr["power"].ToString().Trim();conn.Close();frmMainmain=newfrmMain();main.power=UserPower;main.Names=txtName.Text;main.Times=DateTime.Now.ToShortDateString();main.Show();this.Hide();}else{MessageBox.Show("用户名或密码错误");}}}}2.当键入用户名和密码后,登录有两种方式:按“登录”按钮和按Enter键。实现代码:privatevoidtxtPwd_KeyPress(objectsender,KeyPressEventArgse){if(e.KeyChar==13){btnSubmit_Click(sender,e);}}3.单击“取消”键,退出系统,实现代码:privatevoidbtnConcel_Click(objectsender,EventArgse){if(MessageBox.Show(“确定退出系统吗?”,“提示”,MessageBoxButtons.OKCancel,MessageBoxIcon.Asterisk)==DialogResult.OK){Application.Exit();}}30 4.2主窗体模块的设计程序的主窗体模块是用户登录餐饮管理系统后首先映入眼帘的,也是系统主要的操作界面,所以很重要。该系统模块的主要形式可以分为三部:菜单栏:基础信息、辅助工具等功能表;主界面:桌台情况,可以看到现在餐厅各个桌台的用餐状态;状态栏:已登录用户的用户名和权限、登录时间。运行结果如图4-2所示。1.登录系统后,不同身份登录将拥有不同的权限,具体代码如下: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")30 {系统维护ToolStripMenuItem.Enabled=false;基础信息ToolStripMenuItem.Enabled=false;}if(power=="1"){系统维护ToolStripMenuItem.Enabled=false;}}2.选择主窗体菜单栏中的“基础信息”中的“桌台信息”命令,打开所有桌台信息的窗体。具体实现如下:privatevoid桌台信息ToolStripMenuItem1_Click(objectsender,EventArgse){frmDeskdesk=newfrmDesk();desk.ShowDialog();}3.选择主窗体菜单栏中的“基础信息”中的“职员信息”命令,打开所有职员信息的窗体。具体实现如下:privatevoid职员信息ToolStripMenuItem1_Click(objectsender,EventArgse){frmUserusers=newfrmUser();users.ShowDialog();}4.选择主窗体菜单栏中的“系统维护”中的“权限管理”命令,打开管理用户权限的窗体。具体实现如下:privatevoid权限管理ToolStripMenuItem1_Click(objectsender,EventArgse){frmQxGlqx=newfrmQxGl();qx.ShowDialog();}5.选择主窗体菜单栏中的“系统维护”中的“系统备份”命令,打开备份系统数据库的窗体。具体实现如下:privatevoid系统备份ToolStripMenuItem1_Click(objectsender,EventArgse){frmBFbf=newfrmBF();30 bf.ShowDialog();}6.选择主窗体菜单栏中的“系统维护”中的“系统恢复”命令,打开恢复系统数据库的窗体。具体实现如下:privatevoid系统恢复ToolStripMenuItem1_Click(objectsender,EventArgse){frmHFhf=newfrmHF();hf.ShowDialog();}7.选择主窗体菜单栏中的“系统设置”中的“口令设置”命令,打开修改用户密码的窗体。具体实现如下:privatevoid口令设置ToolStripMenuItem1_Click(objectsender,EventArgse){frmPwdpwd=newfrmPwd();pwd.names=Names;pwd.ShowDialog();}8.当用户右击某个桌台时,该桌台当前的状态不同,弹出的右键菜单便不同。具体实现如下: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;}30 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();}9.当用户在某个未使用的桌台上单击鼠标右键,在弹出的菜单中选择“开台”命令,就可以打开开台单窗体。具体实现如下: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("请选择桌台");}10.当用户右击某个正在使用的桌台时,在弹出的菜单中选择“点/加菜”命令,就可以打开“点/加菜”的窗体。具体实现如下: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("请选择桌台");}}30 4.3开台模块的设计开台模块应包含:桌台编号、开台日期、顾客名称、用餐人数以及开台服务员的名称和必要的备注。有了这几点便可使前台人员做好账单的记录工作,便于结账,更是便于日后账单的管理与统计。并且开台单的窗体用于对指定桌台的开台,应该让前台人员直观的看到该桌台的分布状况,如图4-3。开台单模块代码如下:1.当窗体加载时,可以将数据库中所有的桌台信息和职员信息检索出来。具体实现如下:privatevoidfrmOpen_Load(objectsender,EventArgse){conn=BaseClass.DBConn.CyCon();conn.Open();SqlCommandcmd=newSqlCommand("select*fromtb_Room",conn);SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){cbNum.Items.Add(sdr["RoomName"].ToString().Trim());}cbNum.SelectedItem=name.Trim();sdr.Close();cmd=newSqlCommand("select*fromtb_Waiter",conn);sdr=cmd.ExecuteReader();while(sdr.Read()){cbWaiter.Items.Add(sdr["WaiterName"].ToString().Trim());}cbWaiter.SelectedIndex=0;sdr.Close();}30 2.在“用餐人数”文本框中输入数据,但此数据必须大于0。具体实现如下:privatevoidtxtNum_KeyPress(objectsender,KeyPressEventArgse){if((e.KeyChar!=8&&!char.IsDigit(e.KeyChar))&&e.KeyChar!=13){MessageBox.Show("请输入数字");e.Handled=true;}}3.当数据输入结束之后,单击“保存”按钮,即此桌台进行开台操作成功。具体实现如下:privatevoidbtnSave_Click(objectsender,EventArgse){if(txtNum.Text==""||Convert.ToInt32(txtNum.Text)<=0){MessageBox.Show("请输入用餐人数");}else{stringRoomName=cbNum.SelectedItem.ToString();SqlCommandcmd1=newSqlCommand("updatetb_RoomsetGuestName=""+txtName.Text+"",zhangdanDate=""+dateTimePicker1.Value.ToString()+"",Num=""+Convert.ToInt32(txtNum.Text)+"",WaiterName=""+cbWaiter.SelectedItem.ToString()+"",RoomZT="使用"whereRoomName=""+name+""",conn);cmd1.ExecuteNonQuery();this.Close();}}privatevoidbtnExit_Click(objectsender,EventArgse){this.Close();}}4.4点菜模块的设计开启点菜模块后,在左侧的菜单双击菜名,在服务员栏中选择当时点餐的服务员,如果需要的话进行备注。待服务员为顾客点完餐后直接点击“保存”,如图4-4所示。30 图12顾客点菜该模块实现代码如下:1.当单击点菜按钮,点菜窗体加载时,显示出在数据库中检索的所有菜名,以供用户选择。实现代码如下:privatevoidfrmDC_Load(objectsender,EventArgse){this.Text=RName+"点/加菜";TreeNodenewnode1=tvFood.Nodes.Add("锅底");TreeNodenewnode2=tvFood.Nodes.Add("配菜");TreeNodenewnode3=tvFood.Nodes.Add("烟酒");TreeNodenewnode4=tvFood.Nodes.Add("主食");SqlConnectionconn=BaseClass.DBConn.CyCon();conn.Open();SqlCommandcmd=newSqlCommand("select*fromtb_foodwherefoodty="1"",conn);SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){newnode1.Nodes.Add(sdr[3].ToString().Trim());}sdr.Close();cmd=newSqlCommand("select*fromtb_foodwherefoodty="2"",conn);sdr=cmd.ExecuteReader();while(sdr.Read()){newnode2.Nodes.Add(sdr[3].ToString().Trim());}sdr.Close();30 cmd=newSqlCommand("select*fromtb_foodwherefoodty="3"",conn);sdr=cmd.ExecuteReader();while(sdr.Read()){newnode3.Nodes.Add(sdr[3].ToString().Trim());}sdr.Close();cmd=newSqlCommand("select*fromtb_foodwherefoodty="4"",conn);sdr=cmd.ExecuteReader();while(sdr.Read()){newnode4.Nodes.Add(sdr[3].ToString().Trim());}sdr.Close();cmd=newSqlCommand("select*fromtb_Waiter",conn);sdr=cmd.ExecuteReader();while(sdr.Read()){cbWaiter.Items.Add(sdr["WaiterName"].ToString().Trim());}cbWaiter.SelectedIndex=0;sdr.Close();cmd=newSqlCommand("selectRoomZTfromtb_RoomwhereRoomName=""+RName+""",conn);stringzt=Convert.ToString(cmd.ExecuteScalar());if(zt.Trim()=="待用"){groupBox1.Enabled=false;groupBox2.Enabled=false;groupBox3.Enabled=false;groupBox4.Enabled=false;}conn.Close();GetData();tvFood.ExpandAll();}2.要求消费商品数量的文本框中填的必须是数字,在该文本框中的KeyPress事件中设计代码以控制数据类型。实现代码如下:privatevoidtxtpnum_KeyPress(objectsender,KeyPressEventArgse){30 if((e.KeyChar!=8&&!char.IsDigit(e.KeyChar))&&e.KeyChar!=13){MessageBox.Show("请输入数字");e.Handled=true;}}3.当点完菜后,单击“保存”,具体实现如下:privatevoidbtnSave_Click(objectsender,EventArgse){if(txtName.Text==""||txtNum.Text==""||txtprice.Text==""){MessageBox.Show("请将选择菜系");return;}else{if(txtpnum.Text==""){MessageBox.Show("数量不能为空");return;}else{if(Convert.ToInt32(txtpnum.Text)<=0){MessageBox.Show("请输入消费数量");return;}else{SqlConnectionconn=BaseClass.DBConn.CyCon();conn.Open();SqlCommandcmd=newSqlCommand("insertintotb_GuestFood(foodnum,foodname,foodsum,foodallprice,waitername,beizhu,zhuotai,datatime)values(""+txtNum.Text.Trim()+"",""+txtName.Text.Trim()+"",""+txtpnum.Text.Trim()+"",""+Convert.ToDecimal(txtallprice.Text.Trim())+"",""+cbWaiter.SelectedItem.ToString()+"",""+txtbz.Text.Trim()+"",""+RName+"",""+DateTime.Now.ToString()+"")",conn);cmd.ExecuteNonQuery();conn.Close();GetData();30 }}}}4.5结账模块的设计结账模块用来在顾客用餐完毕之后计算消费金额,并打95折。该模块的设计思路是:查询数据库来检索当时添加到数据库中的数据,在结账时得出消费支出总额,如图4-5所示:该模块实现的代码:1.当前进行结账的桌台号显示在窗体的最上端,“点菜”环节中输入进数据库的消费项目将会自动搜索出来,并在DataGridView控件上得到显示,最终将得到的结果乘以95%(新店打95折),实现代码如下。privatevoidfrmJZ_Load(objectsender,EventArgse){this.Text=Rname+"结账";groupBox1.Text="当前桌台-"+Rname;SqlConnectionconn=BaseClass.DBConn.CyCon();SqlDataAdaptersda=newSqlDataAdapter("selectfoodname,foodsum,foodallprice,waitername,beizhu,zhuotai,datatimefromtb_GuestFoodwherezhuotai=""+Rname+""orderbyIDdesc",conn);DataSetds=newDataSet();sda.Fill(ds);dgvRecord.DataSource=ds.Tables[0];conn.Open();SqlCommandcmd=newSqlCommand("selectsum(foodallprice)fromtb_GuestFoodwherezhuotai=""+Rname+""",conn);price=Convert.ToString(cmd.ExecuteScalar());if(price=="")30 {lblprice.Text="0";btnJZ.Enabled=false;}else{cmd=newSqlCommand("selectRoomBJFfromtb_RoomwhereRoomName=""+Rname+""",conn);bjf=cmd.ExecuteScalar().ToString();if(bjf=="0"){btnJZ.Enabled=true;lblprice.Text=price+"*95%"+"+"+bjf+"="+(Convert.ToDecimal(Convert.ToDouble(price)*Convert.ToDouble(0.95))).ToString("C");}else{btnJZ.Enabled=true;lblprice.Text=price+"*95%"+"+"+bjf+"="+(Convert.ToDecimal(Convert.ToDouble(price)*Convert.ToDouble(0.95))+Convert.ToDecimal(bjf)).ToString("C");}conn.Close();}}2.在支付金额一栏中的KeyPress控件里编写代码,来控制正确数据信息的输入,实现代码如下。privatevoidtxtmoney_KeyPress(objectsender,KeyPressEventArgse){if((e.KeyChar!=8&&!char.IsDigit(e.KeyChar))&&e.KeyChar!=13){MessageBox.Show("请输入数字");e.Handled=true;}}3.当在“收银”文本框中输入顾客一共付的总金额后,系统将自动得出找零,实现代码如下。privatevoidtxtmoney_TextChanged(objectsender,EventArgse){if(price=="")30 {lbl0.Text="0";}else{if(txtmoney.Text==""){txtmoney.Text="0";lbl0.Text="0";}else{lbl0.Text=Convert.ToDecimal(Convert.ToDouble(txtmoney.Text.Trim())-Convert.ToDouble(price)*Convert.ToDouble(0.95)-Convert.ToDouble(bjf)).ToString("C");}}}30 5.系统运行测试5.1测试方法黑盒测试。5.2测试过程1.测试用例登录模块是系统安全的第一道防线,它担任着保护系统最重要的作用。现做如下测试:键入错误用户名(密码),测试是否仍然能够进入系统,如图5-1显示。2.测试数据(1)输入相关信息对一些数据进行增添、改正等操作,看是否能实现其基本功能,以测试系统的正确性。(2)查询相关信息对查询功能进行检测,查询已输入的信息,和初始输入的信息是否相同。(3)删除相关信息对已删除的信息进行查询,验证信息是否被正确删除,用以检测系统中对删除的定义是否正确。5.3开发中的难点及解决办法难点:在系统的实际运用中,若遇到突发状况导致系统非正常关闭,恢复正常后,怎样让已开台的桌台继续保持开台状态,并且消费信息保持不变。例如:若有一天,正在使用此餐饮管理系统的饭店突然遭遇停电,电脑突然断电。当来电之后,重启电脑,怎么能使正在享用美食的顾客的桌台仍显示为开台,并且已点菜单信息保持不变,等待消费完毕之后仍可以正确结账。解决方法:经向老师同学求助以及自己深思熟虑,我最终决定为每个桌台创建一个字段,用来标识该台的当前状态。使在意外状况的发生下导致系统非正常关闭,重新进入系统,每个桌台原本的状态都能正确的显示出来且图标正确,代码如下。privatevoidAddItems(stringRoomZT){if(RoomZT=="使用"){lvDesk.Items.Add(sdr["RoomName"].ToString(),1);}30 else{lvDesk.Items.Add(sdr["RoomName"].ToString(),0);}}30 6.结论本系统开发了一个月,涵盖了主要的餐饮管理模块,并且没有冗余,使用户操作起来简便快捷。由此可见,这是一个非常成功的设计,是一个可以真正应用到实际生活中的餐饮管理系统。这次系统的开发是一个对大学学到知识的一次良好复习总结的过程,它真正让我从理论走向实际,把书本上的知识良好的运用到生活中去。它是一次体验过程,它使我获得了一次开发系统的经验。在开发系统的过程中,我明白了光掌握书本知识是远不能满足实际软件开发的,软件开发更重要的是实际操作过程,是把脑海中的想法利用代码展现出来。这次餐饮管理系统的设计让我明白了如何去做一个系统,以及什么叫做真正意义上的编程。我所做的系统并不完美,它还有许多地方需要改进。这次系统开发让我看到自己在专业上的不足之处,让我看到我的知识掌握地并不牢固,要想把系统做的更加完善,必须加大力度去学习更多的知识,不仅要在课堂上跟老师学习,还要在课后利用自己的课余时间,多看课外书,多发现不懂得地方,多向老师请教、和同学探讨。为做一个更好、更全面的系统而努力。30 致谢在这次系统开发的过程中,我最要感谢的是我的指导老师赵洁老师。她就像一盏明灯,当我在黑暗的道路中瞎摸索时为我照亮了方向,让我看清前方的路,没有她就没有这个系统的诞生。她是为我传道授业解惑的好老师。若是光凭我一人的努力,就算能够完成这个系统的开发,也要花费比现在多几倍的时间和精力。所以我特别感谢她,让我少走了不少弯路,让我获得了一次收获颇丰的系统开发体验。另外,我还要特别感谢我的同学们,感谢她们在我遇到困难一筹莫展的时候为我排忧解难。他们是我情感里的知己,是我在学场上的战友,更是生活中的好伙伴。感谢她们的陪伴,让我能在遇到难点不知所措又心烦意乱的时候安慰我并且和我并肩作战。真的很庆幸可以遇到她们,没有她们,也没有这个系统的诞生。30 参考文献[1]张正礼.C#4.0程序设计与项目实战[M].北京:清华大学出版社.2012[2]王小科.C#项目开发案例全程实录(第二版)[M].北京:清华大学出版社.2011[3]张跃廷.Asp.Net数据库系统开发案例精选[M].北京:人民邮电出版社.2007[4]周峰.SQLServer中文版关系数据库基础与实践教程[M].北京:电子工业出版社.2006[5]李兰友.VisualC#.NET程序设计[M].北京:清华大学北方交通大学出版社.2005[6]闪四清.SQLServer实用简明教程(第三版)[M].北京:清华大学出版社.2008[7]孙涌.软件工程教程.北京:机械工业出版社.201030'