餐厅点餐系统毕业设计C#版_第1页
餐厅点餐系统毕业设计C#版_第2页
餐厅点餐系统毕业设计C#版_第3页
餐厅点餐系统毕业设计C#版_第4页
餐厅点餐系统毕业设计C#版_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

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

餐厅点餐系统的设计与实现202108孙飞显王保国软件工程郑州金水惠文餐厅点餐系统的设计与实现202108孙飞显王保国软件工程郑州金水惠文教育培训学校029909212西北工业大学网络教育学院毕业论文任务书题目:餐厅点餐系统的设计与实现指导思想和目的要求:指导思想:通过对餐厅点餐系统的设计与实现,培养该生深入实际,综合运用所学的根本理论、专业知识和根本技能,提高独立思考、分析问题、解决问题的能力和初步进行科学研究的能力;培养良好的思想品质和探求真理的科学精神,提高该生的综合素质。目的要求:通过毕业设计、撰写论文等环节,锻炼和提高学生独立分析、思考、解决问题及文档编写等能力。主要技术指标:语言表达简捷、明快、形象、生动、准确、科学;论文内容符合客观实际,能够令人信服;概念明确,判断恰当,推理连贯;论文的内容之间应有密切的联系,全篇论文形成统一的整体。论文字数:≥12000字。进度与要求:6月24日至7月24日调研、起草、修改初稿论文7月25日至8月15日二稿定稿8月6日前填写?毕业论文中期检查表?8月15日至24论文定稿并将电子版论文上交学习中心8月30日前将论文纸制版交予学习中心9月17日至9月29日毕业论文辩论主要参考书及参考资料:[1]甘华蓉,餐饮管理与实务,北京,对外经济贸易大学出版社,2021年,109-120页[2]苗凤君,局域网技术与组网工程,北京,清华大学出版社,2021年,150-151页[3]李大军,POS系统应用,北京,清华大学出版社,2004年,10-13页[4]武仁杰,Web程序设计,北京,中国铁道出版社,2021年,5-6页[5]徐士良,葛兵,计算机软件技术根底,北京,清华大学出版社,2021年,25-31页[6]彭爱华,刘晖,王盛麟,Windows7使用详解,北京,人民邮电出版社,2021年,2-3页[7]钱哨,李挥剑,李继哲,C#WinForm实践开发教程,北京,水利水电出版社,2021年,15-18页[8]蒋瀚洋,李月军,庞娅娟,SQLServer2005数据库管理与开发教程,北京,人民邮电出版社,1-8页[9]GradyBooch,IvarJacobson,James,Rumbaugh,TheUnifiedModelingLanguageUserGuide[M].Addison-Wesley,1998年,156页[10]佩措尔德,Windows程序设计,北京,清华大学出版社,2021年,245-256页[11]BertandMeyer,ObjectOrientedSoftwareConstruction[M].PrenticeHall,1998年,5页[12]JimArlow,IlaNeustadt,UMLandtheUnifiedProcess:PracticalObject-OrientedAnalysisandDesign[M].AddisonWesley,2002年,95页[13]王小科,吕双,C#从入门到精通,北京,清华大学出版社,2021年,3-4页[14]陆慧恩,软件工程,北京,人民邮电出版社,2007年,9-10页[15]孙涌、现代软件工程、北京,北京希望电子出版社,2002年,111页[16]邓良松,刘海岩,陆丽娜,软件工程,西安,西安电子科技大学出版社,2004年,56-57页[17]周苏,王文,软件工程学教程,北京,科学出版社,2002年,74-75页[18]王少峰,面向对象技术UML教程,北京,清华大学出版社,2004年,23-50页学习中心:郑州金水惠文教育培训学校班级:029909212专业:软件工程学生:王保国指导教师:孙飞显摘要在深入研究中小餐饮企业工作流程的根底上,分析制约餐饮企业工作效率的各种因素,发现影响效率的主要因素是普遍使用手工登记菜谱的现象,本系统运用计算机系统来实现餐饮企业工作流的信息化管理,采用面向对象的开发方法以及C#语言,依靠Visualstudio2021作为开发工具,使用SqlServer2005网络数据库存储数据。实现了客户点餐、厨师配餐、收银管理、系统设置四大功能,解决餐饮企业中客户点餐速度慢、效劳员登记不清晰、厨师配餐漏配、菜谱更新不及时且不直观、会员管理混乱的现象。关键词:餐厅点餐;面向对象开发方法;C#

目录摘要 I第一章绪论 11.1现实背景和理论背景 11.2研究目的和意义 21.2.1目的 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现实背景和理论背景现实背景我国的餐饮市场经过30多年的改革开放及开展,可以说我国正迎来一个餐饮业大开展的时期,市场潜在力量巨大,远景很是广阔。根据中国烹饪协会发布的2021年度餐饮业开展报告显示,即便在经济遭受重创的2021年,全社会餐饮业零售额达依然到17998亿元,同比增长16.8%。其中,每月的零售额均超过1300亿元,增长率稳定在14.4%至21.6%。在各类消费性支出中增幅居前,仅次于交通和通信支出。并且预计2021年餐饮市场还将继续增长,营业额也将到达20000亿元。与此同时,我国餐饮业开展的质量和内涵也发生了重大变化。行业的经营领域和市场空间不断拓宽,经营档次和企业管理水平不断提高,经营业态日趋丰富,投资主体和消费需求多元化特点更加突出,网点数量和人员队伍继续扩大;餐饮市场更加繁荣,消费的个性化和特色化的趋势明显,追求健康营养和连锁规模开展成为主题。集团化、品牌化、产业化和国际化的开展步伐加快,餐饮现代化的进程不断推进。近几年来,中国餐饮业的开展一直保持强劲快速增长同时,也看到目前餐饮行业普遍存在的问题。餐饮企业的开展一直处于自我摸索、自我运作、自我积累和自我完善为主的状态,利润低、承载重、支撑小、开展难的特点突出。餐饮企业在产品标准化技术设备开发、连锁管理体系的建立、专业人才的培养、吸纳资本投入、理论指导和信息交流等方面的条件十分缺乏,存在着技术开发与设备配套难、管理与人才难、配送渠道与开展资金难、沟通交流与合作难等深层次因素的制约,行业平台和根底支持力量不强,对企业开展产生较大的影响。1.2研究目的和意义1.2.1目的在我们这个“食文化〞高度兴旺的国度里,餐饮业毋庸置疑地成为第一大传统产业。然而,正是这历史悠久、规模庞大的产业,却也是信息化程度最慢和最低的产业之一。至今为止,绝大多数餐饮企业的经营方式仍然停留在“一张纸、一支笔、经理喊破嗓、员工跑断腿〞的境地;而会计工作,也仍然是以一支笔或一个算盘,或最好的情况下一个计算器进行加减乘除,其本质仍然是以人脑计算为根底,不但工作量巨大,而且极易出错。笔者曾经见过生意极好的大排档,效劳员进进出出地飞奔于户外桌台、大堂吧台和厨房之间,而经理那么用计算器算得满头大汗的场景,蔚为壮观。且不说这种日复一日的重复、单调的劳动意义何在,单就消费计算方面的出错而引发的与客户之间的矛盾纠纷,就不可胜计。其实在人类文明已经进入电子信息的时代,绝大多数重复、单调、可程式化的工作都已经可以交由计算机来完成。面对复杂和庞大的计算任务,计算机在效率和准确度方面是人脑所不能望其项背的。作为传统产业的餐饮业,同其他很多传统产业一样,同样可以引入信息化改造。餐饮业的信息化改造内容,主要有:由传统的笔和纸点餐,改用电子点餐;由传统的人工计算、统计、管理,改用电脑进行计算、统计和管理;将现代的电子技术、无线技术、计算机技术和网络技术引入到餐饮行业中来,替代局部人工操作,加快餐饮企业的运转效率,提升餐饮企业的管理水平,使餐饮企业运作更标准、更科学、更高效。在餐饮企业的信息化改造当中,无线点餐〔点菜〕系统,成为其核心内容,也是餐饮企业进行信息化改造的必由之路。因此本论文研究的目的在于通过餐饮企业的信息化改造暨利用无线技术,替代传统的纸和笔进行电子点餐〔点菜〕操作,实现远距离地进行信息即时传递。当然,无线点餐〔点菜〕系统不只是可以进行点餐操作,同时通过配套的餐饮管理软件,还可以实现强大的统计和管理功能,使餐饮企业真正实现信息化。1.2.2意义能够有效地的提升餐饮企业的档次和管理水平,做到科学管理、科学决策、高效运转、降低本钱,进行信息化是必由之路。而采用无线点餐〔点菜〕系统取代传统的手工点餐,采用餐饮管理软件取代传统的人工统计和粗放型管理又是信息化当中的核心内容。餐饮企业引进一套无线点餐〔点菜〕系统,本钱大约在一万元左右〔视配置情况而不同〕,大约相当于一个效劳员一年的工资,但带来的便利性和管理水平的升级那么是无与伦比的。无线点餐〔点菜〕系统所带来的运营效率的大幅度提高和人力本钱的节约,远超其投资本钱,对于餐饮企业信息化,可以说是不二的选择。

第二章系统需求分析2.1引言2.1.1编写目的本文档是餐厅点餐系统的工程需求说明书,对餐厅点餐系统的进行简要回忆,分析当前的业务流程,总结此类管理系统的根本特点以及总体功能,尽可能完整的概括和提取出全部需求。本文档对工程开发人员、设计人员及系统实施人员具有很重要的指导意义。2.1.2工程背景中国是举世闻名的美食大国,拥有五千年的饮食文化和巨大的餐饮市场,随着人民生活水平和生活方式的转变,餐饮业具有巨大的投资市场,被称为中国的黄金产业,但同样也应看到,餐饮业不仅面临着巨大的开展机遇,也面临着前所未有的挑战和考验。餐饮业的不断开展,在经营管理上也逐步向电子化迈进,通过电脑信息系统管理餐饮业的内部事务,使得作业更加简单化、高效。以财务为中心,减轻一线操作人员的劳动强度,节省营业人员的交班时间,加强财务审核管理。提供多种点菜、结算、统计报表功能,提供分厨房直接打印前台点菜数据。在餐饮经营中,传统的纸制作业流程无法满足现代客户在信息娱乐及效劳安保等方面的要求。而此系统的使用,使餐厅管理者便捷的进行经营娱乐的管理,大大增加的各店本钱控制及销售额2.2术语定义所谓〞翻台率【1】〞是指在某期间里,指餐桌座位坐满及餐桌空荡的速度。一个高翻台率意味更多用餐者吃了并且走了,而一个低的翻台率意味同样用餐者是在一段长时间里使用餐桌,或者餐桌座位是空的。2.3目前餐饮企业工作流程目前的中小餐饮企业采用最多的手工记账形式,其业务流程如图2.1所示客人点餐客人点餐效劳员登记厨师加工处理客人点餐收银台效劳员登记图2.1手工业务流程分析流程图简介:顾客到达餐厅有引领员引导到座位后,承上菜谱并登记客人所点食品,完毕后唱菜谱并由客人确认,征得客人同意后交给后台厨师及配餐人员,配餐人员根据大厅效劳员提交的菜谱为客人配齐所有饮料、酒水、甜点等食物,厨师根据大厅效劳员提供的菜谱按照先凉后热的顺序快速加工出美味可口的食物交友送餐人员及时送到指定的餐桌。客人用餐完毕后有效劳员或者客户到收银处办理结算手续,客人如有会员卡的话,收银员应给予相应的优惠,结算完毕后有引领员送客人出餐厅,这样的工作方式当客流量增加的时候,必然会出现争抢菜谱,上错菜,漏上菜、忘记上菜以及计算失误等现象,轻那么引起客户的不满,重那么引起纠纷,因此有必要采用新的工作模式,来防止上述情况的发生。2.5所建议系统的工作流程基于传统餐饮企业手工操作所带来的种种弊端,一种新的利用计算机来管理信息的系统餐厅点餐系统也就应运而生,那么该系统的工作流程如图2.2所示图2.2自动化的点餐系统2.6系统功能模块根据所建议系统的业务流程图,分析出新系统的功能模块图如2.3所示用户登录用户登录点餐管理配餐管理结算管理系统管理图2.3功能模块图结合上述功能模块图,系统需求描述如下:2.7软件需求分析1.用户登陆系统必须提供用户名及密码、角色的验证功能,并且根据不同的角色翻开不同的子系统。2.客户点餐客户根据不同的效劳类别〔特价、凉菜、热菜、汤、酒水、饮料〕选择不同的食物及数量,系统根据不同的食物计算出总价格,方便客人控制总价格,如果输入错误系统提供删除的功能。.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.8实体-关系图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】作为编程语言,使用Visualstudio2021作为开发工具以及应用流行的软件开发模型—瀑布模型【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.VirtualScreen随便起一个名字空间的名字绝对不是一个好主意,一定要遵守上述规定。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.2测试方法本次测试用例设计主要采用黑盒测试【15】方法,功能模块及集成测试采用的具体方法有等价类划分【16】、边界值划分、正交分解、因果图分析和错误猜想【17】。在系统测试时依据业务流程采用回归测试【18】。5.3测试环境效劳器地址:操作系统:WindowsVISTACPU:Intel(R)Pentium(R)4CPU3.00HZ硬盘可用空间:160GB数据库:MicrosoftSQLServer2005测试对象:FengShaDuMIS.exe5.4测试结果系统经过大量的黑盒测试,在功能及性能上到达设计要求,下面是测试后的系统截图。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]甘华蓉,餐饮管理与实务,北京,对外经济贸易大学出版社,2021年,109-120页[2]苗凤君,局域网技术与组网工程,北京,清华大学出版社,2021年,150-151页[3]李

温馨提示

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

评论

0/150

提交评论