版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1研究背景随着各种智能设施的出现,数字时代进入了蓬勃发展的时期。现代科学技术的快速发展以及广泛的应用,从而人们的工作和生活可以更加方便快捷。在商场、超市、金融行业、交通行业等等随处可见智能设施的影子。应用这些设施,不仅能够减轻人们的压力、降低成本,还能提升效率,促进发展。在餐饮业,人们把计算机技术与餐厅相结合,研发出了自助点餐的智能设施,让餐厅也能跟上时代的脚步。在国外,日本的大多数连锁餐厅也采用了自助点餐的方式。那些自助点餐机被餐馆摆放在店内或者挂在墙上,一部分放在店外,方便用户点餐,为用户提供了更多的选择空间。多台自助点餐机陈列在一起,可供用户选择的菜品丰富多样,能满足大多数人的需求。在美国,大多数餐厅定制配备了自助点餐机。在餐厅里,用户使用机器进行操作。从点餐、买单、取餐,都由机器与用户交互完成,节约了人力、物力,推动了餐饮的进一步发展。目前国内的餐厅开展"互联网+"的建设,纷纷投入到定制研发移动端应用程序,从而完成餐厅的升级改造。麦当劳、肯德基通过引进应用自助点餐系统,使得餐厅焕然一新,变成了“未来餐厅”。点餐、买单、取餐都由客户自主完成,极大地提升店内用餐体验。在"未来餐厅"中,用户能进行自助点餐,菜单页面一目了然,操作既简单又轻松便捷。并且点餐页面支持页面自主调整,这样儿童也可以方便地点餐。而且国内的德克士也加入了此行列,餐厅内机器使用自助点餐系统,让原本需要3-4人完成的点餐与收银直接由系统代为完成,提高了餐厅整体的运营效率。类似的点餐系统在市场上也存在不少,比方:钱林、方派、食为天等品牌。而这些系统也趋于完善。能够提供多样的点餐方式,支持多种点餐方式,贴近生活,为用户着想;将用户点餐、前台收银、后台消单、餐厅叫号等方式融为一体,更加的便利;在支付方面,支持市面上各种方式,例如:微信支付宝、银行卡现金等,满足餐饮行业线上线下多种需求。而在中小型餐饮店基本上都是人工式管理,集中表现为客人点餐,将菜品记录在单据上,服务员在旁边等候并且回答客人提出的相关问题,最后再集中上传。这种模式具有不透明性,同时用户无法了解到关于菜品的详细信息。或许关于这些信息可以由服务员代为询问了解,再传达给用户,但这无疑又增加了服务员的负担,导致传达信息的不全面。在用餐的高峰时段,用户流动频繁,服务员会忙不过来,这样做不但会耽误客人的时间,也会使服务员造成某些细节上的错误,导致一些不必要的麻烦,降低了餐馆在用户心中的好感度,造成用户的流失,带来消极影响。所以对于餐馆和用户来说一个好的点餐系统是很有必要的。本设计从完善方面入手,在能够处理以上问题的同时,加入一个特色菜品区,里面包含近期的热门菜品和推荐菜品,让用户能有更好的选择,为用户带来良好的体验。1.2研究目的和意义本次毕业设计采用B/S结构,本系统主要是为针对当下餐饮业以手工方式操作的一些弊端,如人工收银,增加企业开支;管理者对餐厅的营业状况不了解,无法做到实时更新;订单混乱,上菜慢;人工收银高峰期排队时间长,易流失客户等问题。针对以上传统手工管理方法的不足,设计了自助点餐系统。通过它,餐馆能够提高工作效率,能够改善服务质量,同时管理者也能更好的管理餐馆,降低成本。目的:自助点餐能够给用户带来良好的点餐体验,点餐、下单、结账均由机器完成,快捷便利。在人力投入方面,有了自助点餐系统,商家就能节省了人力资源的浪费,降低成本,提高服务质量;在菜品管理方面,店家可以通过后台进入到餐品管理模块,对现有餐品的删除以及新菜品的添加,更方便;结账方面,下单结账一体化,商家可随时查看订单明细,了解情况,能有效减少用户等待时间,提高上菜速度。现代信息技术发展迅速,越来越需要将科学技术应用于餐厅,研发出自助点餐系统,提升服务品质。计算机可以代替人工完成大量的工作,还能够记录店家运营信息,让店家对餐馆的营运状况了如指掌,从而降低成本,增加收入。如此才能使得餐厅进入了系统化、科技化的时期,跟紧时代步伐。意义:餐厅引进自助点餐系统,是对餐厅的一次重大的改革,具有深远的影响。一方面多数操作由机器完成,省时省心,提升店面形象,提高效率,减少人力资源的投入;另一方面,系统的操作界面简洁,绝大多数的操作为点击相关内容,简单方便。用户轻易上手,并且噪音小,能够为用户营造一个安静舒适的用餐环境。再者,店家能登录后台进行菜品菜类别管理,商家管理,订单管理等操作,做到掌控全局。1.3本文主要研究工作为了能够让用户进行自主点餐,同时使餐厅的管理更加方便,本次设计采用JSP技术设计出了基于B/S模式的自助点餐系统。以下是本次设计的主要功能:(1)如何让商家实现餐厅的管理功能本系统分为前后台,前台主要是用户点餐界面,后台是管理员界面。餐厅管理员进行登录进入后台,首先能够进行密码修改,为了账户安全。其次是对菜系的管理,管理员可以添加新的菜系,也可以删除旧的、不需要的菜系。还有就是对菜品的管理,对新的菜品进行添加,添加内容包括:名称、介绍、图片、价格,非常方便,又能对菜品进行删除,做到实时调整;再者是对商家人员的管理,包括姓名、年龄等信息,必要时可进行添加或删除操作;最后是订单的管理,订单中显示出用户点的餐品、数量、桌号、是否结账、下订单的时间,还保存了近期内所有的订单,方便查看。(2)用户如何自助点餐用户进入前台页面后,页面中显示出了,菜品的图片、名称、价格,一目了然,点击餐品名称,就可以进入餐品的详细介绍,便于用户了解菜品的信息。如果需要点餐,用户首先需要进行桌位的预订,然后去点餐,用户可以在系统首页或者餐品类别中点餐,点餐完成后,提交,系统自动生成订单,并提交到后台。用户在我的点餐界面可以输入订单编号进行订单明细查询。非常方便(3)如何提高系统的体验性在设计和开发过程中,系统采用了B/S模式。分工明确,各模块之间互不干扰,降低了耦合性。同时,餐厅只需要对服务器进行安装与维护,成本低,用户在浏览器上进行浏览,操作简便,耗时少。另外,系统使用MYSQL数据库管理数据,降低了数据丢失的风险,提高了数据的处理速度。还有运用CSS技术进行样式的管理,让界面更加简洁友好,给用户一个良好的体验。
2相关技术及工具介绍2.1B/S结构介绍伴随着互联网技术的兴起,B/S模式也跟进了时代的步伐,来到人们面前。它通过改进和提升C/S模式,让开发变得简单。B/S模式,即浏览器/服务器结构,这种模式结构简单,只需要店家安装维护一个服务器,而客户端采用浏览器进行运行,操作简单容易,便于上手。在技术层面,B/S利用了浏览器技术,结合当下多种技术,从而进行网络开发,它兴起于WEB之后。并且这种模式的核心功能集中于服务器中,极大地简化了系统的开发,易于维护与管理,所以本系统采用这种模式来进行开发。2.2MySQL数据库数据的存放要合理,要便于管理,还得是开源的软件。所以说非MYSQL莫属。它是一种开放源代码的数据库管理系统,面向大众推广,资源开放。MYSQL通常用结构化查询语言进行数据的维护与管理。MYSQL的标志是一个小海豚,这是其创始人通过海选来选定的。由于MYSQL是一个开源软件,所以任何人都可对其进行下载来进行个性化修改。在处理数据方面,MYSQL极为快速,而且还支持多线程操作,还能适应多种操作环境,这些优点使得它备受人们关注。所以人们青睐MYSQL来管理数据。还有MYSQL的官网能够为大家提供各种最新的技术信息。MYSQL能够存储大量数据,将数据进行结构化处理。它的扩展性和适应性较强,它可以建立保存一张表,还可以对大量的数据进行管理和保存,现代的数据量庞大,它能够把数据进行分表处理,用表格来处理查询数据,直观明了。另外,MySQL能适应各种操作系统,为计算机管理数据带来极大地便利。2.3JavaEE语言所谓的JAVAEE模型其实就是一种比传统的Internet应用程序模型相比有诸多优点的新的模式,它是sun公司在美国发布的。如果我们想要完成对企业解决方案村子的诸多复杂的结构问题,我们就可以运用Java2平台使用JavaEE模型有简化问题。JAVAEE于1995年在美国发布,到目前为止已经发展了18年。Java就从网页创建的语言变成了一个体系规划十分认真的开发软件。截止到今日,Java2软件开发一共有不同的3种开发平台,它们就是Java2PlatformMicroEdition,J2ME、Java2PlatformStandardEdition,J2SE、以及Java2PlatformEnterpriseEdition,JAVAEE。由于JAVAEE技术拥有优秀的后期维护扩展性以及高安全等诸多优势,这样由于C/S模型所具有的维护扩展性不好、以及不具有高安全性等很多的缺点就能够很好的得到解决。2.4MVC模式MVC是一种设计模式,最开始是存在于桌面程序中。它分为三个层面,即业务模型、用户视图、控制器。MVC利用模块化的方式,将功能和显示页面进行分离,有利于系统的维护,还提高了安全性,使得系统有很好的扩展性。正因为这些特性,在本次设计中才会考虑到使用这种模式。MVC的模块化使得WEB内部程序分工明确,各模块之间相互促进。首先,核心部分就是业务模型层,用来处理逻辑、记录数据;用户视图层进行数据的显示,用户可以看到并且能进行交流互动的界面,用Jsp实现。控制器主要是进行数据的输入,将数据写入数据库同时进行编辑,调用模型和视图去完成客户的某些需求。三个方面相互连结,相互支撑,分工明确,提升了效率。MVC的优点:1)低耦合性2)高重用性和可适用性3)较低的生命周期成本4)快速的部署5)可维护性6)有利于软件系统化管理
3系统需求分析3.1可行性分析在开发项目之前,我们都需要对项目做是深入分析,预判可能出现的各种情况,综合多方面的意见与建议。这样做不仅能降低开发过程中的风险,降低成本,还能避免资源的浪费。以下内容是分析情况:3.1.1技术可行性首先进行系统开发的编程工具为myeclipse,它插件多且功能齐全,兼顾各个方面;存储数据方面采用的是mysql数据库,本设计的数据库数据量不多,需要及时的更新保存。而且它还支持各种系统环境,扩展性良好,安全性高。语言方面,采用的是Java语言。Java语言是基础性质的语言,适应性以及扩展性好,简单易懂。而且在大学学习期间,学习过Java语言,有一定的基础。还学习过软件工程,了解过jsp的相关知识,同时自己会根据课本的程序进行相关练习,具备了一定的分析与设计的能力。因此,本系统在技术上具有可行性。3.1.2经济可行性在开发工具方面,选择安装了myeclipse,网上有免费的文件。软件本身插件多,功能齐全。数据存储采用mysql数据库,它是免费的软件,开发成本小,收益高。综上所述,在经济方面是可行的。3.1.3操作可行性首先前台主页显示信息完善,所用到的操作不过是鼠标点击,所有操作极为简单。后台页面,添加信息量不大,添加完成后点击提交后,系统会自动提交到相关管理页面,降低了操作量。各个管理界面数据显示清晰,有条理,信息全面。时间方面,采用日历计算方法,从年月日到时分秒,精确;界面干净简洁,可视性好,给用户良好的视觉享受。所以在操作方面没有太大问题。3.1.4法律可行性本次设计具有唯一性,而且是对生活带来便利性的研究。对于开发环境和数据库,只是简单地使用,并不会涉及到敏感的问题。并且软件开源,不存在侵权与否。因此法律方面可行。综上,开发一个自助点餐系统能降低各方面成本,提高效率,上菜速度快等优点。所以是可行的。3.2系统用例图s3.2.1管理员用例图系统管理员是系统的核心用户,涉及到对关键功能的管理,能够及时动态的掌握餐厅点餐系统的各项情况。图3.1管理员用例图3.2.2用户用例图用户可以在线浏览餐品信息,按照类别查看餐品,通过预订菜品来进行点餐操作,进一步进行下单处理。图3.2用户用例图3.2.3商家用例图图3.3商家用例图3.3功能模块图图3.4系统管理员模块图图3.5用户功能模块图
4系统总体设计4.1设计的基本思想设计思想遵循以下几点:(1)开发模式选用B/S结构,前台后台分工明确,画面简洁,符合大多数人的习惯。(2)在设计理念方面是以对象为基础。将对象进行分类,分别封装数据及可调用的方法,这样做方便数据管理,方便调用。另外,这样做能够让编程思路更加清晰简洁,提高了开发效率。(3)采用模块化设计。系统采用的模块化设计就是将细节进行封装,提供接口,彼此之间通过接口联系。每个模块互不影响,分工明确。(4)本系统操作界面简单友好,操作方便,用户只需要鼠标点击即可,点餐顺序易懂,从预订菜品到点餐再到下订单,通俗。(5)用到的开发工具和数据库都有较好的数据处理能力,页面响应的时间短反应快。(6)在符合基本设计的前提下,对某些地方进行改进和补充,让系统趋于全面,如此才能更好的满足客户需求。既能突出重点,还能兼顾需求。4.2设计原则(1)实用性原则这是最基本的原则,也是最重要的,因为这关系到软件的本身。每一个完成的系统都应该有其实际的意义,最重要的任务就是能够处理解决客户的问题,为用户提供需要的服务。如此,这个系统才具有实用性。(2)适应性和可扩展性本系统具有良好的适应性,因为使用JavaEEt语言进行开发。这种语言是一种脚本语言,其内部带有支持类型,能够支持多种操作环境、系统平台。这里体现出适应性。另外,系统使用MVC模式进行设计开发,将系统分为若干个模块,每个模块之间既有联系又单独存在。纵使一个模块出现错误,对其他模块的影响也会很小。接口间的设计可调整,在进行新功能添加时能进行对接。(3)可靠性原则用户由于操作不当而出现错误时,系统需要弹出提示框告诉用户正确的做法是什么,提示内容应简单明了。一时的错误,系统能够进行恢复(4)安全性原则系统需要采取全面的数据保护措施。在管理员登录时,需要输入正确地账号密码,从而进行身份确认.数据库能够对关键的数据或程序进行备份处理,减少损失。(5)可维护性原则系统采用MVC的设计模式,采用模块化设计,各模块之间互不影响。一个模块的变动,不会干扰到其他模块的功能。维护时只需要对出问题的模块进行维护,降低了维护成本,易维护。4.3界面要求界面设计通常在评价软件中占得很大的比重。良好的界面设计能为用户带来良好的体验,提升回头率,尤其是好的用户界面,给人带来良好的视觉享受。JSP作为脚本语言,能够为服务器提供一个用于访问浏览器的接口。更加方便的创建动态网页。(1)输出设计它的任务是通过内部的管理系统处理把客户需要的信息显示出来。系统所输出的信息是否为客户所需,决定了系统的使用效果和用户体验。在系统设计过程中,一个不可或缺的因素就是输出设计。它和用户相关联,用户能够直接接触到的内容,为系统指明发展的方向,也是用户评价系统的依据。所以说,本项目需要将输出设计做好,体现给用户的界面是方便服务的,能将信息及时的传达出来;另一方面,输出设计要与其他模块间有相互的联系性,避免顾此失彼。输出的设计原则被认为反映了不同的管理需求,也不是为了用户的需求而简洁全面,不需要向用户提供(2)输入设计输入设计连接着系统和用户。在进行输入设计时,参照设计分析和系统业务分析内容的相关要求,降低操作难度,减少输入量,让用户有一个良好的体验。同时还能保障系统后台在处理数据时产生正确的信息,不会导致系统的崩溃。输入操作简单化就会提高系统的计算速度,从而提高页面响应速度。输入设计的原则有如下几点:①控制输入量,尽量降低输入量。尽可能的利用计算来帮助用户完成。②为用户提供简单有效的输入方法,提高效率。③简化输入过程,避免额外的步骤。4.4系统的架构设计自助订餐系统的技术是采用JSP技术,内部程序的处理采用MVC模式,而在外部的结构方面采用的是B/S模式。如下图所示:图4.1系统架构自助点餐系统有三个层面构成,分别是:用户界面(浏览器)、逻辑处理(服务器)、数据的查询访问(数据库)。用户的界面主要是与用户进行交互,用户通过界面发出请求,通过HTTP协议传送给服务器,然后服务器把请求的结果展现在页面上。本系统采用JSP技术,其中的用户界面由视图层来控制展示。视图层的界面是由HTML元素组成的,它是一种网页,不过仅是作为把数据进行输出然后用户进行某些操作的方式。逻辑处理主要是接收请求,并且调用内部模型和视图进行数据处理,来完成用户的需求。本次系统的设计采用的MVC框架模式,这种模式分为三个层次,即:模型层、视图层、控制器。其中逻辑处理主要是控制器。控制器从视图层接收用户请求,然后进行业务的逻辑处理,然后向模型发送数据,模型根据数据内容在数据库中进行访问查询操作,最终把相关数据显示在用户界面上。这种模式实现了程序的分层开发,利于维护;提高了各个,利于标准化开发;采用模块化设计,分工变得明确,降低了工作量。系统的存储架构图如图4.2所示。图4.2系统的存储架构图4.5数据库设计与实现项目中最为至关重要的部分就是数据库的设计,它的好用与否决定了后续开发的顺利进行。设计一个既合理又实用的数据库,让数据的开发变得简单容易。首先需要进行数据库的设计,建立类型表,然后是实施,编写数据库代码。4.5.1数据库设计首先,我们通过对各个概念进行分析进行相关的设计,找出各个实体之间的关系,进行总结分析。根据分析情况画出了ER图,如下图所示,图4.3E-R图从图中我们可以知道各个实体数据,便于把概念设计转化为逻辑设计,进行规范化处理,从而形成数据库中的信息表。以下会分别给出各个实体的逻辑结构:管理员(登录账号,登录密码)菜品信息(id,桌号,状态,可坐人数)商家人员(id,姓名、性别、年龄、登录账号、登录密码)说明:此账户和密码是商家登录系统只是用来管理订单,和管理员的不一样。餐品类别(id,餐品类别名称)餐品信息(id,餐品名称,介绍,图片,价格)订单信息(id,订单编号,下单日期,订单状态,总金额,桌号,订单明细)订单明细(餐品名称,点单数量,价格)各实体之间的关系图如下图所示,图4.4实体的关系图通过以上的概念设计分析和逻辑表结构的分析得出结论,并总结建立了以下几张数据表:(1)用户表(user)(2)商品分类表(goods_type)(3)商品表(goods)(4)订单表(orders)(5)订单明细表(orders_detail)(6)公告表(info)(7)商家评价表(evaluate)4.5.2数据库实现现在有许多存在的数据库管理系统,我们需要基于这些系统进行数据库设计。根据用户需求和业务流程,本系统采用了MySQL数据库管理系统。表4.1用户表(user)字段名称字段表示字段类型(长度)主外键约束编号user_idintPKNOTNULL用户名user_namevarchar(50)NOTNULL密码user_passvarchar(200)NOTNULL姓名/联系人real_namevarchar(50)昵称nick_namevarchar(50)性别user_sexint用户地址user_addressvarchar(300)用户邮箱user_mailvarchar(50)用户电话user_phonevarchar(50)店铺名称shop_namevarchar(300)负责人姓名user_fzrvarchar(50)身份证号user_cardvarchar(50)营业执照照片user_yyzzvarchar(300)店铺照片user_dpzpvarchar(300)店铺介绍shop_contenttext审核状态assess_flagint审核说明assess_reasonvarchar(300)店铺状态shop_flagint添加时间reg_datedatetime用户类型user_typeintNOTNULL表4.2商品分类表(goods_type)字段名称字段表示字段类型(长度)主外键约束编号goods_type_idint(11)PKNOTNULL类别名称goods_type_namevarchar(225)表4.3商品表(goods)字段名称字段表示字段类型(长度)主外键约束编号goods_idint(11)PKNOTNULL商家IDuser_idintFKNOTNULL商品类别goods_type_idintFKNOTNULL商品名称goods_namevarchar(225)NOTNULL商品图片goods_picvarchar(225)商品原价goods_price1double当前价格goods_price2double商品描述goods_desctext添加时间goods_datedatetime表4.4订单表(orders)字段名称字段表示字段类型(长度)主外键约束编号orders_idint(11)PKNOTNULL商家IDshop_idintFKNOTNULL店铺名称shop_namevarchar(300)订单编号orders_novarchar(50)NOTNULL订单日期orders_datedate订餐人IDuser_idint(11)FKNOTNULL订餐人姓名real_namevarchar(50)联系地址user_addressvarchar(300)联系电话user_phonevarchar(50)订单总额orders_moneydouble订单状态orders_flagint表4.5订单明细表(orders_detail)字段名称字段表示字段类型(长度)主外键约束编号detail_idint(11)PKNOTNULL商家IDuser_idintFKNOTNULL店铺名称shop_namevarchar(300)订单编号orders_novarchar(50)FKNOTNULL商品IDgoods_idint(11)FKNOTNULL商品名称goods_namevarchar(225)商品价格goods_pricedouble商品数量goods_countint商品总额goods_moneydouble表4.6公告表(info)字段名称字段表示字段类型(长度)主外键约束编号info_idintPKNOTNULL标题info_titlevarchar(225)NOTNULL内容info_contenttext发布人info_adminvarchar(50)发布时间info_datedatetime附件信息info_filevarchar(225)表4.7商家评价表(evaluate)字段名称字段表示字段类型(长度)主外键约束编号evaluate_idint(11)PKNOTNULL订单编号orders_novarchar(50)评价人user_idint(11)昵称nick_namevarchar(50)评价商家shop_idint(11)评价日期evaluate_datedatetime评价等级evaluate_levelint评价内容evaluate_contenttext回复内容reply_contenttext
5系统设计与实现5.1客户端模块的设计5.1.1页面的搭建在该网上订餐系统的首页界面设计中,首先要将该系统中最为精美的餐饮以及最新餐饮公告信息等具有鲜明视觉的特色信息和动态信息完好的展现给每一位用户,之后再为用户提供查看网站销售记录、餐饮订单、购物车、餐饮分类查询等业务。该系统大概介绍了如何开发客户端的功能。由于用户进入网上订餐系统后,首先会看到的是网上订餐系统的主页,而良好的页面设计效果将会吸引大量的客流量,进一步会增加网上订餐的销售量,所以良好的页面设计对吸引用户光顾该系统起到至关重要的作用。该系统客户端的主页面主要分为三部分。该页面的构建应用了<frameset>标记,实现了将首页分成了五部分。其中,top.jsp用来实现页面顶部功能;left1.jsp和right1.jsp的功能是使整体页面更加美观;left.jsp用来实现左边的系统导航功能,即将该页面能容显示出来;主体部分将用来显示main.jsp的内容。前台首页的界面布局图以及首页设计效果显示图如下图4-1和图4-2所示:图4-1前台首页界面布局图图4-2首页设计效果显示图5.1.2用户登录模块的设计与实现针对第一次使用该系统的用户需要事先通过注册用户个人真实信息才能够登录系统界面。在系统界面中有一处方便用户注册的提示信息。用户填写的全部信息是由Form提交的,同时需要用到post方法,通过getParameter函数获得用户所提交的信息,而后就与数据库中的已存在的相应信息进行对应的比较再做出判断是否符合系统的要求。在用户登录过程中,要使用setAttribute函数将用户名以及用户编码保存在session对象当中,从而方便其它页面使用getAttdbute函数获取相应的session对象中的用户名以及用户编码。除此之外,该系统界面还提供出错提示处理,例如用户登录时用户信息的填写不正确等异常来进行适当的提示,以保证正确的操作处理。该系统的会员与管理人员登录系统所用的全都是这个界面。在用户登录界面时系统会自动根据当前用户的身份区别来确定登录之后的界面显示。在此界面中还添加了一个清楚输入信息的重置按钮,以此来方便用户重新输入用户信息。用户登录界面如图4-3所示。图4-3用户登录界面具体用户登录流程图如下图4-4所示:图4-4用户登录流程图5.1.3用户注册模块的设计和实现良好的注册及登录界面除了具备美观以外,还要保证其操作的实用性、高效性以及安全性。该系统从系统的人性化设计角度出发,根据一些著名的界面设计理念,设置了具备良好视觉效果的背景图片,带给用户良好的心情,以便接下来开心地订购餐饮,以下是详细设计及效果展示。用户只有通过注册后才可以成功登录该系统网站,并且需要通过登录模块的验证才可以进行网上订购餐饮。在该系统中,普通用户可以浏览餐饮信息并进行一些相应的餐饮查询操作,但对其他操作的权限受到一定的限制。只有在用户注册并且登录本系统后才能进行个人信息管理以及网上餐饮订购等一系列的操作。当用户需要注册时,系统会明确提供一些相关的注册信息。当用户提交自己的注册信息时,系统会自动验证用户提交的信息,确保用户信息正确,包括用户名、密码不能为空以及确认密码和密码。密码必须一致等等。信息验证后,将注册信息提交给系统中的数据库并写入数据库。当用户在系统登录界面的“用户名”和“密码”文本框中输入成功注册的用户名和密码时,单击“登录”按钮。如果验证成功,用户将以普通会员的身份进入在线点菜系统主界面,在此界面中,用户可以点菜。用户注册界面如图4-5所示:图4-5用户注册界面在该模块当中应用到了JavaBean,用它来实现页面跳转功能以及实现与用户信息相对应的数据的存储功能。它的具体属性与数据库表中的用户信息相关的所有字段相对应,主要作用就是用来存储注册页面当中的所提交的表单数据。主要的jsp代码如下所示:<jsp:useBeanid="userInfo"scope="request"class="foodShop.user_info"><jsp:setPropertyname="userInfo"property="*"/></jsp:useBean>通过以上关键代码将注册页面中表单相对应的信息赋给user_info类的对象属性中。用户注册流程图如图4-6所示:图4-6用户注册流程图用户注册成功后,系统会在会话中存储新用户的用户注册名和用户号,以便用户在以后操作时进行身份验证,在登录时进行身份验证。5.2订餐模块的设计5.2.1餐饮列表功能的设计一个关于订餐系统的网站能否可以吸引住用户,充足丰富的餐饮资源和种类是不可缺少的必要因素。因此,该网上订餐系统的餐饮列表管理是整个系统中相当重要的一个环节。如何能够安全而有效的存储餐饮信息、如何可以合理地安排页面内容,从而促使用户方便而高效地查询到自己所需要订购的餐饮,这是餐饮列表管理所需要考虑的主要内容。前台餐饮列表管理分为餐饮分页查询、餐饮分类查询、餐饮销售查询等多个功能模块。该模块的大概框架如下图4-7所示:图4-7前台餐饮列表功能模块框架图(1)餐饮查询模块的设计和实现主页中有一个搜索框,可在其中输入餐饮信息,进行相应的餐饮信息检索,检索到的餐饮信息将显示在相应的页面中。如果检索失败,将显示相应的提示信息。(2)餐饮分类显示模块的设计和实现该网上订餐系统可以对所出售的餐饮进行分类,通过餐饮的不同种类进行查询和显示。该系统功能主要是对餐饮信息进行模糊的查询,并将检索出的餐饮信息进行分页显示,最后将其所要反映的信息显示在主页中。(3)餐饮具体信息显示模块的开发与实现之前说明了餐饮信息的分类功能开发,以下将会描述餐饮具体信息显示功能的开发以及实现。在部分界面的显示页中点击餐饮名称或相关餐饮的图片就能够进入该餐饮的具体信息显示界面中,其主要实现效果的界面图4-8如下所示,点击“放入购物车"链接就会显示出如下图4-9所示的效果页面,可以看出它已经成功地完成将该餐饮放入购物车的功能。图4-8餐饮具体信息的显示界面图图4-9餐饮订购成功显示效果图当客户登录通过输入验证用户名以及密码并且点击“登录”按钮进入到订餐界面之后,该网上订餐系统会同时自动调用注册服务器RegisterServlet中的doPost()方法,同时对应的页面就会跳转到相关餐饮订购页面。用户可以用不同的身份登录界面就会显示出两种不同的页面:后台管理员餐饮列表页面以及普通用户餐饮列表页面。该页面会将许多相关的餐饮信息详细的罗列出来,用户对餐饮所进行的相应操作有搜索餐饮信息、输入客户所订购餐饮的数量并点击“订购此餐点”后便便会判断订购是否成功,同时将所订购的餐饮放入购物车当中,当所有操作完成后页面便进入相关的购物车界面。5.2.3购物车部分之前叙述了餐饮列表功能模块的开发,接下来将简明概地要介绍网上订餐系统中最重要的功能之——购物车功能的开发。在电子商务系统中,客户可以根据自己的需要将所要选择的商品放置到购物车中,购物完成后一起交到收银台付款。在该网上订餐系统的设计和实现中也使用了“购物车”来完成这方面的相关功能。这种技术可以使客户很方便地对购物车中的商品进行一些添加、删除和清空等相关操作,并且随时可以提交商品并生成相应订单。前台的购物车模块主要包括购物车添加餐饮、查询已放入购物车的餐饮信息、修改购物车中的餐饮数量、删除购物车中的餐饮、清空购物车。该购物车模块的框架如下图所示:图4-10购物车模块框架图当您点击“查看购物车”时,页面会自动跳转到“购物车列表”页面。用户可以在购物车列表中看到之前订购的餐饮的名称、数量和总价。此时如果用户对所订购餐饮有所不满,还可以对购物车进行一些修改操作,包括用户可以进行更改餐饮数量、删除所订购的餐饮、返回餐饮列表继续订购以及提交订单等操作。购物车界面如图4-11所示:图4-11购物车界面在该系统中,购物车模块的实现主要通过JavaBean技术来实现的。当在JSP中使用JavaBean时,可以通过<jsp:useBean>标签创建JavaBean的实例,并且可以通过该标签的scope属性设置该实例的作用范围,即为这个实例的生命周期。用户在前台首页中单击特价餐饮或者新式餐饮上架的“查看详细信息”超链接,就可以查看该餐饮的详细信息。单击“放入购物车"按钮,用户所选择订购的餐饮就会暂时地购物车之中。单击这个按钮后,就会触发cart_add.jsp页面,从而实现将餐饮信息存入购物车的功能。该系统的购物车是采用Vector类型的对象cart来存储餐饮订购数据的,分别保存在客户端session对象中,将餐饮信息添加到购物车中的可以有两种情况:(1)在cart为空时,也就是相当于当用户第一次向购物车添加餐饮时,就需要新建一个cart,然后再将餐饮信息保存到这个cart变量中。(2)当cart不为空时,此时购物车中已经有订购的餐饮了,不用新建cart对象,只需要将餐饮信息添加到购物车即可。当添加的餐饮与之前所添加的餐饮相同时,则需要更改此种餐饮的订购数量。购物车中还需加入修改餐饮订购数量的功能。在购物车中,由于餐饮的数量被存放在文本框中,用户只需要在某种餐饮后面的文本框中输入相应的数量即可。购物车页面的“修改"按钮是为确保修改订购餐饮数量而设置的。由于在查看购物车页面已经将购物车内所有显示的餐饮数量的文本框放在了同一个表单中,并以name属性进行区分,所以在修改购物车中指定餐饮的订购数量时,需要应用for循环语句重新保存购物车信息。清空购物车的实现方法很简单,只需将保存在session中的订购餐饮信息清空,并将页面重定向到购物车为空的页面即可。清空购物车的简要代码如下:<%session.removeAttribute("cart");response.sendRedirect("seeCart.jsp");%>5.2.4用户信息部分当用户确认购物车中所订购的餐饮固定后不再改变时,就可以生成与用户所订购的餐饮相对应的订单。生成订单的流程为:从购物车中识别出餐饮的名称、餐饮数量、餐饮价格等一些相关信息,生成一个唯一的对应订单号,同时把用户注册的一些基本信息读取出来,形成一个完整的订单信息,并且写入数据库中。在生成订单模块中主要是通过用户所注册的基本信息来确定生成唯一的订单号,调用的用户信息就是对数据库进行相关的操作,利用session对象把登录后的用户名保存起来,在订单生成时就把事先保存起来的用户名从数据库的用户表中取出就可以了。有很多方法可以生成唯一订单号,只要确保订单号的唯一性以及方便用户记录、查询订单的执行状态即可。当订单信息填写完毕后,单击“确认订单"这一按钮就可以将表单信息提交到checkOut.jsp这一页面文件中。在这个页面文件当中,首先需要通过request对象的getParameter()方法获取用户所填写的相关订单的主要信息以及餐饮信息等,然后再保存订单主要信息和明细信息。当点击“提交订单"这一按钮时,便会触发了ListOrder事件,然后调用相应的ListOrderServlet中的doPost()方法,执行这个Action中的操作后,通过一些相关操作,实现其内部跳转方式,从而跳转到确认订单页面中。通过Get()和Set()方法从数据库中取得用户的姓名、送货地址、E-mail等一些主要的注册信息以及用户订购的餐饮信息,并且返回到对应的浏览器页面。其实现效果图如下图4-12所示:图4-12用户信息界面5.3订单管理模块的设计5.3.1订单列表显示部分当用户在餐饮列表界面上点击“查看用户订单"链接时,相应的客户端请求就进入订单列表服务ListOrderServlet中,此时,action会将请求转发到相应的订单列表页面,该页面包含订单号、订单时间、订单金额以及一些相关操作信息。同时,用户可以根据自己的餐饮需求删除不需要的订单信息。其具体实现效果如下图4-13所示:图4-13餐饮订单列表界面图5.3.2详细订单部分当用户在餐饮订单列表界面上相对应的每个订单后点击“详细信息"链接时,相应请求就进入订单信息0rderinfo中,此时系统就会调用订单信息服务0rderinfoServlet中的doPost()方法,同时通过Action将该请求转发到0rderinfo.jsp页面上,从而使该页面跳转进入到餐饮订单详细界面中,此界面包含每一条餐饮订单的详细订购信息。其实现效果如下图4-14所示:图4-14详细订单界面
6系统测试系统测试是将开发的整个程序进行测验、处理。通过这种方式,我们可以找出系统开发过程中的不足之处以及最终设计的系统是否符合前期的需求分析,是否达到客户预期的效果。检验编码是否符合规范,程序能否如期运行。可以说,在系统开发中,系统测试是一个非常紧要的任务。6.1测试方法测试的方法一般有以下几种:传统方法功能验证系统测试在传统的测试方法中,更加重视测试的设计、执行和报告。在设计过程中需要测试人员具备专业的知识,深入了解业务内容,用于与其他代码组件或简单交互部分进行少量交互。功能验证俗称黑盒测试,就是对产品各项功能的测试,测试系统的各项功能是否如期运转执行。根据前期的分析设计、操作方案、客户需求来进行功能上的验证,以达到总体设计的要求。例如,在后台登陆的时候,当管理员输入错误的账号和密码,点击登录后是否会出现提示错误的信息?所以说,这种测试非常有必要进行的,能够提高效率。系统测试是将系统全部内容作为一个团体进行测试,寻找其存在的错误。测试人员通过对Web服务器的运作原理的了解,在实际条件下,进行的一系列的确认测试。系统的设计应当根据前期的需求说明书来进行研究设计,在研究结束前,通过对比,测试人员能够发现系统存在的不足之处,进一步检验系统的功能和性能是否达到了要求,满足客户的需求。由于软件是计算机的一部分,软件的运行还是需要其他部分的配合才能运行。所以,进行系统测试能够很好地避免此类问题,让设计更加的完善。6.2测试环境说明配置项内容机器型号联想LenovoB50-7020384操作系统Windows8.1专业版64位内存容量4GB硬盘容量500GB网络环境无线带宽3M数据库MySQL5.7应用服务器Tomcat6.0客户端软件IE106.3测试用例序号一级功能二级功能功能测试点后台1登录页面登录功能1.管理员和商家账号和密码输入正确2输入账号和密码错误3.未输入账号和密码2主页面菜单按钮主页显示各部分功能,点击相应功能是否跳转对应页面3类别信息管理删除按钮是否可以删除一项类别信息4类别信息管理添加按钮是否可以进行类别的添加5餐品信息管理删除按钮是否可以进行餐品的删除6餐品信息管理添加按钮输入对应信息是否可以进行添加7桌位信息管理删除按钮桌位是否被删除8桌位信息管理更新状态按钮桌位的状态能否被更新9桌位信息管理添加按钮输入桌号和人数是否能添加桌位10商家信息管理删除按钮能否删除商家信息11商家信息管理添加按钮能否添加商家信息12账单管理界面输入框输入订单编号能否查询到订单信息前台1首页是否显示餐品的信息2座位信息界面预订按钮点击预订,座位状态是否改变3类别信息界面下拉框是否显示菜系分类,并且各菜系下有对应餐品4我的点餐文本框输入订单编号,是否能查询到订单信息6.4测试结果分析在系统开发完成后,对系统进行了测试,情况如下:功能测试方面;页面模块测试类型是否通过备注登录页面功能测试通过主页面功能测试通过类别信息系管理功能测试通过餐品信息管理功能测试通过桌位信息管理功能测试通过用户在前台进行点餐操作后获取订单编号,后台管理员利用编号进行查询商家信息你管理功能测试通过订单信息管理功能测试通过前台首页通过显示餐品图片名称和价格座位信息功能测试通过类别信息功能测试通过鼠标移动到类别信息时,内容就会自动显示,点击菜系可显示其中的餐品内容我的点餐功能测试通过6.5小结通过对该系统的测试,有以下几点:系统前台后台功能正常运行,前台能够实现点餐功能,后台能够实现管理的功能,符合最初的需求设计。各界面简单大方,让用户感觉很舒服,餐品的图片能够增加用户的食欲,带来良好的体验。上传网页后,基本按照前期需求分析的要求来进行,从订桌-点餐下单-查询订单-结账,流程顺畅假如需要进一步去开发这个系统,我会从以下几个方面去考虑:(1)加强网站个性化设计;(2)适当增添功能,更加完善系统,让系统能处理多种问题;自此,本系统的开发顺利完成,各个部分运行正常,实现了当初的设计理念。在将来,如果有需要,我会继续完善此系统,使其更人性化。
结语经过几个月的努力,终于在老师和同学的帮助下做出了我的毕业设计。最开始的时候,自己找相关的资料书籍去学习,一步一步去完成代码的设计与功能的实现。在整个过程中,真正了解并感受到程序设计的困难性。还好有老师在困难的时候给与我知道,让我知道该怎么去做。在选择好主题的时候,对各模块的功能设计情况还不是很熟悉,不知道该如何下手。老师告诉我,要多去进行市场调查,去网上看看别人的订餐系统是什么样的,都有哪些功能,界面设计情况是如何。尽量通过多种途径去搜集资料,让自己的资料更丰富、与时俱进。并且将这些功能进行细致分类,将理论与实际进行结合,构造出属于自己的点餐系统的构造图。本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品集中采购监督制度
- 蔬菜采购质量把控制度
- 书采购意向公示制度
- 大宗设备采购制度
- 中药采购配送制度
- 试验检测规范采购制度
- 书馆办公用品采购制度
- 中国石油采购制度
- 红酒采购制度管理规定
- 采购索证索票制度
- 新疆神火煤电有限公司电解铝大修渣无害化处理综合利用项目环评报告
- GB/T 45554-2025种猪生产性能测定技术规范
- 单兵战术动作低姿匍匐前进教案
- 2025新人教版七年级下册英语 Unit 8知识点梳理及语法讲义(答案版)
- 水库安全管理培训
- 工程劳务外包合同范本大全
- 统编版语文四年级下册 第一单元基础过关卷(试题)
- 自考《13180操作系统》考前强化练习试题库及答案
- 人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计
- 医院患者安全与防范措施管理规章制度
- DB34∕T 3463-2019 钢筋桁架楼承板系统应用技术规程
评论
0/150
提交评论