餐厅点餐系统_第1页
餐厅点餐系统_第2页
餐厅点餐系统_第3页
餐厅点餐系统_第4页
餐厅点餐系统_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西北工业大学网络教育学院毕业论文范本

西北工业大学网络教育学院毕业论文任务书一、题目:餐厅点餐系统毕业设计二、指导思想和目的要求:本论文从可行性分析、需求分析、详细设计、编码实现、系统测试五个方面入手,实现系统的完整设计。三、主要技术指标:需求:系统需要实现的功能用户:使用系统的操作员角色:拥有一组权限的用户C#:一种面向对象编程语言VS:VisualStudio2010开发工具的简称四、进度与要求:6月20日与导师沟通6月22日前确定论文题目、填写任务书6月24日至7月24日调研、起草、修改论文7月25日至8月15日二审定稿8月6日前填写《毕业论文中期调查表》8月15日至24日上交论文及电子版8月30日前上交论文纸制版9月17日至9月29日毕业答辩五、主要参考书及参考资料:[1]软件工程课程设计,吕云翔,机械工业出版社,2009年9月1日,1-132页[2]大话设计模式,程杰著,清华大学出版社,2007年12月1日,1-368页[3]面向对象技术与UML,刘振安董兰芳刘燕君,机械工业出版社,2007年4月学习中心:专业:软件工程学生:指导教师:摘要在深入研究中小餐饮企业工作流程的基础上,分析制约餐饮企业工作效率的各种因素,发现影响效率的主要因素是普遍使用手工登记菜谱的现象,本系统运用计算机系统来实现餐饮企业工作流的信息化管理,采用面向对象的开发方法以及C#语言,依靠Visualstudio2010作为开发工具,使用SqlServer2005网络数据库存储数据。实现了客户点餐、厨师配餐、收银管理、系统设置四大功能,解决餐饮企业中客户点餐速度慢、服务员登记不清晰、厨师配餐漏配、菜谱更新不及时且不直观、会员管理混乱的现象。

目录摘要 I第一章绪论 11.1现实背景和理论背景 11.2研究目的和意义 21.2.1目的 21.2.2意义 3第二章系统需求分析 41.引言 41.1编写目的 41.2项目背景 42.术语定义 53.参考资料 54.目前餐饮企业工作流程 55.所建议系统的工作流程 66.产品功能 77.软件需求描述 78.系统用例图 89.软件接口 9第三章系统设计 101.系统部署图设计 102.数据库设计 112.1命名规范 112.2安全设计 112.3概念设计 112.4物理设计 132.5函数设计 153.系统模块设计 164.系统架构设计 175.客户端系统目录结构 176.系统类图设计 187.主要模块设计 227.1登录模块设计 227.2点餐模块设计 24第四章系统实现 271:系统编码规范 271.1:类型的命名 271.2、方法和属性的命名 281.3、变量和常数 281.4、标签 291.5、名字空间 291.6、注释 302:模块功能实现 302.1登录模块实现 302.2点餐模块主要代码 312.3收银模块代码实现 332.4配餐模块代码实现 352.5.系统管理模块实现 35第五章系统测试 371简介 371.1编写目的 371.2项目背景 371.3系统简介 371.4术语和缩写词 381.5参考资料 382测试概要 382.1测试用例设计 382.2测试环境与配置 382.3测试方法(和工具) 393测试结果及缺陷分析 393.1测试执行情况与记录 39结论 45文献 46致谢 49第一章绪论1.1现实背景和理论背景1.1.1现实背景我国的餐饮市场经过30多年的改革开放及发展,可以说我国正迎来一个餐饮业大发展的时期,市场潜在力量巨大,远景很是广阔。根据中国烹饪协会发布的2009年度餐饮业发展报告显示,即便在经济遭受重创的2009年,全社会餐饮业零售额达依然到17998亿元,同比增长16.8%。其中,每月的零售额均超过1300亿元,增长率稳定在14.4%至21.6%。在各类消费性支出中增幅居前,仅次于交通和通信支出。并且预计2012年餐饮市场还将继续增长,营业额也将达到20000亿元。与此同时,我国餐饮业发展的质量和内涵也发生了重大变化。行业的经营领域和市场空间不断拓宽,经营档次和企业管理水平不断提高,经营业态日趋丰富,投资主体和消费需求多元化特点更加突出,网点数量和人员队伍继续扩大;餐饮市场更加繁荣,消费的个性化和特色化的趋势明显,追求健康营养和连锁规模发展成为主题。集团化、品牌化、产业化和国际化的发展步伐加快,餐饮现代化的进程不断推进。近几年来,中国餐饮业的发展一直保持强劲快速增长同时,也看到目前餐饮行业普遍存在的问题。餐饮企业的发展一直处于自我摸索、自我运作、自我积累和自我完善为主的状态,利润低、承载重、支撑小、发展难的特点突出。餐饮企业在产品标准化技术设备开发、连锁管理体系的建立、专业人才的培养、吸纳资本投入、理论指导和信息交流等方面的条件十分不足,存在着技术开发与设备配套难、管理与人才难、配送渠道与发展资金难、沟通交流与合作难等深层次因素的制约,行业平台和基础支持力量不强,对企业发展产生较大的影响。1.2研究目的和意义1.2.1目的在我们这个“食文化”高度发达的国度里,餐饮业毋庸置疑地成为第一大传统产业。然而,正是这历史悠久、规模庞大的产业,却也是信息化程度最慢和最低的产业之一。至今为止,绝大多数餐饮企业的经营方式仍然停留在“一张纸、一支笔、经理喊破嗓、员工跑断腿”的境地;而会计工作,也仍然是以一支笔或一个算盘,或最好的情况下一个计算器进行加减乘除,其本质仍然是以人脑计算为基础,不但工作量巨大,而且极易出错。笔者曾经见过生意极好的大排档,服务员进进出出地飞奔于户外桌台、大堂吧台和厨房之间,而经理则用计算器算得满头大汗的场景,蔚为壮观。且不说这种日复一日的重复、单调的劳动意义何在,单就消费计算方面的出错而引发的与客户之间的矛盾纠纷,就不可胜计。其实在人类文明已经进入电子信息的时代,绝大多数重复、单调、可程式化的工作都已经可以交由计算机来完成。面对复杂和庞大的计算任务,计算机在效率和准确度方面是人脑所不能望其项背的。作为传统产业的餐饮业,同其他很多传统产业一样,同样可以引入信息化改造。餐饮业的信息化改造内容,主要有:由传统的笔和纸点餐,改用电子点餐;由传统的人工计算、统计、管理,改用电脑进行计算、统计和管理;将现代的电子技术、无线技术、计算机技术和网络技术引入到餐饮行业中来,替代部分人工操作,加快餐饮企业的运转效率,提升餐饮企业的管理水平,使餐饮企业运作更规范、更科学、更高效。在餐饮企业的信息化改造当中,无线点餐(点菜)系统,成为其核心内容,也是餐饮企业进行信息化改造的必由之路。因此本论文研究的目的在于通过餐饮企业的信息化改造暨利用无线技术,替代传统的纸和笔进行电子点餐(点菜)操作,实现远距离地进行信息即时传递。当然,无线点餐(点菜)系统不只是可以进行点餐操作,同时通过配套的餐饮管理软件,还可以实现强大的统计和管理功能,使餐饮企业真正实现信息化。1.2.2意义能够有效地的提升餐饮企业的档次和管理水平,做到科学管理、科学决策、高效运转、降低成本,进行信息化是必由之路。而采用无线点餐(点菜)系统取代传统的手工点餐,采用餐饮管理软件取代传统的人工统计和粗放型管理又是信息化当中的核心内容。餐饮企业引进一套无线点餐(点菜)系统,成本大约在一万元左右(视配置情况而不同),大约相当于一个服务员一年的工资,但带来的便利性和管理水平的升级则是无与伦比的。无线点餐(点菜)系统所带来的运营效率的大幅度提高和人力成本的节约,远超其投资成本,对于餐饮企业信息化,可以说是不二的选择。

第二章系统需求分析2.1引言2.1.1编写目的本文档是餐饮点餐管理系统的项目需求说明书,对餐饮点餐管理系统的发展进行简要回顾,分析当前的业务流程,总结此类管理系统的基本特点以及总体功能,尽可能完整的概括提取出需求方的全部想法。本文档对项目开发人员、设计人员及系统实施人员具有很重要的指导意义。2.1.2项目背景项目名称:餐饮点餐管理系统;中国是举世闻名的美食大国,拥有五千年的饮食文化和巨大的餐饮市场,随着人民生活水平和生活方式的转变,餐饮业具有巨大的投资市场,被称为中国的黄金产业,但同样也应看到,餐饮业不仅面临着巨大的发展机遇,也面临着前所未有的挑战和考验。餐饮业的不断发展,在经营管理上也逐步向电子化迈进,通过电脑信息系统管理餐饮业的内部事务,使得作业更加简单化、高效。以财务为中心,减轻一线操作人员的劳动强度,节省营业人员的交班时间,加强财务审核管理。提供多种点菜、结算、统计报表功能,提供分厨房直接打印前台点菜数据。在餐饮经营中,传统的纸制作业流程无法满足现代客户在信息娱乐及服务安保等方面的要求。而此系统的使用,使餐厅管理者便捷的进行经营娱乐的管理,大大增加的各店成本控制及销售额2.2术语定义所谓”翻台率【1】”是指在某期间里,指餐桌座位坐满及餐桌空荡的速度。一个高翻台率意味更多用餐者吃了并且走了,而一个低的翻台率意味同样用餐者是在一段长时间里使用餐桌,或者餐桌座位是空的。2.3参考资料[1] 餐饮点餐管理系统项目开发计划_v1.002.4目前餐饮企业工作流程目前的中小餐饮企业采用最多的手工记账形式,其业务流程如图2.1所示客人点餐客人点餐服务员登记厨师加工处理客人点餐收银台服务员登记图2.1手工业务流程分析流程图简介:顾客到达餐厅有引领员引导到座位后,承上菜谱并登记客人所点食品,完毕后唱菜谱并由客人确认,征得客人同意后交给后台厨师及配餐人员,配餐人员根据大厅服务员提交的菜谱为客人配齐所有饮料、酒水、甜点等食物,厨师根据大厅服务员提供的菜谱按照先凉后热的顺序快速加工出美味可口的食物交友送餐人员及时送到指定的餐桌。客人用餐完毕后有服务员或者客户到收银处办理结算手续,客人如有会员卡的话,收银员应给予相应的优惠,结算完毕后有引领员送客人出餐厅,这样的工作方式当客流量增加的时候,必然会出现争抢菜谱,上错菜,漏上菜、忘记上菜以及计算失误等现象,轻则引起客户的不满,重则引起纠纷,因此有必要采用新的工作模式,来避免上述情况的发生。2.5所建议系统的工作流程基于传统餐饮企业手工操作所带来的种种弊端,一种新的利用计算机来管理信息的系统餐饮点餐管理系统也就应运而生,那么该系统的工作流程如图2.2所示图2.2自动化的点餐系统2.6产品功能根据所建议系统的业务流程图,分析出新系统的功能模块图如2.3所示图2.3功能模块图结合上述功能模块图,系统具有如下特点:2.7软件需求描述1.用户登陆:用户输入用户名及密码后,系统自动验证有效性及用户角色,根据用户拥有的角色自动进入不同的子系统2.客户点餐子系统:当客人落座后,服务员手持IPAD登陆点餐子系统后,首先输入相应的桌号,然后由客人根据不同的服务类别(特价、凉菜、热菜、汤、酒水、饮料)选择不同的食物及数量,系统根据不同的食物计算出总价格,方便客人控制总价格,如果输入错误系统提供删除的功能,最后提交到后厨配餐子系统中.3.配餐管理子系统:配餐员或者厨师根据最新的配餐信息,按照时间先后顺序配置食品,完成后提交给结算管理子系统中4.结算管理子系统:收银员根据服务员或者客人提供的桌号计算出总价格,客人如果提供会员卡或者会员号,系统自动验证卡号及会员身份并计算出相应的折扣及实付金额,根据相应的金额出具对应的发票5.系统管理子系统:经理登陆子系统后,上传菜谱,管理菜谱及特价。在此子系统中,还实现了会员及用户、留言、桌位的管理2.8系统用例图系统用例【9】图是按照场景的形式对系统的功能做清晰地设计,具体用例有:登陆用例图2.4所示,点餐用例图2.5所示,配餐用例图2.6所示,结账用例图2.7所示,管理用例图2.8所示图2.4登陆用例图2.5点餐用例图2.6配餐用例图2.7结算用例图2.8系统设置用例2.9软件接口Windows操作系统所提供的各种API【10】;第三章系统设计3.1系统部署图设计系统部署图是指系统的物理结构和软件结构在空间上的部署,本系统采用流行的C/S【11】结构,该结构是基于客户端与服务器的结构,原因是本系统的应用场景是中小规模的餐厅及餐馆,目前一期工程中不提供Web服务,仅限于企业内部办公室用,因此采用C/S结构是科学的也是合理的。具体结构见图3.1所示图3.1系统部署图上图中服务器是整个系统运行的基础,负责所有客户端的数据传输与存储,采用SqlServer2005服务器,网络传输采用的是WiFi(802.11)技术,客户端采用IPAD作为终端显示,但是目前需要安装虚拟Win7系统3.2数据库设计3.2.1命名规范1:数据库名称以db开头2:函数以F_开头3:数据库表以T_开头3.2.2安全设计1:创建数据库登录账号dining2:创建数据库db_dining的所有者用户Dining3:配置账号映射:dining-dining3.2.3概念设计经过对系统的需求分析,发现系统中有以下实体:如图3.23.8所示以及他们之间的关系图3.9所示图3.2用户实体图3.3意见实体图3.4会员实体图3.5餐单实体图3.6餐单明细实体图3.7菜谱实体图3.8E-R模型图3.2.4物理设计物理设计是数据库实体的物理实现,下面的图表分别对应概念设计中的每个实体。1:T_CAIPU表,图3.9所示图3.9菜谱表2:T_CanMingXi,图3.10所示图3.10餐单明细表3:T_CanDan,图3.11所示图3.11餐单表4:T_Member,图3.12所示图3.12会员表5:T_User,图3.13所示图3.13用户表6:T_YiJian,图3.14所示图3.14意见表3.2.5函数设计1:F_CaiJinEById,图3.15所示图3.15计算价格函数2:F_CaiMingById,图3.16所示图3.16查找菜名函数3:F_MemberLeavlByID,图3.17所示图3.17会员级别函数4:F_MemberNameByID,图3.18所示图3.18会员名称函数3.3系统模块设计在对系统需求分析的基础上一共设计了八大模块,分别是如下8个模块【11】。3.3.1系统登录模块在该模块中主要实现用户身份的验证以及角色的检查,根据用户身份的不同分别登陆到不同的子系统中。3.3.2系统点餐模块本模块是系统的主要模块,在该模块中主要实现菜肴以及酒水饮料的点餐等功能,根据食品的分类把界面分为特价、凉菜、热菜、汤类、酒水、饮料不同的区域以及点菜区域。3.3.3系统配餐模块本模块面向的对象主要是厨师以及酒水饮料配餐员,实现的功能是按照下餐的时间先后顺序显示订餐列表,厨师按照餐单的详细列表配置不同的食品及其他。每个餐单完成后系统提交到收银区。3.3.4系统收银模块本模块面向的对象主要是收银人员,实现的功能是分别显示配餐完毕后的餐单,客户就餐后提供桌号以及会员卡,系统自动计算出优惠金额以及实付金额,收款后系统自动更新数据库。3.3.5系统管理模块本模块面向的对象主要是经理管理人员,实现的功能是有会员管理,菜谱管理、用户管理功能3.3.4系统架构设计本系统采用流行的C/S结构,既客户端/服务器端结构,客户端是基于.NetFrameWork平台的应用程序,服务器端是基于SqlServer2005的数据库存储应用系统,采用面向对象【12】的开发语言C#【13】作为编程语言,使用Visualstudio2010作为开发工具以及应用流行的软件开发模型—瀑布模型【14】3.5客户端系统目录结构客户端目录结构按照模块的不同创建不同的文件目录,以便于文件的管理及今后的二次开发,截图如3.19所示图3.19系统目录目录结构描述:1:DianCan:客户点餐模块2:PeiCan:食品配餐模块3:JieZhang:收银结账模块4:Manage:系统管理模块5:Images:系统图片3.6系统类图设计根据系统中的实体,一共设计6个类,具体见下图3.20所示图3.20系统类结构图详细描述如下:1.T_CaiPu菜谱类,该类中的属性及方法结构如3.21所示图3.21菜谱类T_CaiPu类是用来描述系统中的菜谱实体,其中的属性有id(菜谱编号)、c_name(菜谱名称)、c_Price(菜价)、c_type(类别)、c_image(照片)、is_Tejia(是否特价)、isEnable(是否启用)2.T_User用户类,属性及方法如图3.22所示图3.22用户类T_user类用来描述系统使用者实体,其中的属性有id(记录编号)、userName(用户名)、userPwd(用户密码)、userRole(用户角色)、isEnable(是否启用)3.T_YiJian(意见类):该类的属性及方法如图3.23所示图3.23意见类T_YiJian类是用来描述客户意见的实体,其中的属性有id(意见编号)、HJ_YJ(环境意见)、FW_YJ(服务意见)、FC_YJ(饭菜意见)、KH_LY(客户留言)4.T_Member(会员类):该类的属性及方法如图3.24图3.24会员类T_Member类是用来描述客户级别的实体,其中的属性有id(会员编号)、member_Name(会员名称)、type_id(会员级别编号)、isEnable(是否启用)5.T_CanDan(餐单类):该类的属性及方法如图3.25图3.25餐单类T_CanDan类是用来描述客户菜单的实体类,其中的属性有id(菜单编号)、desk_HM(桌位号)、xf_je(消费金额)、member_id(会员编号)、isJieZhang(是否结账)、xf_date(消费日期)、state(配餐状态)6.T_Can_MingXi(餐单明细)类:该类的属性及方法如图3.26所示图3.26餐单明细类T_Can_MingXi类是用来描述菜单明细的实体,其中的属性有id(记录编号)、can_id(菜单编号)、cai_id(菜谱编号)、cai_SL(份数)、cai_JE(每类菜的金额)3.7主要模块设计3.7.1登录模块设计登陆模块的功能就是验证用户名及密码是否有效,如果有效则再判断角色编号值(1:服务员角色2:厨师角色3:收银员角色4:管理员角色),根据不同的角色打开不同的窗口,该模块实现的前置条件是设置正确的服务器地址以及服务器处于启动状态,输入输出数据如表3.27所示数据数据输出类型数据类型约束用户名输入字符串类型4-10位的字母组成密码输入字符串类型4-6位的数字组成表3.27登陆模块输入输出数据具体实现代码如下所示://用户名stringun=this.txt_UserName.Text.Trim();//密码stringpwd=this.txt_UserPwd.Text.Trim();//判断用户名及密码是否为空if(address==""||un==""||pwd=="")MessageBox.Show("用户名、密码、地址不能为空");else{//判断用户名是否是字母及长度在4--10位if(!Regex.IsMatch(un,"[a-zA-Z]{4,10}")){MessageBox.Show("不是字母或者长度不够");return;}elseif(!Regex.IsMatch(un,"[0-9]{4,6}")){MessageBox.Show("请输入4-6位的数字");return;}dc=Program.GetDc(address);//返回数据库中的最新更新//dc=Program.ChangeDc(dc.T_user);IQueryable<T_user>t_user=dc.T_user.Where(u=>u.userName==un&&u.userPwd==pwd);if(t_user!=null&&t_user.Count()==1){this.Hide();if(t_user.First().userRole==1){//打开点餐窗口MainMenumm=newMainMenu();mm.Show();}elseif(t_user.First().userRole==4){//打开管理员Manage.FrmManagefrmManage=newManage.FrmManage();frmManage.Show();}elseif(t_user.First().userRole==2){//打开厨师窗口PeiCan.FrmZuoCaifrmZuoCai=newPeiCan.FrmZuoCai();frmZuoCai.Show();}elseif(t_user.First().userRole==3){//打开结算窗口Jiezhang.FrmJieZhangfrm_JieZhang=newJiezhang.FrmJieZhang();frm_JieZhang.Show();}}elseMessageBox.Show("登录失败");3.7.2点餐模块设计点餐模块是系统中重要的模块,主要实现客户餐单的创建以及所点菜品的保存,该模块的实现思路是首先系统分类显示今日特价、凉菜、热菜、汤类、酒水、饮料,客人按照所需登记桌位,选择菜品及分数(默认1份),系统自动计算总金额,如果有误客人则可以删除某类菜品,最后点击提交保存到数据库。那么该模块实现的前提条件是用户以服务员身份登录到系统,且数据库中有相应的菜品信息以及一定数量的桌位。此模块的输入输出数据如表3.28所示数据数据输出类型数据类型约束菜名输出字符串类型长度小于50价格输出字符串类型长度小于50图片输出二进制类型桌号输入字符串类型长度小于50菜名编号输入数字份数输入数字表3.28点餐模块输入输出数据具体实现代码:

///<summary>///系统显示菜谱///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidMainMenu_Load(objectsender,EventArgse){dc=Program.dc;cur_z=newCursor("images/图标/z.cur");cur_y=newCursor("images/图标/you1.cur");tj_list=newList<Image>();lc_list=newList<Image>();rc_list=newList<Image>();t_list=newList<Image>();js_list=newList<Image>();yl_list=newList<Image>();LoadImage(-1,true);//默认显示特价if(tj_list.Count!=0)this.panelEx4.Style.BackgroundImage=tj_list[tj_index];//加载桌位号LoadDesk();}///<summary>///修改菜谱///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoiddgv_CanMingXi_CellContentClick(objectsender,DataGridViewCellEventArgse){if(dgv_CanMingXi.Columns[e.ColumnIndex].Name=="del"){//获得菜谱IDcai_id=this.dgv_CanMingXi.Rows[e.RowIndex].Cells["caiid"].Value.ToString();varmx=canDan.T_Can_MingXi.ElementAt(e.RowIndex);canDan.xf_je-=mx.cai_JE;canDan.T_Can_MingXi.RemoveAt(e.RowIndex);//重新绑定控件this.lbl_HJ.Text="合计:"+canDan.xf_je+"元";BindingList<T_Can_MingXi>canList=newBindingList<T_Can_MingXi>(canDan.T_Can_MingXi.ToList());this.dgv_CanMingXi.DataSource=canList;}}

第四章系统实现4.1系统编码规范系统编码实现采用目前流行的面向对象的编程语言—C#,因此为了今后的系统扩展及测试维护,所以按照微软统一发布的C#编码规范,具体内容如下:4.1.1类型的命名1.类名,以Class声明的类,都必须以名词或名词短语命名,体现类的作用。如:ClassIndicator当类是一个特性(Attribute)时,以Attribute结尾,当类是一个异常(Exception)时,以Exception结尾:ClassColorSetExceptionClassCauseExceptionAttribute当类只需有一个对象实例(全局对象,比如Application等),必须以Class结尾,如ClassScreenClassClassSystemClass。当类只用于作为其他类的基类,根据情况,以Base结尾:MustInheritClassIndicatorBase,如果定义的类是一个窗体,那么名字的后面必须加后缀Form,如果是Web窗体,必须加后缀Page:ClassPrintForm:InheritsForm'*Windows窗体ClassStartPage:InheritsPage'*Web窗体2.枚举和结构:同样必须以名词或名词短语命名。最好体现枚举或结构的特点,如:EnumColorButtons'以复数结尾,表明这是一个枚举StructureCustomerInfoRecord'以Record结尾,表明这是一个结构体3.委派类型:普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能:DelegateSubDataSeeker(ByValSeekStringAsString),用于事件处理的委派类型,必须以EventHandler结尾,如:DelegateSubDataChangedEventHandler(ByValSenderAsObject,ByValeAsDataChangedEventArgs)4.接口:与其他类型不同,接口必须要由I作为前缀,并用形容词命名,突出表现实现接口的类将具有什么能力:InterfaceISortable5.模块:模块不是类型,他的名称除了必须以名词命名外,必须加以后缀Module:ModuleSharedFunctionsModule,上述所有规则的共同特点是,每个组成名称的词语都必须是大写开头,禁止完全大写或小写的名称。4.1.2方法和属性的命名1.方法:无论是函数还是子程序,方法都必须以动词或动词短语命名。无需区分函数和子程序,也无需指明返回类型。SubOpen(ByValCommandStringAsString),FunctionSetCopyNumber(ByValCopyNumberAsInteger),参数需要指明ByVal还是ByRef,这一点写起来会让程序边长,但非常必要。如果没有特别情况,都使用ByVal。参数的命名方法,参考后面“变量的命名方法”。需要重载的方法,一般不写Overloads,根据需要编写重载的方法。2.属性:原则上,字段(Field)是不能公开的,要访问字段的值,一般使用属性。属性以简洁清晰的名词命名:PropertyConcentrationAsSingle,PropertyCustomerAsCustomerTypes3.事件:事件是特殊的属性,只能在事件处理上下文中使用。命名的原则一般是动词或动词的分词,通过时态表明事件发生的时间:EventClickAsClickEventHandler,EventColorChangedAsColorChangedEventHangler4.1.3变量和常数常数以表明常数意义的名词命名,一般不区分常数的类型:ConstDefaultConcentrationAsSingle=0.01,在严格要求的代码中,常数以c_开头,如c_DefaultConcentration,但最好不要用它,它会带来输入困难。普通类型的变量,只要用有意义的名字命名即可,不可使用简称和无意义的名称诸如A,x1等,下面给出了良好的例子:DimIndexAsIntegerDimNextMonthExpenditureAsDecimalDimCustomerNameAsString不能起太长的名字,应该尽量简洁,如下面的例子:DimVariableUsedToStoreSystemInformationAsString'*错误,太复杂了DimSystemInformationAsString'*正确,简单明了DimsysInfoAsString'*错误,过于简单特殊情况可以考虑一个字母的变量:DimgAsGraphic对于控件,应该指明控件的类型,方法是直接在变量后面加以类名:FriendWithEventsNextPageButtonAsButton'*按钮FriendWithEventsColorChoicerPanelAsPanel'*面版FriendWithEventsCardFileOpenDialogAsFileOpenDialog'*文件打开对话框等等,无需规定某种类型的变量的前缀,只需把类型写在后面就行了,试对比下列代码:btnCancel.Text="&Cancel"CancelButton.Text="&Cancel"显然后者更能使阅读者明白变量的类型是一个按钮。4.1.4标签标签就是用于Goto跳转的代码标识,由于Goto并不推荐使用,所以标签的使用也比较苛刻。标签必须全部大写,中间的空格用下划线_代替,而且应该以_开头,比如:_A_LABEL_EXAMPLE:如此定义标签是为了与其他代码元素充分区别。4.1.5名字空间通常,一个工程使用一个名字空间,通常不需要用Namespace语句,而是在工程选项的“RootNamespace”中指定,使用根名字空间可以使代码更加整齐,容易修改,这一点是VB十足的优点。名字空间的语法是:公司名.产品名[.组件名的复数]如:NamespaceNinputer.VirtualScreenNamespaceNinputer.CardEditor.CustomeControls随便起一个名字空间的名字绝对不是一个好主意,一定要遵守上述规定。4.1.6注释注释的规则繁多,这里仅提到其中一点:正常的注释以'*开头,单独的'只用来注释暂时不用的代码'*这是普通的注释

'*这段代码在调试正确后加入'IfUseHighSpeed(g)=TrueThen这样能够方便的采用代码注释工具控制代码的使用。4.2模块功能实现4.2.1登录模块实现登陆功能根据用户输入的用户名及密码与数据库中的信息进行比对,如果验证成功,则根据角色的不同进入不同的子系统,系统角色按照职位的不同划分为服务员、厨师、收银员、经理四个固定角色,每个角色的权限不同功能不一样。系统实现截图如4.1、4.2所示图4.1用户名密码为空验证截图图4.2验证密码位数截图4.2.2点餐模块主要代码点餐模块代码实现的思路是首先客人浏览菜谱选择不同的食品,系统先把该食品放入到购物车中,客户可以对放入购物车中的食品删除,不能重复点同一类的食品,对放入购物车中的食品系统自动计算出总价格,待确认无误后统一提交到数据库,系统实现截图如4.3—4.6所示图4.3查询空桌位图4.4热菜截图图4.5酒水截图图4.6菜单截图4.2.3收银模块代码实现收银模块实现的思路是根据会员编号系统自动计算出优惠金额及实付金额。具体代码如下。doubleyh=0;//获得会员编号mid=this.txt_Member_id.Text.Trim();if(xf_je==null||xf_je==""){MessageBox.Show("请选择餐单");}elseif(mid==""){MessageBox.Show("请输入会员编号");}else{//验证会员信息if(dc.T_Member.Count(m=>m.id.ToString()==mid)==0){MessageBox.Show("无此会员");}else{//显示会员信息this.lbl_Member_Info.Text="会员信息:"+dc.F_MemberNameByID(Convert.ToInt32(mid))+":"+dc.F_MemberLeavlNameByID(Convert.ToInt32(mid))+"--"+dc.F_MemberLeavlByID(Convert.ToInt32(mid))+"级";//计算优惠yh=Convert.ToInt32(xf_je)*(10-dc.F_MemberLeavlByID(Convert.ToInt32(mid)).Value)*0.1d;this.txt_YH.Text=String.Format("{0:C2}",yh);//计算实付金额this.txt_SF.Text=String.Format("{0:C2}",Convert.ToDouble(xf_je)-yh);isMember=true;//是会员}}系统实现截图如4.7所示图4.7客户结账截图4.2.4配餐模块代码实现配餐模块功能实现的思路主要是显示最新的餐单,并且显示出该餐单的详细内容,厨师或者配餐员配餐完毕后,系统修改惨淡的状态,并及时更新最新的餐单.4.2.5.系统管理模块实现系统管理模块主要实现菜谱、用户、桌位、留言、会员的添加、编辑、删除、查询功能,具体如图4.8-4.10所示图4.8系统管理截图图4.9编辑菜谱截图图4.10桌位管理截图

第五章系统测试5.1简介5.1.1编写目的本测试报告为餐饮管理项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合用户需求说明书。预期参考人员包括用户、测试人员、开发人员、项目管理者、质量管理人员和需要阅读本报告的高层经理。5.1.2项目背景随着多媒体触摸技术的不断发展,智能化的应用开始普及普通用户的生活。从自助查询终端到多媒体娱乐终端,到处可见平板触摸技术的踪影。在餐饮经营中,传统的纸制作业流程无法满足现代客户在信息娱乐及服务安保等方面的要求。而此系统的使用,使餐厅管理者便捷的进行经营娱乐的管理,大大增加的各店成本控制及销售额5.1.3系统简介针对各大餐饮企业深入了解与研究,根据餐饮企业的管理需求,研发了一套安装操作极为简单、性能稳定、成熟可靠的信息化产品,主要适用于不同规模的酒楼、饭店、餐厅、饮食中心、酒吧、咖啡厅、西餐厅、茶楼等餐饮企业,点餐系统利用软件的全自动信息化手段,实现点菜、配菜、收银的全部管理过程;完成点菜单计算机管理、点菜单前端收银台与各厨房的同步打印;实现菜单无纸化操作;后台经理用户管理、会员管理及菜谱管理等。除此之外,点餐系统还可以对客户资料进行有效的管理,存档和备查,杜绝酒楼“漏单”、“跑单”现象;帮助酒楼利用计算机强大的数据处理能力和流程优化能力,实现自动化管理,简化酒楼的工作流程,减少浪费及人为管理的疏漏现象,重新优化配置企业资源,把经营成本降低到最低5.1.4术语和缩写词无5.1.5参考资料1.餐饮点餐系统项目需求与设计、2.餐饮点餐系统项目测试计划、5.2测试概要5.2.1测试用例设计本次测试用例设计主要采用黑盒测试【15】方法,功能模块及集成测试采用的具体方法有等价类划分【16】、边界值划分、正交分解、因果图分析和错误猜测【17】。在系统测试时依据业务流程采用回归测试。5.2.2测试环境与配置测试服务器配置:服务器地址:操作系统:WindowsVISTACPU:Intel(R)Pentium(R)4CPU3.00HZ硬盘可用空间:160GB数据库:MicrosoftSQLServer2005测试对象:FengShaDuMIS.exe5.2.3测试方法(和工具)主要是黑盒测试,测试的重点集中在业务流程、数据提取和各功能模块间的接口。其中单元测试由开发人员直接完成;功能模块采用黑盒测试的常用方法;集成测试模块采用非渐增式测试,偏重系统的接口和数据提取方面;系统测试主要体现在业务流程的测试,主要采用回归测试【18】5.3测试结果及缺陷分析5.3.1测试执行情况与记录1.登录模块测试测试情况如图5.1所示图5.1登陆测试截图2.点餐模块此时情况如图5.2、5.3所示图5.2点餐主界面截图图5.3点菜测试截图3.配餐模块测试情况如图5.4所示图5.4厨师配餐测试截图4.收银模块测试图5.5所示图5.5收银模块测试截图5.系统管理模块测试图5.65.8所示图5.6菜谱管理测试图图5.7会员管理测试图图5.8用户管理测试截图6.留言管理测试图5.95.10所示图5.9客户留言测试截图图5.10留言统计截图

结论本文从瀑布模型开发过程的原理出发,在分析餐饮系统工作流程的基础上,讨论并建立了餐饮点餐系统的工作流模型,采用C#4.0+DotNetBar7.0+Ling+SqlServer2005实现了餐饮点餐信息管理系统,运用黑盒测试原理对该系统进行的单元测试及集成测试表明。该系统实现了:(1)客户点餐(2)厨师配餐(3)收银管理(4)系统设置。本系统的问题主要表现在菜谱的及时更新方面,如经理在营业期间对菜谱价格做了及时调整,客人在点餐的时候会遇到价格没有及时更新的情况,另外本系统在资金结算方面还不够人性化,如不支持银行卡结算,这些问题是本系统今后改进的方向。

文献[1]甘华蓉,餐饮管理与实务,北京,对外经济贸易大学出版社,2009年,109-120页Definition:Howfasttablesemptyandfillduringashift.Ahighturnoverratemeansmorepeoplehaveeatenandgone,whileaslowturnoverratemeansthesamepeoplehavebeenatthetableforalongtime,orthetableissittingempty[2]苗凤君,局域网技术与组网工程,北京,清华大学出版社,2010年,150-151页Thenameofapopularwirelessnetworkingtechnologythatusesradiowavestoprovidewirelesshigh-speedInternetandnetworkconnections.TheWi-FiAlliance,theorganizationthatownstheWi-Fi(registeredtrademark)termspecificallydefinesWi-Fiasany"wirelesslocalareanetwork(WLAN)productsthatarebasedontheInstituteofElectricalandElectronicsEngineers'(IEEE)802.11standards."[3]李大军,POS系统应用,北京,清华大学出版社,2004年,10-13页[4]武仁杰,Web程序设计,北京,中国铁道出版社,2009年,5-6页[5]徐士良,葛兵,计算机软件技术基础,北京,清华大学出版社,2010年,25-31页[6]彭爱华,刘晖,王盛麟,Windows7使用详解,北京,人民邮电出版社,2010年,2-3页[7]王小科,吕双,C#从入门到精通,北京,清华大学出版社,2008年5-10页[8]蒋瀚洋,李月军,庞娅娟,SQLServer2005数据库管理与开发教程,北京,人民邮电出版社,1-8页[9]刘振安,董兰芳,刘燕君,面向对象技术与UML,北京,机械工业出版社,2007年,24-26页[10]佩措尔德,Windows程序设计,北京,清华大学出版社,2010年,245-256页[11]陈明,软件工程学教程,北京,科学出版社,2006年,130-131页[12]张海藩,软件工程导论,北京,清华大学出版社,2003年,139页Programminglanguageshavetraditionallydividedtheworldintotwoparts--dataandoperationsondata.Dataisstaticandimmutable,exceptastheoperationsmaychangeit.Theproceduresandfunctionsthatoperateondatahavenolastingstateoftheirown;they'reusefulonlyintheirabilitytoaffectdata.Thisdivisionis,ofcourse,groundedinthewaycomputerswork,soit'snotonethatyoucaneasilyignoreorpushaside.Liketheequallypervasivedistinctionsbetweenmatterandenergyandbetweennounsandverbs,itformsthebackgroundagainstwhichwework.Atsomepoint,allprogrammers--evenobject-orientedprogrammers--mustlayoutthedatastructuresthattheirprogramswilluseanddefinethefunctionsthatwillactonthedata.WithaproceduralprogramminglanguagelikeC,that'saboutallthereistoit.Thelanguagemayoffervariouskindsofsupportfororganizingdataandfunctions,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论