版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SSM的网上点餐系统的设计实现目录TOC\o"1-3"\h\u192161绪论 2243291.1研究目的及意义 2238232.5MySQL简介 9286962.6Tomcat服务器 979023.2系统功能需求分析 12279924系统设计 14312914.1系统总体设计 1442404.2系统详细设计 15257984.2.1用户登录设计 15307064.2.2添加信息设计 16201534.2.3运作流程设计 1867704.3.1数据库设计原则 1911014.3.2数据库的概念设计 19266466系统测试 31326046.1测试原则 32157646.2测试分析 32212506.3测试步骤 33199476.4测试用例 33269476.4测试结果 34312127.1总结 34192147.2展望 3511530参考文献 38摘要在本文中,通过对点餐系统的设计和创新研发,改变了我国传统的点餐模式。通过电子点餐系统,顾客便可以通过系统自主选择菜品,避免了因服务员人手不足,造成的等待点餐时间过长的问题。同时,通过该系统,顾客对菜单能够有更为具体的了解,通过系统图片能够看到菜品的具体样式,减少了点餐的失误,也在一定程度上,降低了餐厅的经营成本。现如今我国科技快速的发展,而点餐系统的更新换代也是越来越快,成本投入也逐渐降低,鉴于此,以陶苑餐厅为对象,根据该餐厅实际情况,设计一套高效便捷的点餐系统,为了更多顾客可以光临我们的餐厅进行消费,达到是顾客心中的高水平,高质量,提高餐厅在行业内的知名度和竞争力,把它打造为一个顾客心中的理想心态。本文详细论述了基于SSM的网上点餐系统的开发设计过程,系统采用idea开发平台,Java为开发语言,MySQL为数据库,javaJDK为开发工具包,JSP作为页面的展示,以SSM作为本系统的和新框架,设计了两种角色即管理员与客户,从功能的角度进行了详细的设计。通过该系统的研发成功,对餐厅功能的不断完善进而提高餐厅的服务质量,促进餐厅的发展。依据上述的设计要求,经过具体的实现,基于SSM的网上点餐系统实现了相应的功能,分别为:管理员功能模块的实现:登录模块,菜品管理模块(菜品分类、菜品添加、菜品删除、菜品修改),销售订单管理模块,系统通知管理模块等。客户功能模块的实施:用户登录模块,点餐模块,购物车模块,订单模块,个人信息模块等。并且通过测试,所有功能都正常实现关键词:点餐系统;Java;MySQL;JSP;SSM1绪论1.1研究目的及意义研究的目的基于SSM的网上点餐系统,主要通过店家与客户之间的相交(数据的曾,删,改,查等)来实现每一个功能模块,管理员可以在管理界面添加不同的菜品供应客户的需求,然后顾客使用我们的点餐系统,去选择使自己心动的菜品并完成下单,顾客下完单之后店家通过系统去查看顾客用用餐需要。在传统餐饮行业中,客户的点餐通常是由餐厅服务员到客户的身边来完成的。也就是顾客进入餐厅后找到可以就座的地方,选择位置后再由服务员来到顾客身边徐闻顾客的点餐需求,服务员则等待顾客完成了自己所有的需求后,再把顾客的需求送到前台,然后前台在交给厨房里由厨师准备蔬菜。对于一家小餐馆来说这个过程是可以的,但是如果餐馆很大或者很拥挤,等待时间也差不多是更长。然而点餐系统的出现就很容易解决这个问题,不再是和以前一样通过服务员点餐再到后厨,实现了顾客直接与后厨的沟通,这个系统的主要核心就是为了实现顾客就餐时的简便,快捷,为顾客带来不一样的用餐体验。研究意义随生活人民横向进步、经济时代快速发展和价格上涨快节奏的消费者越来越多地选择外出吃饭。更多的快餐行业将不可避免的增长,群体性消费生活习惯造就了快餐业。未来面对庞大的消费团队,餐饮业若还是使用传统的纸质点菜方法,效率很低,远远跟不上消费者的步伐,不思进取终将被淘汰。因此,在线点餐系统在这种情况下,毫无疑问是未来的发展趋势之一,是餐饮业革新的一个契机,将来肯定会有越来越多的中小型餐馆使用在线点餐系统。那时,即便是一个很小的餐饮店,也会用上无线点系统。因此,基于SSM的网上点餐系统在餐馆的应用,具有很大的实用价值。国内外研究状况发展状况 "点餐系统"研究始于2004年,并达到了最热的,却以餐厅点餐系统为主。在近几年中,也出现了对高校食堂点餐系统的研究与开发。但由于软件开发难度大,开发周期长等等,没有很好的去推广与运用。在职能上只是将必备的功能设计出来,并没有针对单一用户进行个性化地推荐菜单或分析饮食健康问题。所以,一款易开发、易使用并能分析师生饮食健康的高校点餐系统将变得不可替代。国内研究现状在国内研究中,以餐厅点餐系统为主要研究方向,但早期的系统如点菜宝,电子菜谱等都不太成熟。它们只能显示菜品的图片与价格。简而言之,这些点餐软件只是将传统的纸质菜单显示换成了电子屏显示,并不具备支付、预约功能,没有给传统的点菜过程带来太多的变革,也没有为餐厅的管理带来显著提高,而顾客的实际体验也没有得到太大改善随着科技的进步,点餐系统功能也得到进一步完善。文主要是针对餐饮管理系统进行研究设计与实现的,并结合当前流行的嵌入式技术对餐饮管理信息系统做了一定程度上的开发。
触摸屏不仅可以显示菜品的丰富种类,还可以显示菜品的原材料、产地和营养。价值,这样以顾客为中心,大大地提升了用户体验,还降低了餐厅的人力成本。国外研究现状在国外,由于此类软件起步早和相关技术的发展。国外的点餐系统软件功能全,数量大,但大多数是在Andriod操作系统上进行设计的餐厅点餐系统。Andriid系统的最大特点在于开源,任何人都可以在此他人的基础上进行操作、完善,自主地开发应用程序,开放平台允许任何供应商加入到安卓。软件还为了客户的点餐方便而特意设计了菜品推荐功能,它可以依据顾客以前的用餐记录为顾客来为顾客挑选相似的菜品。但关于校园点餐系统的研究还是较少,在食堂方面主要研究食物浪费情况、后勤保障工作等。主要研究内容 该系统采用Java开发语言,JSP和MTSQL数据库,完成基于SSM的网上点餐系统的设计与实现。在项目实施之前,我们根据项目具体需要实现的功能进行了缜密的分析与设计,对各项功能所具体实现的操作也进行了全面的思考,确定了项目所需的具体功能和实际操作,以至于项目的结构看起来更加的立体。而项目的功能模块有:管理员模块:对餐厅对菜品的添加,以及菜品的详细信息(数目,价格,详细介绍等)进行合理的管理,还可以对顾客的账户信息进行管理,修改密码等。顾客模块:主课模块可以查看所有的菜品并进行点餐操作,你可以自己下订单或购物在车里,你可以操纵你对菜肴的选择,以及个人信息管理和修改,以及对菜品进行评价和打分。1.4论文结构本文在对设计进行分析后,从结构上分为六章,基于JSP的网上点餐系统的计划排列如下。第一章:分别阐述了项目的研究意义以及国内外的发展现状,并且对论文的体系进行了分析与梳理。第二章:对于项目所使用的技术进行了相关介绍,并对基于SSM的Web网上点餐系统的设计与实现进行了说明。第三章:系统分析,详细的分析了系统的各种要求、以及项目的实施是否具有可行性、对于项目的运作流程以及需要实现的目标进行了说明。第四章:通过我们的系统分析结果,在去详细的解释了每一个功能是如何实现的,以及实现的业务逻辑。第五章:系统功能实现,通过自己大学所学到的理论知识实现该系统所有的业务要求,对于每个功能的具体操作进行实现。 第六章:系统测试,根据所要达到的效果对系统的各种功能进行系统测试进行测试以获得结果。第7章:小结,总结基于SSM的网上点餐系统的设计与实现的过程与结果,最后对该系统的开发过程进行了预测,并对未来发展进行了展望。2相关技术简介软件开发所用的语言和技术可能不同,但是从本质出发他们都有非常多的相似之处,但是缺拥有有各自的长处和短处,即在于每个系统都针对不同的的访问者和操作者。所以,每个系统都有不同的功能来实现自己的目标。以下是网上点餐系统中使用的开发环境和开发工具的描述。2.1系统的开发环境软件开发所用的语言和技术可能不同,但是从本质出发他们都有非常多的相似之处,但是确拥有各自的长处和短处,即在于每个系统都针对不同的访问者和操作者,而我是用的是WIN10操作系统,使用JAVA作为开发环境,而稳定且强大的JDK1.8则作为我们的JAVA编译环境就是必须的了,运用SSM作为项目后端的主要框架,使用JSP作为项目的前端展示,运用MYSQL数据库来作为系统数据的存储,使用IDE作为开发工具。2.2B/S框架 B/S就是为Browser/Server的缩写,翻译为中文就是服务器和浏览器,同时这也可以看做我们前端和后端,Browser就是我们前端的代表用来进行页面的展示,而Server就是我们后端的代表用来进行后端业务的实现操作,同时B/S并不是一种具体的事务,他是一种结构,所以无需我们去下载使用只需要我们在前端准备好浏览器,在后端准备好服务器而本项目我是用的服务器是Tomcat,其中Browser作为前端展示,他的主要作用就是把我们做好的业务数据进行渲染然后通过可视化操作在展示给用户来进行操作,通常情况下,前端页面是不需要进行业务的处理的,可能会存在一些少数的数据校验,因为发数据校验放在前端可以减轻后端运行的而压力,减轻服务器的负担。Server就是我们后端对于前端页面用户具体操作我们所进行的具体处理,也就是我么你常说的业务的实现,他主要是通过业务的实现然后再把前端给我们的数据进行操作,然后再去数据库进行对比,或其他操作,最后将我么能处理好的数据再返回给前端页面进行渲染。 在我们进行项目的升级时,B/S也可以为我们带来许多的方便,他可以让我们不需要去重新下载项目,只需要去升级响应的服务器就可以了,这样当我们进行版本更新的时候顾客也不会每次都去重新下载项目,是我们的更新更加便捷。而且B/S结构可以直接放在局域网上,通过控制访问的人数的权限,来达到高交互能力,而B/S的详细结构流程如下图2-1所示。图2-1B/S体系结构图2.3JSPJSP,全名JavaServerPages,而他的形成就是将我们的网页里面放入我们的JAVA代码就组成了我们所使用的JSP,所以他拥有非常好的夸平台特性,每次让用户通过我们的页面进行操作的时候,页面就会把我们的JAVA代码发送给我们的后端让服务器进行相关的处理,通过处理之后的操作在吧具体的操作结果返回给我们的前端页面进行渲染,并且当我们第一次访问一个操作时,当我们访问成功并且结束后,浏览器就会把我们这一次的操作存放在缓存里面,当我们下一次在进行访问的时候,页面就不会优先再向后端去发送请求,而是先从我们页面的缓存里面去找,如果可以找到,就先使用缓存里面的,若没有找到再去访问后端,这样也就大大地减少了我们系统的响应速率,为我们的后端服务器减轻了压力,但是这样也有不好的地方,那就是当我们访问的数据发生变化时,页面可能会给我们带来的结果和我们的目标并不是一致的,而这也就是页面缓存所造成的,这个时候我们就需要先去清空页面的缓存,然后再重新的去发送请求,这样的到的结果就会和我们所想要的一致。并且,当我们JSP页面的代码进行更替的时候,服务器回去自动的识别并且更新代码,然后重新编译JS盘代码进行部署,这也为我们的项目带来了更多的方便。2.4IntelliJIDEA开发平台IntelliJIDEA也就是我们常说的IDEA他是目前世界上公认的使用人数最多的Java开发工具,它之所以这么受欢迎的原因来源于的具有非常强大的功能,比如:代码补全,这个功能可以说是我们程序员的福音,他可以在你编码前几个字母的时候就可以提示出你可能想要的语法,是我们的编码变得更加方便。还有错误提示功能,在我们编码有误时,idea就会在我们有误的地方画出一条红色的线,这样就可以让我们实现一遍编写一遍改错,这个功能也使我们的后续测试减轻了不少的负担,其中我最喜欢的就是插件功能,IDEA给我们提供了大量的插件,我们只需要去下载插件就可以使用,比如汉化包,翻译软件等等,这些插件可以为我们带来不同的编码简便。Idea有MVEN的管理的操作地方,这让我们对于项目里各种各样的依赖有了更加方便的管理,同时也能在我们的MVEN中的错误给出标红处理,总之IDEA的功能非常强大,这也是我使用eclipse之后相对于两者的对比所得出的结论,但是idea相对于eclipse有一点不好的就是他并不是免费的,但是作为学生来说可以申请到他的免费账号来提供我们的日常学习,所以这也是我们使用得前提之一。2.5MySQL简介本次的网上点餐系统使用的是MySQL数据库,这是我们生活中比较常见的一种小型的关系型数据库,MySQL的功能是非常齐全的,不但可以搭建集群,并且他也支持事务,他原本的默认搜索引擎是MYIASM后来因为他不支持事务,也不支持行级锁和主键,所以后来默认的搜索引擎变为了INNODB,现在的MYSQL被Oracle公司所收购。MYSQL的事务一共有四大特征,分别是(ACID)也就是:原子性,一致性,隔离性,持久性。默认的隔离级别为可重复读,因为这种隔离级别可以有效的防止脏读和不可重复度。而随着ORACLE公司的收购,MYSQL的发展也是越来越好,对于表与表之间的联系更加的紧凑,而MYSQL最大的优点就是开源免费,这同样是他如今如此受欢迎的重要原因之一,谁能拒绝一款功能强大并且还免费的数据库呢?对比于ORACLE数据库MYSQL的安全性可能不是特别的占优势,但是对于我们的日常运用来说,没有什么特别关键的数据需要去保护,所以MYSQL对于我们的毕业设计也是完全的契合。2.6Tomcat服务器服务器是我们所有项目的运行核心,就好像是汽车的发动机一样,没有服务器的支持,那么我们的项目也就不能成功的运行,更别说到后面的上线供人们使用。Tomcat就是我们这次项目的发动机,他是Apache公司的一个重要项目,是目前世界上的主要浏览器服务之一,并且他的传输过程是基于HTTP协议来进行的,而HTTP协议具有非常高的安全性,这也就让我们的Tomcat的安全性非常的可靠。支持大量的用户同时访问。2.7SSMSSM(Spring+SpringMVC+MyBatis)框架集是Spring和MyBatis开源框架(SpringMVC是Spring的一部分)的组合,通常用作数据源更简单的web项目框架。2.7.1SpringSpring是一款轻量级的开发框架,在目前的软件行业,基本所有的使用Java开发的软件都可以见到他的身影,这就特意体现出他的强大,而他的IOC(控制反转)和AOP(面向切面)更是一绝,其中IOC是把平时我们需要自己动手创建对象的造作交给Bean容器去做,在我们需要的时候自动取创建对象,通过翻转在给我们响应。而AOP就是一个切面,在代码中把我门代码中的公共部分提取出来封装,在代码需要用到的时候在把它横切进去,大大的减少了我们的代码量达到了解耦合的目的,而且他是用的原理是JDK的动态代理模式,而这就是他变得更加的灵活,在后续我们需要改变这些特性的时候只需要去我们封装的切面更改就行了,这也大大的降低了我们代码的维护。2.7.2SpringMVCSpringMvc是一款基于Web的MVC框架,MVC是指,C控制层,M模块层,V显示层这样的设计理念,而SpringMvc本身也是Spring中的一个模块,而SpringMvc从上面的解释也可以看出,他主要是为我们服务于前端的,是我们的项目开发达到前后端分离,前后端分离之后就可以使我们的项目更加的立体,从而达到分离后的项目可塑性有了很大的提高。2.7.3MyBatisMyBatis是一个优秀的持久层框架,他封装了原生的JBDC,他的出现让我们程序员不用再去的编写JDBC的原生代码以及需要我们自己去判断应该什么时候开启或者关闭服务。在应用开发中有广泛的用途。并且使用MyBatis我们的SQL语句也不再和从前一样的编写,现在有特定位置供我们编写,我们常用的就是把SQL写在MAPPER文件中这样方便了我们对于SQL的管理,不再和以前一样SQL开起来非常的乱,写的到处都是,方便了我们对于代码的编写3系统分析3.1系统可行性分析1)技术可行性本系统运用的是Java技术和Java语言中Apache公司的SSM技术进行开发。在页面上我们使用了简洁的设计原则,该系统主要完成的功能就是点餐功能,应该避免因为让页面看起来更加具体而出现的花哨行为。已达到页面的简介明了,让商家和顾客高效的完成工作与点餐,同时给用户良好的就餐体验。同时我们使用的是MYSQL数据库对我们的项目进行数据的管理,MYSQL数据库相对于ORACLE数据库操作起来更加的简单,对于数据的操作也更加方便,同时这也为我们开发各项通能带来更加简洁的操作,大大地降低了我们开发的成本。虽然MYSQL数据库并没有Oracle数据库安全,但是我们根据需求分析可以知道商家只需要进行对菜品管理的工作,这就使MySQL数据完全可以胜任,并且不需要去担心安全问题。同时MySQL数据库对电脑要求不是很高,商家可以就是用家用电脑配置成服务器,在搭成集群,这样又为我们生了很大一笔开销,经济实惠的同时该来的体验也非常的好。实现了高速的响应。而且我们采用的开发语言为Java语言,而Java语言最大的好处就是可以实现跨平台,拥有强大的可移植性的特点,而且Java是运行在Java的虚拟机JVM上的,这样也可以满足不在同一片服务器上的尴尬,实现操作的可行性。2)经济可行性该网上点餐系统是为了给人们生活中外出就餐时带来简便而进行设计与实现的。因此在管理员添加完了所有的菜品之后,只有顾客进行点餐访问。所有我在开发时思考如何给每一个用户带来更加简单快捷的点餐操作,给用户带来不一样的体验。所以我设计了用户注册功能,账号和密码都由用户自己设置,有顾客自己进行管理,这使顾客可以用自己熟悉的东西作为账号和密码,方便了顾客的记忆。同时顾客在进行登录之后可以查看自己以前已经点过的菜品,这样也可以减少顾客点菜的踌躇,通过查看订单或者购物车直接选取自己需要的菜品。这样既节约了资源也节约了时间。并且系统开发所使用的技术和数据库都是不需要任何经济支出的,在完成该系统的各种功能的情况下,必须的开销就是我们研发软件所需要的时间,并没有其他特别的经济支出,拥有很强的经济可行性。3)操作可行性随着国家的不断发展,经济也是飞速的增长,人们的生活水平也是日益的提高,电脑基本上已经是家家户户必备的,差不多类似于电视一样只是家中的一个家电而已。现在几乎所有人都会基本的电脑的操作。通过电脑对日常生活中的一些工作进行操作,更何况又是在餐厅之中,配置电脑和电脑的操作更是必须会的。所以在进行系统的概念设计时,我也完全考虑到了商家和顾客所需要的环境和需求,操作不在于繁杂但是一定要简单,这样才能使商家和用户满意。在我们进行数据的访问时也需要达到快速的响应客户,并且要达到提供给用户的所有数据都是准确无误的并且保证数据在传输的过程中不存在安全因素。这样才可以提高我们的系统的安全性,不会因为数据的原因而带来经济损失,在后期的更新维护中也会是我们更加的轻松。同时我们也需要尽量减少不必要的重复的操作,是其一步到位,不繁杂。在上面的分析下,该系统的操作可行性是完全可以实现的。3.2系统功能需求分析在在今天这个快速发展的社会,我们的生活离不开网络和计算机,也正是发展的速度之快让我们可以得到非常多的信息和听闻。
同时,在如今这个时代,人们对于用餐不仅仅知识为了填饱肚子,而是在吃饭的同时追求高质量的用餐体验,因此人们对餐厅的服务质量就会有非常高的要求。在我们外出就餐时仅仅使用人工点餐上有时难免不能让人带到满意,因为她太浪费商和顾客的时间,因为人工的操作,所以出现许多错误也是无可厚非的。而现在有一些的网上点餐系统对于顾客来说并不是特别的实用,因为商家更加注意自己的利益,所以大部分时间并没有考虑到顾客的感受,使页面过于麻烦,不能让客户非常直观的进行点餐操作,更不能清晰地展示所有的菜品来供顾客挑选,这样给顾客带来的体验其实并不是很好。在这种情况下我采用的是顾客,商家都由管理员进行管理,商家可以查看每种菜品的详细信息,而顾客则可以对所有菜品进行查看并下单,而对于菜品的具体管理则交由管理员进行管理和修改,这样可以清晰地区分每个模块所需要进行的的操作,是我们的系统更加的简便的直观。极大地提高了对于系统的管理和顾客的体验。3.3系统数据库需求分析数据库就是用来存放我们项目的数据,而我们则就是通过不同的功能去对数据库中数据进行各种操作来达到我们的目的。其实我们编写的任何逻辑的根本也就是对于数据的操作然后来响应用户。所以,设计一款好的数据库系统得开发过程中就显得尤为重要,也是系统设计最关键和最基础的部分,也可以说是系统开发的第一步。而我们常说做一件事的时候第一步往往是最难的,所以一定要先做好系统功能的分析与设计,这样才能使我们更加清楚我们开发的步骤,因此在系统的设计之初,需要现规定数据库的设计原则,来进行概念模型的设计,而我们今夕概念设计往往采用得是E-R图来表示,因为E-R可以清楚的为我们展现出不同数据之间的关系,通俗来说也就是个实体属性的联系图,在我们将E-R图完成之后,可以通过画出的E-R图得到数据库中的每张表之间的联系。此外,对我们来说,管理数据库连接资源也是必要的,因为在实际操作中的许多问题是由于我们不能对资源合理的分配与释放所造成的,因此我们可以使用“数据库连接缓冲池”的方法来解决这个问题。“缓冲池”我们就可以把它想象成一个用来存放物品的仓库,“数据库缓冲池”可以理解为他是我们用来存放数据的一个仓库,我们建立连接就可以直接从“数据库缓冲池”中取出资源,建立后再放回去“数据库缓冲池”,这样就避免了数据资源分配的不合理性。4系统设计4.1系统总体设计经过之前的系统分析,得出了本网上点餐系统应该有两种种角色权限,分别为:管理员、顾客。每种身份所能进行的操作是不同的。管理员模块:对系统的总体的信息进行管理,以及合理给前台和顾客提供有效的菜品的信息。对管理员密码进行修改。顾客模块:顾客可以在线点餐,了解该菜品信息和已选择该菜品的人数等,并且可以再购物车中查看已经点过的菜品,还可以查看所点餐总需要支付的价钱。详细如下图4-1所示。4-1系统功能模块图4.2系统详细设计4.2.1用户登录设计本系统分别给管理员和用户设计了两个不同的登录窗口,但是登录的流程是相同,用户进入系统后首先访问的就是点餐首页,用户在这里可以看到餐厅所有的菜品进行选择,如果用户已经登录,则可以直接进行点餐操作,否则点击点餐就会跳转到登录界面进行登录,用户在输入用户名和密码后点击登录后,系统将会把用户名和密码传输到后端去进行账户判断,经过多次的成功调用之后,系统会再去Session中看看当前用户是否已经存在,如果存在,则会提示不能该用户已登录,如果Session中没有该用户,系统将会在后端进行用户的装呼和密码的判断进行登录,若账户或密码错误,系统会提示用户名和密码错误,如果正确,则页面将会跳转到主页,并显示用户名,并且将登录的用户放在Session中去。点餐系统的登录设计如图4-2-1所示4-2-1用户登录流程图4.2.2添加信息设计在管理员完成登录操作进入后台之后,需要添加新的菜品时,首先先点击菜品信息然后点击添加菜品,填写菜品的相关的信息,需要注意的是有些输入框的内容是不能为空的,我们用*在输入框后进行注释,不然我们不能完成相关的菜品添加。我们所有的信息验证操作是在前端的页面完成的,这样做的好处是为后端减少压力减少后端的操作,提高系统的运行效率,在我们填写完信息点击添加时,页面就会对我们的内容进行校验,如果我们必填的内容为空值是,就会在页面上给用户相应的提示。在都为不为空的情况下,我们才可以对信息完成添加,并且将信息加到对应的数据库里。如图4-2-2所示。4-2-2添加信息流程图4.2.3运作流程设计基于SSM的网上点餐系统主要作用的对象分为管理员和顾客,我们通过不同的登录界面进行不同的登录操作,登录完成后进入不同的页面,管理员登陆成功后我们将进入后台,此页面可以对菜品信息,系统通知,系统消息等进行管理,而用户登录成功后可以进行点餐操作,对客人信息的修改以及对订单和购物车的管理。具体如图4-2-3所示。4-2-3运作流程图4.3数据库设计4.3.1数据库设计原则当我们要对数据库进行前期设计时,首先我么你需要从我们项目所需要运用到的数据入手,通过我们需要用到的数据和数据与功能之间的联系进行分析,建立不同的数据模型,每个模型对应的逻辑与功能也是各不相同的,只要项目还在运行的过程中,那我们的模型就要随时待命,必须有相应的作用,并且我们可以通过模型所建立的E-R图来观察数据模型之间以及实体与实体之间的联系,这样每个模型的问题都有所对照,而各个实体之间的联系也更加的清晰。4.3.2数据库的概念设计本点餐系统需要向用户提供添加数据、删除数据、修改数据等操作。并且对应的功能不同我们需要设计多张表去记录数据,并且表与表之间可能还存在着关联关系,所以对于有联系的表来说,那么多张表的数据之间所需要数据都达到一致性就显得格外重要,通过前面的分析。管理员作为实体有管理员编号、登录名、密码。顾客实体有顾客编号、登录密码、姓名,电话号码属性。如图4-3-2所示。图4-3-2客户实体属性图角色关系图。如图4-3-3所示图4-3-3全局ER图4.3.3数据库表的设计根据上述设计好的实体类和相关的属性图,E-R图,设计好数据库,系统的数据库名字为apsfc,通过对各个实体类之间的联系创建相应的表。对每个表以及其中的字段描述如下。(1)管理员表该表为管理员表,主要用来存储管理员的相关信息,其中有管理员用户id、账号、密码、管理员用户权限等信息。管理员编号为该表的主键,不可以设置空值。如表4-3-4所示。4-3-4管理员表数据库中字段名字段类型中文注释数据库中字段名字段类型中文注释数据库中字段名字段类型idint管理员用户ididint管理员用户ididintnamevarchar管理员用户姓名namevarchar管理员用户姓名namevarcharpwdvarchar管理员用户密码pwdvarchar管理员用户密码pwdvarcharauthorityvarchar管理员用户权限authorityvarchar管理员用户权限authorityvarchar(2)菜单表(menus)该表为菜单表,主要用来存放菜品信息,其中有菜品id、菜品名称、菜品类别id、主要材料、菜品介绍、市场价格、菜品数目、菜品会员价格、彩屏图片等,如4-3-5所示4-3-5菜单表(menus)数据库中字段名字段类型中文注释idint菜品idnamevarchar菜品名称typeidint菜品类别idburdenvarchar主要材料briefvarchar菜品介绍pricefloat菜品市场价格sumsint菜品数量price1float菜品会员价格sums1int菜品数量imgpathvarchar菜品图片公告表(notice)该表为公告表,主要用来存放公告信息,主要字段有公告id、公告标题、公告内容、公告时间,如4-3-6所示。4-3-6公告表(notice)数据库中字段名字段类型中文注释idint公告idnamevarchar公告标题contentvarchar公告内容timesvarchar公告时间订单表(orders)该表为订单表,主要存放客户的详细订单,主要字段有订单id、童虎id、菜品id、菜品数目、配送时间、是否配送,如4-3-7所示。4-3-7订单表(orders)数据库中字段名字段类型中文注释idint订单iduseridint用户idmenuidint菜品idmenusumint菜品数量timesvarchar订单时间deliveryint是否配送菜品分类表该表为菜单分类表,主要用来存放菜品类别,主要字段有分类id,菜品的分类名称,如4-3-8所示。4-3-8菜品分类表(types)数据库中字段名字段类型中文注释idint分类idnamevarchar菜品分类名称用户表该表为用户表,主要用来存放用户信息,主要字段有,用户id、用户名称、用户密码、用户真实姓名、用户性别、用户年龄、用户身份证、用户地址、用户电话、用户邮箱地区邮编、用户类型,如4-3-9所示。4-3-9用户表(users)数据库中字段名字段类型中文注释idint用户idnamevarchar用户名称pwdvarchar用户密码realnamevarchar用户真实姓名sexvarchar用户性别ageint用户年龄cardvarchar用户身份证addressvarchar用户地址phonevarchar用户电话emailvarchar用户邮箱codevarchar地区邮编typeint用户类型5系统功能实现5.1登录功能模块在进入点餐系统进行点餐时,用户需要先进行登录验证,来确定该用户身份以便于后面的操作,登录主要是需要用户输入用户名和密码,进行身份验证,身份验证,登录成功就可以进行点餐环节,若不进行登录验证,则用户只能查看菜品不能进行点餐环节,登录界面如下图5-1-1所示:5-1-1登录详情页5.2管理员功能模块管理员登录模块,输入管理员账户和密码就可以进入管理页面对各项属性进行管理,如下图5-2-1所示5-2-1管理员登录页5.3后台模块该模块为后台管理模块,可以进行菜品管理以及对公告信息的管理,销售订单的管理系统用户的管理,在进行这些属性管理时,可以对这些属性进行曾删改查的操作,但是需要注意,对属性进行操作时,需要输入的字段具有合法性,不能随意添加,否则就会造成属性添加或修改失败,如下图5-3-1所示。5.4添加模块该模块主要是对菜品进行添加,需要输入菜品的名称,原料,市场价格,会员价格,菜品介绍,说明,选择菜品类型和上传图片等,若添加的菜品为空,则会提示菜品不能为空,模块如下图5-4-1所示:5-3-1后台模块 5-4-1菜品添加模块5.5菜品信息管理该页面主要是用来管理所有现餐厅所有可以售卖菜品,可以对菜品的详细信息进行查看与修改,删除如下图5-5-1所示5-5-1菜品管理页5.6系统通知管理模块改模块用来管理系统的通知消息,可以对消息进行添加和管理,如下图5-6-1所示:5-6-1消息通知模块5-6-1消息添加模块5.7销售订单管理模块该模块主要分为三个部分,分别为订单信息列表,销售订单查询列表,日销售额统计,订单信息列表可以查看所有用户订单的配送情况,可以直观的看到餐厅所有订单完成的情况如图5-7-1所示,销售订单查询列表可以去搜索查看摸个特定订单的信息信息如图5-7-2所示,日销售订单统计模块则是可以统计当天所有订单的完成情况,对当时所有订单有更加直观的展示如图5-7-3所示:5-7-1订单信息列表5-7-2销售订单查询列表5-7-3日销售额统计5.8菜单类别管理该模块主要是对与菜单类别进行管理,主要分为菜单类别的的详细信息和菜单类别的添加,菜单类别的详细信息主要展示所有的菜品类别如图5-8-1,菜单类别添加就是添加新的菜系如图5-8-2所示5-8-1菜单类别的的详细信息5-8-2菜单类别的添加5.9系统首页该页面为点餐页,客户可以在该页面完成点餐操作,页面会展示所有的菜品信息,提供客户选择,中意的加入购物车,同时可以在右侧查看自己购物车信息,每日菜品畅销榜,餐厅公告,用户完成点餐操作后点击提交就可以进行下单,若对点餐不满意则可以点击全部取消,完成购物车清空所有的已点菜品信息,如下图5-9-1所示5-9-1点餐首页5.10我的餐车用户点击加入购物车后点击我的餐车就可以对自己所点菜品进行查看,该页面主要展示购物车的详细信息,以及展示所点菜品的价格和数目如下图5-10-1所示5-10-1我的餐车5.11我的订单该模块主要展示用户的订单信息,包括订单查询,订单查看,展示所有订单,订单详细信息,已派送的订单。未派送的订单等如下5-11-1所示5-11-1我的订单5.12用户信息该模块主要展示了用户的详细信息,用户可以再该模块下对自己的用户信息进行就该,但是需要注意的是带*的为必填项,若不填,系统会提示报错,如下图5-12-1所示5-12-1用户详情页6系统测试6.1测试原则 软件测试应遵守以下原则:(1)在我们的项目完成后,应该尽量的早的去完成项目的测试阶段,只有更早的发现问题我们才能去解决问题,必然后期造成许多问题同时出现导致连锁反应。(2)在测试开始的时候我们不能只是为了测试去测试,我们应该对照去测试,留一组目标结果和预期结果,这样的出的结论才能更加的真实。(3)我们的测试结果都应该有相对的保存,方便后面就行项目更新或者再次出现问题时的对照。(4)在进行软件测试是,我们应该充分的保真严谨性,不能随意而为,避免测试结果的偶然性。6.2测试分析在如今的大环境下,对于一款系统的完成并不是结束,而是开始,我么你还需要进行最为关键的一步,那就是对于项目进行整体的业务测试。在系统进入使用之前,我们需要反复测试这个软件的需求分析和规范。这是使软件的质量达到可以上线使用的前提,也是一款系统开发到上线使用的最为重要的部分。测试的目的就是为了发现系统中存在的bug和可能存在的bug,为了项目上线做准备也是为了后面的系统的优化和维护做准备。在软件的开发之初,会遇见许多的错误。这些错误从本质出发大致可以分为两种,一种是系统运行时发生的逻辑错误,另一种是在我们设计之初因为考虑不周所造成的设计思路错误。第一种是我们最容易发现的也是最容易解决的,出现错误时代码就会在平台报错,我们可以通过报错找到相应的字段去修改。发生第二种错误时解决起来就相对于更加的困难,因为是我们设计系统的过程中出现的错误,所有我们需要去大量修改之前所确定的设计,导致我们其他功能可能会有所影响,是我们需要大量去修改之前已经编写好的代码,所以,在设计程序之初我们应该更加小心谨慎的去分析每个模块的逻辑,使我们每个模块之间更加的合理,是我们可以尽可能的去避免这种错误的发生,这样也可以大量的减少我们开发的成本和难度。6.3测试步骤一套成熟软件测试应该有三个部分组成,第一,系统中各个小模块的测试,就是对每个细小的功能进行测试,通过对小功能的测试,观察测试结果和我们预期的结果是否相同,是否可以达到客户的提出需求,力求达到我们结果和预期一致。第二,系统层面的测试,就是对该系统的各个功能协同工作进行测试,也是对系统的整体结构的测试,观察每个系统之间相互协共同工作室时是否可以正常的运行,能否打到我们预期的结果。第三,验收测试,验收测试第一步和第二步测试的结合体,系统没有出现错误并且各个功能之间也符合用户所提出的要求,而这也是我们软件开发的最后一步,这些顺利完成我们就可以实现软件的上线发布。6.4测试用例(1)添加菜品测试如表6-1所示。表6-1添加菜品用例用例名称测试目的操作步骤预期结果测试数据实际结果添加菜品判断添加的菜品信息是否成功。1.将需要添加的菜品信息添加至输入框。2.在验证成功之后点击添加按钮。1.菜品添加成功,数据库中可查。。菜名:老八汉堡原料:面包价格:110数据库可以查到相关菜品信息6.4测试结果经过大量的数据测试和功能的实际操作的验证,各项的操作都没有问题,系统的通过对管理员和用户不同身份之间切换,对于各个功能的演示,时期项目完成了最后的测试,后端部分也没有问题,逻辑通顺,思路清晰,对于数据的处理也是井井有条,对所有流程进行了完成的运行,达到了我们的预期效果,符合所布置的任务。7小结7.1总结在过去几个月里,对于基于SSM的网上点餐系统的概念并不是很明确,可以说非常的模糊,通过这次毕业设计,让我见识到了软件的魅力。在完成这个项目的过程中,我锻炼了自己独立思考的能力,和分析一个具体业务的发散性思维,然而在完成项目的过程中,由于自身知识的缺乏,并且是第一次动手做一个完整的项目,让我遇到了许多的困扰和不理解,但是通过和老师的沟通以及自己私下查找资料对所运用的知识的学习,使我更加的自信和清晰,并且自主的完成了项目所需技术的学习和理解。虽然这个项目对于现阶段的我来说是一个巨大的挑战,但是对于项目的完成结果和过程也给我带了很大的成就感,让我知道,只要有付出就一定会有收获,只要肯坚持,那么胜利就在下一站向你招手,我相信我一定可以通过我的的点餐系统,可以给餐厅和用户带来不一样的体验。本次毕业设计极大地锻炼了我动手和动脑的能力,也为我以后从事软件开发行业积累了宝贵的经验。在这次开发中,由于许多的知识都是需要学习的,这也为我带来了不少的困难,而其中最为艰难的就是SSM的学习,由于SSM是一个集成框架,里面所需要学习的知识也是非常的困难,Spring中的IOC和AOP更是拦在我面前的两座大山,后来通过不断地查阅资料和观看视频,我深入的了解到了IOC和AOP的博大精深,当我们使用Spring编程是使用他们两个可以大大的降低了我们的代码量,也使我们代码的耦合度降低,是其层次分明,是我们程序员的一个福音。尽管这些知识对于刚接触的我来说没唱的困难,但是我通过一步步的学习,由浅入深,就好像闯关一样,战胜一个个BOSS最终迎来了胜利的成果。在这次的毕业设计完成的过程中,遇到了许多的困难,但是都已一一的解决了,而我自己的到了锻炼,能力也有了相当大的提升,现在我已经可以独立的完成一个项目的开发,对于这次过程的学习,让我了解到Java开发其实也就是对于数据的曾删改查和业务的实现,但是这简单几个词,把他们拆分为每一个小模块又是不可忽视的大难题,在进行数据的操作和业务的是现实我们不但需要去实现它,还需要去考虑实现的过程中我的资源分配和逻辑结构,让我可以高质量和高效率的去实现我么你所需要实现的业务,这些经验也是我人生中一次重要的积累。我的毕业设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026北京面试题目及答案
- 2026北外口语面试题及答案
- 2026比赛选手面试题目及答案
- 2026毕节家政面试题目及答案
- 2026编程基础面试题及答案
- 2026编织医院面试题目及答案
- 2026辩证社会现象面试题及答案
- 2026滨海县医院面试题及答案
- 2026病原检测面试题目及答案
- 2026捕鱼大鱼小鱼面试题目及答案
- GB/T 3091-2025低压流体输送用焊接钢管
- 2025年乡文化服务中心文化体育工作总结范例(2篇)
- 2025年招商局集团招聘【100人】高频重点提升(共500题)附带答案详解
- 5G-NR数字蜂窝移动通信网无线操作维护中心(OMC-R)测量报告技术要求
- JJF(陕) 112-2024 高频电刀分析仪校准规范
- QC/T 822-2024汽车用压力传感器
- 2024届新高考语文高中古诗文必背72篇 【原文+注音+翻译】
- 买房子定金协议书范文模板
- 国家开放大学《管理信息系统》大作业参考答案
- NB-T25013-2013核电厂发电机组首次并网试验要求
- 造口的护理个案
评论
0/150
提交评论