收藏 分销(赏)

餐厅点餐系统.docx

上传人:胜**** 文档编号:883803 上传时间:2024-04-02 格式:DOCX 页数:57 大小:4.29MB 下载积分:11 金币
下载 相关 举报
餐厅点餐系统.docx_第1页
第1页 / 共57页
餐厅点餐系统.docx_第2页
第2页 / 共57页


点击查看更多>>
资源描述
西北工业大学网络教育学院 毕业论文范本 西北工业大学网络教育学院 毕业论文任务书 一、题目: 餐厅点餐系统毕业设计 二、指导思想和目的要求: 本论文从可行性分析、需求分析、详细设计、编码实现、系统测试五个方面入手,实现系统的完整设计。 三、主要技术指标: 需求:系统需要实现的功能 用户:使用系统的操作员 角色:拥有一组权限的用户 C#:一种面向对象编程语言 VS:Visual Studio 2010开发工具的简称 四、进度与要求: 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#语言,依靠Visual studio2010作为开发工具,使用Sql Server 2005网络数据库存储数据。实现了客户点餐、厨师配餐、收银管理、系统设置四大功能,解决餐饮企业中客户点餐速度慢、服务员登记不清晰、厨师配餐漏配、菜谱更新不及时且不直观、会员管理混乱的现象。 目 录 摘 要 I 第一章 绪论 1 1.1 现实背景和理论背景 1 1.2 研究目的和意义 2 1.2.1 目的 2 1.2.2意义 3 第二章 系统需求分析 4 1.引言 4 1.1编写目的 4 1.2项目背景 4 2.术语定义 5 3.参考资料 5 4.目前餐饮企业工作流程 5 5.所建议系统的工作流程 6 6.产品功能 7 7.软件需求描述 7 8.系统用例图 8 9.软件接口 9 第三章 系统设计 10 1.系统部署图设计 10 2.数据库设计 11 2.1命名规范 11 2.2安全设计 11 2.3概念设计 11 2.4物理设计 13 2.5函数设计 15 3.系统模块设计 16 4.系统架构设计 17 5.客户端系统目录结构 17 6.系统类图设计 18 7.主要模块设计 22 7.1登录模块设计 22 7.2点餐模块设计 24 第四章 系统实现 27 1:系统编码规范 27 1.1:类型的命名 27 1.2、方法和属性的命名 28 1.3、变量和常数 28 1.4、标签 29 1.5、名字空间 29 1.6、注释 30 2:模块功能实现 30 2.1登录模块实现 30 2.2点餐模块主要代码 31 2.3收银模块代码实现 33 2.4配餐模块代码实现 35 2.5.系统管理模块实现 35 第五章 系统测试 37 1 简介 37 1.1编写目的 37 1.2项目背景 37 1.3系统简介 37 1.4术语和缩写词 38 1.5参考资料 38 2 测试概要 38 2.1测试用例设计 38 2.2测试环境与配置 38 2.3测试方法(和工具) 39 3 测试结果及缺陷分析 39 3.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.00 2.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:创建数据库登录账号dining 2:创建数据库db_dining的所有者用户Dining 3:配置账号映射:dining-àdining 3.2.3概念设计 经过对系统的需求分析,发现系统中有以下实体:如图3.2---3.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结构,既客户端/服务器端结构,客户端是基于.Net FrameWork平台的应用程序,服务器端是基于Sql Server 2005的数据库存储应用系统,采用面向对象【12】的开发语言C#【13】作为编程语言,使用Visual studio 2010作为开发工具以及应用流行的软件开发模型—瀑布模型【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登陆模块输入输出数据 具体实现代码如下所示: //用户名 string un = this.txt_UserName.Text.Trim(); //密码 string pwd = 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; } else if (!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) {//打开点餐窗口 MainMenu mm = new MainMenu(); mm.Show(); } else if (t_user.First().userRole == 4) { //打开管理员 Manage.FrmManage frmManage = new Manage.FrmManage(); frmManage.Show(); } else if (t_user.First().userRole == 2) { //打开厨师窗口 PeiCan.FrmZuoCai frmZuoCai = new PeiCan.FrmZuoCai(); frmZuoCai.Show(); } else if (t_user.First().userRole ==3) { //打开结算窗口 Jiezhang.FrmJieZhang frm_JieZhang = new Jiezhang.FrmJieZhang(); frm_JieZhang.Show(); } } else MessageBox.Show("登录失败"); 3.7.2点餐模块设计 点餐模块是系统中重要的模块,主要实现客户餐单的创建以及所点菜品的保存,该模块的实现思路是首先系统分类显示今日特价、凉菜、热菜、汤类、酒水、饮料,客人按照所需登记桌位,选择菜品及分数(默认1份),系统自动计算总金额,如果有误客人则可以删除某类菜品,最后点击提交保存到数据库。那么该模块实现的前提条件是用户以服务员身份登录到系统,且数据库中有相应的菜品信息以及一定数量的桌位。此模块的输入输出数据如表3.28所示 数据 数据输出类型 数据类型 约束 菜名 输出 字符串类型 长度小于50 价格 输出 字符串类型 长度小于50 图片 输出 二进制类型 桌号 输入 字符串类型 长度小于50 菜名编号 输入 数字 份数 输入 数字 表3.28点餐模块输入输出数据 具体实现代码: /// <summary> /// 系统显示菜谱 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainMenu_Load(object sender, EventArgs e) { dc = Program.dc; cur_z = new Cursor("images/图标/z.cur"); cur_y = new Cursor("images/图标/you1.cur"); tj_list = new List<Image>(); lc_list = new List<Image>(); rc_list = new List<Image>(); t_list = new List<Image>(); js_list = new List<Image>(); yl_list = new List<Image>(); LoadImage(-1, true); //默认显示特价 if(tj_list.Count!=0) this.panelEx4.Style.BackgroundImage = tj_list[tj_index]; //加载桌位号 LoadDesk(); } /// <summary> /// 修改菜谱 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgv_CanMingXi_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (dgv_CanMingXi.Columns[e.ColumnIndex].Name == "del") { //获得菜谱ID cai_id = this.dgv_CanMingXi.Rows[e.RowIndex].Cells["caiid"].Value.ToString(); var mx = 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 = new BindingList<T_Can_MingXi>(canDan.T_Can_MingXi.ToList()); this.dgv_CanMingXi.DataSource = canList; } } 第四章 系统实现 4.1系统编码规范 系统编码实现采用目前流行的面向对象的编程语言—C#,因此为了今后的系统扩展及测试维护,所以按照微软统一发布的C#编码规范,具体内容如下: 4.1.1类型的命名 1.类名,以Class声明的类,都必须以名词或名词短语命名,体现类的作用。如:Class Indicator当类是一个特性(Attribute)时,以Attribute结尾,当类是一个异常(Exception)时,以Exception结尾:Class ColorSetException Class CauseExceptionAttribute 当类只需有一个对象实例(全局对象,比如Application等),必须以Class结尾,如 Class ScreenClass Class SystemClass。当类只用于作为其他类的基类,根据情况,以Base结尾:MustInherit Class IndicatorBase,如果定义的类是一个窗体,那么名字的后面必须加后缀Form,如果是Web窗体,必须加后缀Page:Class PrintForm : Inherits Form '* Windows窗体Class StartPage : Inherits Page '* Web窗体 2.枚举和结构:同样必须以名词或名词短语命名。最好体现枚举或结构的特点,如:Enum ColorButtons '以复数结尾,表明这是一个枚举Structure CustomerInfoRecord '以Record结尾,表明这是一个结构体 3.委派类型:普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能:Delegate Sub DataSeeker (ByVal SeekString As String),用于事件处理的委派类型,必须以EventHandler结尾,如:Delegate Sub DataChangedEventHandler (ByVal Sender As Object, ByVal e As DataChangedEventArgs) 4.接口:与其他类型不同,接口必须要由I作为前缀,并用形容词命名,突出表现实现接口的类将具有什么能力:Interface ISortable 5.模块:模块不是类型,他的名称除了必须以名词命名外,必须加以后缀Module:Module SharedFunctionsModule,上述所有规则的共同特点是,每个组成名称的词语都必须是大写开头,禁止完全大写或小写的名称。 4.1.2方法和属性的命名 1.方法:无论是函数还是子程序,方法都必须以动词或动词短语命名。无需区分函数和子程序,也无需指明返回类型。Sub Open(ByVal CommandString As String),Function SetCopyNumber(ByVal CopyNumber As Integer),参数需要指明ByVal还是ByRef,这一点写起来会让程序边长,但非常必要。如果没有特别情况,都使用ByVal。参数的命名方法,参考后面“变量的命名方法”。需要重载的方法,一般不写Overloads,根据需要编写重载的方法。 2.属性:原则上,字段(Field)是不能公开的,要访问字段的值,一般使用属性。属性以简洁清晰的名词命名:Property Concentration As Single,Property Customer As CustomerTypes 3.事件:事件是特殊的属性,只能在事件处理上下文中使用。命名的原则一般是动词或动词的分词,通过时态表明事件发生的时间:Event Click As ClickEventHandler,Event ColorChanged As ColorChangedEventHangler 4.1.3变量和常数 常数以表明常数意义的名词命名,一般不区分常数的类型:Const DefaultConcentration As Single = 0.01,在严格要求的代码中,常数以c_开头,如c_DefaultConcentration,但最好不要用它,它会带来输入困难。普通类型的变量,只要用有意义的名字命名即可,不可使用简称和无意义的名称诸如A,x1等,下面给出了良好的例子: Dim Index As Integer Dim NextMonthExpenditure As Decimal Dim CustomerName As String 不能起太长的名字,应该尽量简洁,如下面的例子: Dim VariableUsedToStoreSystemInformation As String '* 错误,太复杂了 Dim SystemInformation As String '* 正确,简单明了 Dim sysInfo As String '* 错误,过于简单 特殊情况可以考虑一个字母的变量: Dim g As Graphic 对于控件,应该指明控件的类型,方法是直接在变量后面加以类名: Friend WithEvents NextPageButton As Button '* 按钮 Friend WithEvents ColorChoicerPanel As Panel '* 面版 Friend WithEvents CardFileOpenDialog As FileOpenDialog '* 文件打开对话框 等等,无需规定某种类型的变量的前缀,只需把类型写在后面就行了,试对比下列代码: btnCancel.Text = "&Cancel" CancelButton.Text = "&Cancel" 显然后者更能使阅读者明白变量的类型是一个按钮。 4.1.4标签标签就是用于Goto跳转的代码标识,由于Goto并不推荐使用,所以标签的使用也比较苛刻。标签必须全部大写,中间的空格用下划线_代替,而且应该以_开头,比如:_A_LABEL_EXAMPLE:如此定义标签是为了与其他代码元素充分区别。 4.1.5名字空间 通常,一个工程使用一个名字空间,通常不需要用Namespace语句,而是在工程选项的“Root Namespace”中指定,使用根名字空间可以使代码更加整齐,容易修改,这一点是VB十足的优点。名字空间的语法是:公司名.产品名[.组件名的复数] 如:Namespace Ninputer.VirtualScreen Namespace Ninputer.CardEditor.CustomeControls 随便起一个名字空间的名字绝对不是一个好主意,一定要遵守上述规定。 4.1.6注释 注释的规则繁多,这里仅提到其中一点:正常的注释以'*开头,单独的'只用来注释暂时不用的代码 '* 这是普通的注释 '* 这段代码在调试正确后加入 'If UseHighSpeed(g) = True Then .... 这样能够方便的采用代码注释工具控制代码的使用。 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收银模块代码实现 收银模块实现的思路是根据会员编号系统自动计算出优惠金额及实付金额。具体代码如下。 double yh=0; //获得会员编号 mid = this.txt_Member_id.Text.Trim(); if (xf_je == null || xf_je == "") { MessageBox.Show("请选择餐单"); } else if ( 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.ToInt
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 酒店餐饮

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服