基于SSH的点餐服务管理系统的设计与实现计算机信息和系统

上传人:文*** 文档编号:53922316 上传时间:2022-02-11 格式:DOC 页数:38 大小:788KB
收藏 版权申诉 举报 下载
基于SSH的点餐服务管理系统的设计与实现计算机信息和系统_第1页
第1页 / 共38页
基于SSH的点餐服务管理系统的设计与实现计算机信息和系统_第2页
第2页 / 共38页
基于SSH的点餐服务管理系统的设计与实现计算机信息和系统_第3页
第3页 / 共38页
资源描述:

《基于SSH的点餐服务管理系统的设计与实现计算机信息和系统》由会员分享,可在线阅读,更多相关《基于SSH的点餐服务管理系统的设计与实现计算机信息和系统(38页珍藏版)》请在装配图网上搜索。

1、本科论文目 录摘 要IAbstractII引 言11 开发工具相关技术31.1 SSH框架31.1.1 Spring31.1.2 Spring MVC31.1.3 Hibernate41.2 前端技术41.2.1 jQuery51.2.2 Bootstrap51.3 数据库技术51.4 本章小结62 系统分析72.1 需求分析72.2 系统工作流程82.3 用例分析92.4 本章小结103 系统设计113.1 系统总体设计113.1.1 系统体系结构113.1.2 系统功能模块设计113.2 系统详细设计123.2.1 数据库设计123.2.2 功能设计153.3 本章小结184 系统实现19

2、4.1 开发环境194.2 开发规范194.2.1 命名规范194.2.2 有关库的规范194.2.3 其他规范194.3 核心功能实现194.3.1 添加菜品功能实现204.3.2 删除会员信息功能实现214.3.3 修改会员信息功能实现234.4 本章小结245 系统测试255.1 登录测试255.2 菜品添加测试255.3 新会员录入测试265.4 会员信息删除测试275.5 本章小结28结 论29致 谢30参考文献31本科论文摘 要随着信息化发展进步,所带来的便利深刻地影响着社会的各行各业,几乎所有行业都会涉及信息化,而提高效率则变得越来越关键,人们也适应了线上进行各种操作的方式。其中

3、餐饮行业更是最重要的一环,吃饭是所有人都会有的一种需求,线上点餐变得越来越重要,但相比较而言顾客去饭店内就餐的线上点餐服务就会少很多。基于此项社会需求,为了提高餐厅内就餐顾客的点餐效率和餐饮企业的工作效率,为在外就餐顾客提高更好地体验,设计并实现了基于SSH的点餐服务管理系统。本文使用了主流的JavaWeb技术,通过对市场地调研完成了需求分析和数据库设计,选用SSH作为开发系统的框架,MySQL为存储管理数据的数据库,Tom-cat作为web应用服务器,通过菜品信息管理、店铺信息管理、订单信息管理等模块完成本系统的设计,使用户只通过二维码就能完成点餐到支付等一系列功能,该系统大大增加了点餐流程

4、的快捷性,同时具备着高效、准确的优点,减少了就餐高峰期的压力,提高了商家服务效率。点餐管理系统在经过测试后,完全实现了预期设计功能,能够满足商家和顾客的需求,并且线上点餐将点餐流程慢,结算过程冗余等问题一一解决;系统性能高效,可操作性强,便于管理,易于维护,能适用于现在的餐饮行业需求。关键词:SSH框架结构; 管理平台; 线上点餐 AbstractWith the development and progress of information technology, the convenience has a profound impact on all walks of life, almo

5、st all industries will contact with it, improving efficiency becomes more and more critical, and people are also adapted to the online operation. Among them, the catering industry is also the most important part. Everyone cant do without one thing every day. Online ordering becomes more and more imp

6、ortant, but compared with the online ordering service, the number of customers who go to restaurants for dinner will be much less. Based on this social demand, in order to improve the ordering efficiency of the customers in the restaurant and the working efficiency of the catering enterprises, and i

7、mprove the better experience of the customers in the restaurant, the SSH based ordering service management system is designed and implemented.This paper uses the mainstream Java Web technology, through the market research to complete the demand analysis and database design, Using SSH as the framewor

8、k of the development system, MySQL as the database to store management data, Tom cat as the web application server, through the food information management, store information management, order information management and other modules to complete the design of the system, so that users can only use Q

9、R code It can complete a series of functions from order to payment. The system greatly increases the rapidity of order process, and has the advantages of high efficiency and accuracy. It reduces the pressure of dining peak and improves the service efficiency of merchants.After the test, the ordering

10、 management system has fully realized the expected design function, which can meet the needs of businesses and customers, and online ordering solves the problems of slow ordering process and redundant settlement process one by one; the system has high performance, strong operability, easy management

11、, easy maintenance, and can be applied to the needs of the catering industry at present.Keywords: SSH framework structure; Management platform; Order online引 言现阶段各行各业关于线上操作的利用愈发广泛,餐饮行业对于线上点餐的功能使用更是用足心思,各种各样的点餐app应运而生,广大群众对其的喜爱也是因为这种使用起来快捷方便的特点。不过对于习惯于堂食的顾客好像没那么“照顾”,还是传统的服务员推荐、记单、下单的操作过程,而扫码点餐这个过程最大的

12、特点就是操作便捷,办事步骤少,相比而言所需要的资源也是最少的。据不完全统计,一套线上点餐系统能够降低餐厅五分之二的人工成本,同时也可节省餐厅营销成本,如广告牌制造、菜单制作费用等1。所以基于这一观点,为线上点餐系统的开发需求提供了强大的背景基础2。开发线上点餐管理系统的意义分为两大方面,一方面是提高餐饮企业的点餐效率,另一方面是为消费者提供更好的就餐体验。传统的点餐过程中,顾客到店,首先需要看菜单,然后还需找收银员或者服务员点菜,最后通过收银后台发送到后厨,对于餐饮企业来说效率很低,对于顾客来说过程很复杂,而且可能还会存在高峰期排队等问题。而用线上点餐系统的话,顾客到店,先挑选座位,而后扫描桌

13、上的二维码,直接在线点餐,下单结算。这其中就节约了很多人力物力,也更加高效3。目前,几点问题还在影响线上点餐系统的发展。1、实际功能与餐饮企业所期望的有所出入,对餐饮企业来说,最大的问题是信息的不对等,企业无法和厂商研发的餐饮软件更好的融合。即使让厂商按照要求专门研发产品,企业却在迅速发展,还是会导致无法完美符合实际要求的情况。2、线上点餐系统缺乏深度,市场每天都在变化顾客的需求也会日益增加,厂商自然会为餐饮软件增加多种功能来应对压力。但这种进步却只停留在表面,往往只是在原本的基础上机械化的加载模块,不能解决根本性的问题。3、由于操作复杂,软件依赖性强,总体成本昂贵,部署非常复杂,对产品开发产

14、生了严重影响4。4、隔行如隔山,软商和餐饮企业更是如此,想要从根本上角度去互相理解是很困难的,大大小小的餐饮企业之间的需求也是有很大不同的,想要做到从餐饮企业的根本需求出发,用信息化推动其发展,增加办事效率,降低各种成本,是一个很难研究的问题5。未来餐饮软件可能存在着两方面变化,内容和功能的体系化以及服务的专门化。通过互联网手段,以餐饮软件作为餐饮管理系统的核心,从食材采购、点菜预定、结账收银、客户维护、网络营销都在一个平台内完成,构建完整生态链的网络化餐饮管理系统,而原材料成本、人力成本、管理成本、营销成本也都会随之进一步降低;专门化趋势则是餐饮软件在为餐厅提供服务上,更具有针对性,能够根据

15、餐厅的不同业态和规模进行调整,从而实现效率的进一步提高。本文共分为5章,安排如下:第1章, 为系统的开发所用技术的描述,其中包括了框架技术Spring、SpringMVC、Hibernate以及MySQL数据库等,并且对这些技术特点优点进行了详细地描述,最后在本章小结进行了统一的阐述。第2章, 对本系统进行了分析,包括了需求分析、非需求分析、系统工作流程、用例分析,并通过结合流程图用例图的方式进行生动描述。第3章, 则为系统的详细设计部分,其中先后描述了系统结构设计、系统功能模块设计、数据库设计部分,并结合了结构图、E-R图以及核心数据表对本系统进行了一个详细的描述。第4章, 写了系统的实现,

16、主要介绍系统的开发环境、开发规范部分。第5章, 描述了对系统核心功能的测试,通过分析测试计划、规划测试方法、测试用例表等方式对系统的核心功能进行了充分的测试证明。结论,阐述系统总体的完成情况,对系统进行合理评价,并对点餐系统系统未来前景进行展望。1 开发工具相关技术本点餐服务管理系统采用Java+Tomcat+Mysql的组合方式进行研发77。Java作为开发软件的主要语言,Web服务器使用了Tomcat,存储、管理数据的数据库使用了MySQL。而为了实现各种请求的处理以及对象化管理,使用了SSH框架来搭建系统结构的基础。1.1 SSH框架由Spring,SpringMVC和Hibernate

17、组成的SSH框架具有很多特点。Spring作为非侵入式的一款侧重于减小开发复杂度的框架,为了利于系统的重新构造和后期的维护,Spring系统应用中尽量降低了代码依赖,并且不仅是将开发的程序运行在服务器上8。1.1.1 Spring在企业级Java应用程序开发框架中Spring无疑是最受推行的,是一个处于设计层面的轻量级开发框架,也包含着面向接口的的程序技术思想9。最初由Rod Johnson编写的Spring框架,可以用于开发所有的Java应用程序,这是最重要的一个特性。不仅如此,Spring框架的目标是通过启用基于POJO的编程模型,让J2EE的开发变得更简单且更易使用10。Spring框架

18、中不可缺少的组件是面向切面的编程(AOP)框架11。面向切面的编程需要把计算机程序正确性的逻辑规则,分解成各种不尽相同的部分,也就是关注点。横切关注点,也就是跨应用程序的多个点的功能,在概念上不依赖于应用程序所实现的具体功能。有许多常见例子可以体现,如日志记载。Spring框架主要包括了控制反转和面向切面的容器框架,Spring能够自动的去查找依赖对象,并完成应用对象所应去处理的业务逻辑,该框架分为了Spring Core、Spring Context、Spring ORM、Spring AOP、Spring Web MVC、Spring Web、Spring Dao7大模块,基于此将能从多个

19、方面解决了企业开发所需的一切内容。1.1.2 Spring MVCSpring MVC是一种基于Java,完成了Web MVC设计形式的请求驱动类型的WEB框架,也是一种侧重于减小开发复杂度的框架。其运用了MVC架构模式的思想,利用反射机制来解决代码难以维护和高耦合的问题,实现了Spring的IoC思想12。这种MVC模式,M指的是model模型层做业务逻辑运算,针对数据的持久化方面操作等;V则是view视图层,将数据展现给客户和接受请求,调用模型层,响应处理结果。而Spring MVC就是属于C层,其工作原理,是先发送Request请求,而后将此请求经过一系列处理器、解析器、控制器等数据处理

20、后,经过视图渲染传给用户,显示出必要的数据。一般来说,SpringMVC工程创建简单,重点在于配置文件的编写13,常用注解开发,有效地处理了网页中乱码等情况,并且注解开发的好处之一就是简化了代码,提高了效率,相对于系统更加安全,便于管理14。1.1.3 HibernateError! Reference source not found.Hibernate是一个优秀的持久层框架,负责向数据库的传输,数据对象永久接受对象关系的映射,从对象的角度访问数据库,而在主流的描述对象和数据库之间,映射到开发人员的元数据工具,可以在对对象的思想操作中,使用关系模型来组织数据的数据库,并且Hibernate使

21、JDBC变为轻量级的目标包,使编码过程更加方便快捷15。Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。Session的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。SessionFactory的内置缓存和Session的缓存在实现方式上比较相似,前者是SessionFactory对象的一些集合属性包含的数据,后者是指Session的一些集合属性包含的数据。外置缓存的数据是数据库数据的拷贝,外置缓存的介质可以是内存或者硬盘。SessionFactory的外置缓存也

22、被称为Hibernate的第二级缓存。Hibernate的优势也十分明显16。Hibernate不用编写任何代码就能处理映射Java类别到数据库表格中,仅仅是通过使用XML文件;可以提供应用程序接口来直接在数据库中存储和检索Java对象。可以修改XML文件属性以在数据库或其他表中更改它;提供了一个熟悉的Java对象;抽象不熟悉的SQL类型;操作无须使用应用程序服务器17;对于所有的主要RDBMS都能支持。1.2 前端技术jQuery是一个优秀的轻量级JavaScript框架,它能简化HTML、文档元素的遍历等来实现Web的快速开发。Bootstrap是一个用于快速开发Web 应用程序和网站的前

23、端框架。它基于HTML、CSS、JavaScrip,提供了HTML和CSS的规范。jQuery能够兼容所有的主流浏览器,这使得对DOM的快速访问变得非常简单。1.2.1 jQueryjQuery是一个快速、简洁的JavaScript框架,其理念就是提倡去写更少的代码,完成更多的事情,简化了许多JavaScript编程任务,简单而易于理解的应用程序编程接口也使jQuery的表现效果非常出色。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。随着越来越多的开发者加入,jQuery也集成了众多于一体的强大功能

24、,得到了许多开发者的青睐。1.2.2 BootstrapBootstrap常用于开发响应式布局、移动设备优先的WEB项目,是一个CSS /HTML 框架。它的特点是简单灵活,可用于架构流行的用户界面和交互接口的html、css、javascript工具集。并且作为响应式设计的框架,其兼容性也十分卓越。它的优势是能给用户提供更好的视觉使用体验,由于它是响应式布局的设计,也能使一个网站去兼容不同分辨率的设备。因为其可视化布局的特点,可以不写代码,也不辛辛苦苦的调整格式,就能直接从左侧选择想要的框架,拖拽即可迅速的完成前端的基础框架,对于开发本项目来说是最好的选择。1.3 数据库技术MySQL是一个

25、处理互相关联之间的逻辑,并存取这些数据的一套程序。如今的这样的数据库有很多种,包括Oracle、SQLServer,虽然MySQL不是最优秀的一个,但最受到中小型企业喜爱的数据库管理系统却是MySQL,其中一个原因就是MySQL是一款开源软件,并且功能还很强大;另外MySQL是由最基础的C语言和C+语言编写的,进行多种测试后投入使用18。MySQL的特点有很多,不过最重要的一点还是开源、免费、使范围广,跨平台支持性好,提供了多种语言的调用应用程序编程接口。MySQL是目前为止最流行的关系数据库管理系统之一。MySQL数据库系统是完全通过网络来实现跨平台关系的,是具备C/S体系结构的DDBMS2

26、0。MySQL之所以受到了广大自由软件编程爱好者的偏爱,是因为其运行速度快、善于变化、经济实惠、实用性强、管理方便、使用便捷、安全可靠、巧妙的系统结构以及丰富的API等方面21,为建立基于数据库动态网站起到了极大的作用。MySQL包含了4种类的索引,其中包括普通索引,唯一索引,主键索引和全文索引,能大大的提高数据库的检索速度,相比较这些索引占用数据库的物理和数据空间,还是非常值得的。MySQL对于事务处理功能也十分优秀,不仅能防止意外操作失误导致的数据损失,而且也能大大加强数据的安全性。此项功能无论对开发人员还是对于使用MySQL为基础的平台的用户来说,都是一个很好的安全保障。1.4 本章小结

27、本章主要描述了本文所提及到的核心技术,包含Spring、SpringMVC、Hibernate、jQuery、Bootstrap、MySQL等等,从前台技术到后端引用均有详细介绍。对于该系统的数据库及底层框架结构,均做了明确统一的描述介绍。通过深入了解学习这些技术,为后续系统的实现完成打下了稳固的基础。2 系统分析2.1 需求分析本系统主要是为餐饮企业提供菜品信息管理、门店信息管理、销售额管理等服务,并为用户提供在线点餐和支付等功能22。通过对多家典型餐饮企业地调研发现,线上点餐系统需求分析主要分为以下几点23。 1.商家登录。商家需在系统后台管理界面内进行登录操作,若无账号可通过注册账号账号

28、,再完成登录操作,若未登录就进入主页面则无法对整个系统进行管理操作。 2.维护实时信息。餐饮企业可以通过后台实时维护店内信息以及菜单信息等,保证各种信息的实效性与准确性。 3.订单整合。餐饮企业可以在后台对订单进行销售额统计、餐位和订单信息管理等一系列操作。 4.订单与支付。顾户到店选好位置后,只需通过扫描桌上二维码即可进入点餐主界面,然后进行点餐的一系列操作,最后可直接进行支付结算。 5.便利性。用户一切点餐操作只需通过二维码进行;餐饮企业能通过后台及时收到用户订单,迅速对订单进行反馈处理。 6.实用性。系统主页面美观且直观,用户操作需简单便捷,各项功能使用起来一目了然。 7.完整性。顾客整

29、个点餐过程的数据要完整,以便商家进行销售分类统计。非功能性需求是为了本系统能够提高用户地体验而对系统需求做出的补充,设计了许多提示信息来提示用户,以便用户更好的去使用本系统24。在开发系统时,选用了含义明确的图标,颜色鲜明的提示,整个页面简洁美观,操作栏处于明显位置,各功能页面风格统一,能良好的显示出图片文字信息25。并且因为餐饮企业需求日新月异,可拓展性是一个极其重要的因素,预留出了可以进行升级的模块,来应对未来变化而对系统进行更新升级维护。可拓展性是指本系统是一个处于长期活跃使用的系统,所以对于可拓展性方面是一个需要去重点考虑的因素,预留出可以进行升级的模块。可以对未来的餐饮企业需求变化问

30、题,对系统进行更新升级维护。可维护性是指为了用户的使用体验,系统将定期进行维护,将不必要出现的内容进行更新,对经过实际测试证明出后的系统错误进行更改和预防性维护。2.2 系统工作流程首先普通用户只需要扫描二维码就可进入到点餐界面,在此页面可以进行点餐支付功能,如查看菜品,加入购物车并下单等,最后可以直接通过二维码进行支付结算,如图2.1所示。图2.1 普通用户部分功能流程图其次管理员角色,管理员登录后才可以进行对各大模块的管理工作。可以对菜品进行添加、删除、修改、查找操作,对分类进行增加、删除、修改、操作,对餐位进行添加、删除、操作,会员信息管理,查看目前订单,完成销售统计,商家信息维护等操作

31、,从而帮助餐厅更高效地管理餐厅。如图2.2所示。图2.2 管理员部分功能流程图2.3 用例分析系统执行的一个动作序列或者与用户的交互,这些动作必须对某个特定的使用者产生可观测的、有价值的结果。是各种系统受益人之间的一种行为契约,建立契约的目的是为了达成某种目标,因此每一个用例及其名称实际上都应代表一个用户目标,这个目标是否得到真正满足正是判断抽取的某个用例是否有价值的关键。用例分析是从用例模型到分析模型的过程,是需求与设计之间的桥梁。用例分析把系统的行为分配给分析类,让分析类交互完成系统的行为。基于此分析出,本项目涉及管理员和普通顾客用户两类系统,管理员和普通顾客用户属于系统外部,用例属于系统

32、内部;两类系统均可以驱动用户功能用例包含常规的系统基本功能,普通顾客用户可以驱动查看菜品、添加购物车、删除购物车、下单结算等功能。管理员则可以驱动菜品信息、会员信息、订单信息、销售信息、商家信息等管理。如图2.3所示。图2.3 系统用例图管理员为唯一角色,登录与其他所有用例都有include关系。管理员可以登录、注销、修改个人信息、菜单信息管理、会员信息管理、订单信息管理、销售信息管理、门店信息管理等。管理员的用例图如图2.4所示。图2.4 管理员的用例图2.4 本章小结本章从点餐系统的需求分析以及系统具体的工作流程两个角度来进行描述,系统中普通用户只需要扫描二维码就可进行点餐操作,管理员则需

33、要登录才能访问本系统,对本系统进行操作。不同角色按照身份进入不同的首页面,进行不同的操作等工作流程的介绍。3 系统设计3.1 系统总体设计3.1.1 系统体系结构线上点餐服务系统系统体系结构分为5层,分别为表现层、控制层、逻辑层、数据访问层和数据库5层。第1层表现层为用户所能观测到的方面,显示的界面、显示的图表、数据等情况,包括用户方面所使用的各种设备、硬软件等;第2层为控制层,也就是将请求从页面转到后台代码,将多种关系分开控制、提高功能的强度,增强独立性;第3层是逻辑层,负责处理数据,并对数据库执行复杂的逻辑决策和数据验证,为各种功能提供所运用的逻辑思维;第4层是数据访问层,本层负责将数据存

34、入数据库中,主要对MySQL数据库的访问和应用,使数据持久化;第5层数据库,是本系统所有经过处理的数据最终所储存的位置,实现了数据的集中控制与管理。本系统结合MVC设计模型,Controller层主要来处理用户的请求,然后传到Model层来进行数据处理,比如获取数据库连接,访问数据库等,再传给服务器端操作,最后通过View层显示数据,系统体系结构图如图3.1所示。图3.1 系统体系结构图3.1.2 系统功能模块设计线上点餐系统将从前台、后台两个角度进行模块划分;前台由菜品搜索、购物车、订单管理三个模块组成;后台管理程序功能主要包括订单统计管理、菜单信息维护、商业信息管理三个功能模块,系统总体结

35、构图如图3.2所示。图3.2 总体功能结构图3.2 系统详细设计3.2.1 数据库设计数据库的设计是信息系统将系统需求的分析,达到具体系统的实现的第一步,也是最关键的问题,建立一个数据库及其应用系统来满足信息要求和处理要求。经过对多家典型餐饮企业的调研,设计出对应的系统概念结构。系统E-R图如图3.3所示。图3.3 系统E-R图 逻辑结构设计如表3.1至表3.11所示,表中有3个字段,1个整型字段,2个字符串类型,所有字段不允许为空,并与实际内容相符合,其中主要字段Dishid可以自行增加并且不允许为空,如表3.1所示。表3.1 做菜表字段名类型约束描述DishidINT(255)PK、AI菜

36、品编号AmountVARCHAR(255)Not null份数DishvarietyVARCHAR(255)Not null口味表中有2个字段,均为整型字段,所有字段不允许空,主要字段Deskid可以自行增加并且不允许为空,如表3.2所示。表3.2 座位使用情况表字段名类型约束描述DeskidINT(255)PK、AI桌号UseVARCHAR(255)Not null是否使用表中有9个字段,6个整型字段,3个字符串类型,所有字段不允许空,主要字段Deskid可以自行增加并且不允许为空,如表3.3所示。表3.3 点菜表字段名类型约束描述DeskidINT(255)PK、AI桌号Dishedtim

37、eVARCHAR(255)Not null点菜时间Dishid INT(255)Not null菜品编号AmountINT(255)Not null份数DishvarietyINT(255)Not null口味CustomersINT(255)Not null顾客人数MemberidVARCHAR(255)Not null会员idDishplay VARCHAR(255)Not null付款Cooked INT(255)Not null完成结果表中有9个字段,4个整型字段,5个字符串类型,所有字段不允许空,主要字段Dishid可以自行增加并且不允许为空,如表3.4所示。表3.4 菜品表字段名类

38、型约束描述Dishid INT(255)PK、AI菜品编号Dishname VARCHAR(255)Not null菜品名称Dishprice VARCHAR(255)Not null菜品单价DishdiscountVARCHAR(255)Not null菜品折扣Freq INT(255)Not null评分次数ScoresINT(255)Not null评价总分Average INT(255)Not null平均分Dishvariety VARCHAR(255)Not null菜品口味表中有6个字段,1个整型字段,5个字符串类型,所有字段不允许空,主要字段Dishedtoken可以自行增加并

39、且不允许为空,用于记录每次的消费情况。如表3.5所示。表3.5 销售表字段名类型约束描述Dishedtoken INT(255)PK、AI一桌子的菜单表示DishedtimeVARCHAR(255)Not null点餐时间DeskidVARCHAR(255)Not null桌号DishidVARCHAR(255)Not null菜品编号Amount VARCHAR(255)Not null菜品份数Dishplay VARCHAR(255)Not null付款表中有4个字段,2个整型字段,2个字符串类型,所有字段不允许空,主要字段LoginLogId可以自行增加并且不允许为空,用于记录每次登录的

40、登录信息。如表3.6所示。表3.6 登录日志表字段名类型约束描述LoginLogIdINT(255)PK、AI登录编号LoginDateTime VARCHAR(255)Not null登录时间LoginIp VARCHAR(255)Not null登录IPLoginIdINT(255)Not null登录ID表中有6个字段,2个整型字段,4个字符串类型,所有字段不允许空,主要字段LoginId可以自行增加并且不允许为空,如表3.7所示。表3.7 登录信息表字段名类型约束描述LoginId INT(255)PK、AI序号LoginNameVARCHAR(255)Not null登录名Passw

41、ord VARCHAR(255)Not null密码NicknameVARCHAR(255)Not null昵称LoginTime INT(255)Not null登录次数Remark VARCHAR(255)Not null备注表中有5个字段,1个整型字段,4个字符串类型,所有字段不允许空,主要字段Memberid可以自行增加并且不允许为空,用于储存会员的基本信息。如表3.8所示。表3.8 会员表字段名类型约束描述MemberidINT(255)PK、AI会员IDPasswd VARCHAR(255)Not null密码Membername VARCHAR(255)Not null会员姓名C

42、ustomcounts VARCHAR(255)Not null消费次数CustompayVARCHAR(255)Not null总消费金额表中有2个字段,1个整型字段,1个字符串类型,所有字段不允许空,主要字段Date可以自行增加并且不允许为空,如表3.9所示。表3.9 销售统计表字段名类型约束描述DateINT(255)PK、AI日期Sales VARCHAR(255)Not null销售额表中有4个字段,1个整型字段,3个字符串类型,所有字段不允许空,主要字段WebInformationId可以自行增加并且不允许为空,如表3.10所示。表3.10 Web信息表字段名类型约束描述WebIn

43、formationIdINT(255)PK、AIWeb信息IdWebInformationNameVARCHAR(255)Not nullWeb信息名称Content VARCHAR(255)Not null内容DercriptionVARCHAR(255)Not null描述表中有5个字段,2个整型字段,2个字符串类型,1个时间戳类型字段所有字段不允许空,主要字段FeedbackId可以自行增加并且不允许为空,如表3.11所示。表3.11 反馈信息表字段名类型约束描述FeedbackIdINT(255)PK、AI反馈编号ContentVARCHAR(255)Not null内容Feedbac

44、kDateTimeTIMESTAMPNot null反馈时间LoginId INT(255)Not null登录IDDercriptionVARCHAR(255)Not null描述3.2.2 功能设计添加菜品信息功能,管理员通过登录进入主界面后,选择菜品管理模块,点击菜品添加,即进入到添加菜品界面,按照需求进行输入,点击添加,即可将所输入的菜品信息保存到数据库中。添加菜品信息功能的时序图如图3.4所示。图3.4 菜品信息添加功能时序图菜品信息添加功能设计,首先管理员进入添加界面,即adddish.jsp页面,按照要求输入菜品信息,其中包括菜品名称、价格等,通过点击添加按钮完成信息添加操作。录

45、入的菜品信息将传送至后端服务器并通过AdddishController接收并传递给DishService进行结果处理,进而再传递给DishDao,DishDao会调用insert()方法对数据库进行操作。设计思路如表3.12所示。表3.12 菜品信息添加功能描述编号类名功能描述1adddish.jsp按需求输入菜品信息点击添加按钮。随后将输入信息以POST方式提交给AdddishController。2AdddishController接收来自JSP页面表单传递的数据,进行处理后传递给DishService。3DishService调用insert()方法,接收并处理AdddishContro

46、ller传递的数据,随后传递给DishDao。4DishDao调用insert()方法操作数据库,完成菜品信息添加功能,并返回操作结果。删除菜品信息功能,管理员通过登录进入主界面后,选择菜品管理模块,即进入到菜品显示界面,选择需要删除的菜品信息并点击右侧删除按钮,会提示是否删除信息,点击确定,即可将此条数据在数据库中删除。并也将不再显示删除过的菜品信息。删除菜品信息的时序图如图3.5所示。图3.5 菜品信息删除功能时序图菜品信息删除功能设计,首先管理员进入菜品信息界面,即adddish.jsp页面,选择需要删除的一条菜品信息并且点击右侧删除按钮,系统会提示是否删除此条信息,点击确定删除,即可完

47、成对此条菜品信息的删除操作。用户删除菜品信息序号将传送至后端服务器,并通过AdddishController接收并传递给DishService进行结果处理,进而再传递给DishDao,DishDao会调用delete()方法对数据库进行操作。设计思路如表3.13所示。表3.13 菜品信息删除功能描述编号类名功能描述1adddish.jsp按需求对某条菜品信息点击右侧删除按钮。随后将请求信息以POST方式提交给AdddishController。2AdddishController接收来自JSP页面传递的菜品序号信息,进行处理后传递给DishService。3DishService调用delet

48、e()方法,接收并处理AdddishController传递的数据,随后传递给DishDao。4DishDao调用delete()方法操作数据库,完成菜品信息删除功能,并返回操作结果。修改菜品信息功能,管理员通过登录进入主界面后,选择菜品管理模块,即进入到菜品显示界面,选择需要修改的菜品信息并点击右侧修改按钮,即可对此条信息进行重新编辑,点击修改,即可将此条数据在数据库中更新。修改菜品信息功能的时序图如图3.6所示。图3.6 菜品信息修改功能时序图菜品信息修改功能设计,首先管理员进入菜品信息界面,选择需要修改的一条菜品信息并且点击右侧修改按钮,在修改本文框中对菜品信息重新输入,点击修改,即完成

49、对此条菜品信息的修改操作。用户修改菜品信息序号将传送至后端服务器,并通过AdddishController接收并传递给DishService进行结果处理,进而再传递给DishDao,DishDao会调用update()方法对数据库进行操作,结果将被返回给管理员。设计思路如表3.14所示。表3.14 菜品信息修改功能描述编号类名功能描述1adddish.jsp按需求对某条菜品信息点击右侧修改按钮。随后将请求信息以POST方式提交给AdddishController。2AdddishController接收来自JSP页面传递的菜品序号信息,进行处理后传递给DishService。3DishServ

50、ice调用update()方法,接收并处理AdddishController传递的数据,随后传递给DishDao。4DishDao调用update()方法操作数据库,完成菜品信息修改功能,并返回操作结果。3.3 本章小结本章介绍了系统的设计思路、数据库表的设计、功能设计,为完成后续具体设计打下基础,将系统进行划分,通过图表等方式进行具描述。4 系统实现4.1 开发环境服务器硬件方面CPU要求i5以上;内存要求不小于512MB;硬盘要求不小于50G;服务器软件方面操作系统为Windows 10;数据库服务器要求使用MySQL Workbench 6.3;Web服务器要求使用Google Chro

51、me55.0或者以上;客户端软件方面操作要求Windows7、Windows8或者Windows10;浏览器要求使用Google Chrome55.0或者以上;开发工具使用Myeclipse。4.2 开发规范4.2.1 命名规范包名:包名一般是由全部小写的字母构成的唯一包名,中间由点区分开特定的目录名,例如:java.avt.event;类名:首字母缩写为大写,大写由多个首字母缩写合成,类名尽可能简洁明了,例如class Hello;接口名:与类名相同的命名规则;方法名:在多个单词的组合中,第一个单词是一个普通动词、一个首字母缩略词和每个单词的中间字母;变量名:全部小写,且在命名时最好便于区分

52、记忆,例如:age;常量名:基本数据类型的常量名为全大写与变量名规则相似。4.2.2 有关库的规范数据库要以符合实际的情况去命名,一切表名与字段名称不能出现汉字或者特殊符号;并且数据库任何一张表都必须有主键字段;数据库中任何一张表的主键字段必须自增长且唯一。4.2.3 其他规范在任何软件的生命周期中,超过五分之四的花费会对其的维护上,编码规范能大大加强软件的可读性,使其更好的被理解,因此编码规范尤为重要,代码的缩进要使用Tab键而不是用空格来将其分开,if条件语句中的也需与其在同一行;最好将jsp文件、HTML与JS和CSS分开;前端部分要有一定的注释,便于表明所要的含义,对于内容的表达一定要

53、表述清楚,其格式不限。后台部分也需进行注释说明,包括单行注释、多行注释、文本注释等。4.3 核心功能实现管理员通过用户名密码进行登录后,即可进入管理系统主界面,在界面左侧显示了本系统的几大功能,分别为菜品管理、会员信息管理、订单管理、销售统计、和信息维护,点击一级导航栏信息,会显示二级导航栏内信息。如图4.1所示。图4.1 线上点餐管理系统管理员主界面4.3.1 添加菜品功能实现用户进行登录后,选择左侧导航栏中的菜品管理,进入到添加菜品界面,在本页面的添加框中按照提示输入菜品名称、菜品单价、菜品折扣等等信息。点击添加按钮,即可将新录入的菜品信息添加进数据库中,并且对新添加的菜品信息进行显示。功

54、能界面如图4.2所示。图4.2 添加菜品信息功能界面添加菜品信息核心代码如下所示。public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(UTF-8);response.setCharacterEncoding(UTF-8);response.setContentType(text/html);String operateType = request.getParame

55、ter(hidOperateType);tryif(operateType != null & operateTpareToIgnoreCase(add) = 0 )DishesBean dishes = new DishesBean(); / dishes.setDishesId();dishes.setDishname(request.getParameter(Dishname);dishes.setDishprice(request.getParameter(Dishprice);dishes.setDishdiscount(request.getParameter(Dishdiscou

56、nt);dishes.setFreq(request.getParameter(Freq);dishes.setScores(request.getParameter(Scores);dishes.setAverage(request.getParameter(Average);dishes.setDishphotoimage(request.getParameter(Dishphotoimage);dishes.setDishvariety(request.getParameter(Dishvariety);DishesDao dao = new DishesDao();if (dao.in

57、sert(dishes) 0)request.setAttribute(AlertMessage, alert(添加成功!););elserequest.setAttribute(AlertMessage, alert(添加失败!););catch (RuntimeException e)request.setAttribute(AlertMessage, alert( + e.getMessage() + );); catch (SQLException e) /TODOAuto-generatedcatchblocke.printStackTrace(); doGet(request,re

58、sponse);4.3.2 删除会员信息功能实现管理员登录进入系统后,选择左侧导航栏中的会员管理,进入到显示会员信息界面,在本页面能够显示所有的会员信息,对要删除的一条数据信息点击右侧的删除按钮,系统会提示是否删除信息,点击确定按钮,即可将所选择信息从数据库中删除,并且页面将刷新,不再显示已删除的会员信息,对会员信息进行更新。功能界面如图4.3所示。图4.3 删除会员信息功能界面删除会员信息核心代码如下所示。public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletExce

59、ption, IOException request.setCharacterEncoding(UTF-8);response.setCharacterEncoding(UTF-8);response.setContentType(text/html);MemberBean member = new MemberBean();String operateType = request.getParameter(hidOperateType);tryif(operateType != null & operateTpareToIgnoreCase(remove) = 0 )int memberid

60、 = 0;trymemberid = Integer.parseInt(request.getParameter(hidMemberid);catch(Exception ex)MemberDao dao = new MemberDao();if (dao.delete(memberid) 0)request.setAttribute(AlertMessage, alert(删除成功!););elserequest.setAttribute(AlertMessage, alert(删除失败!););catch (RuntimeException e)request.setAttribute(AlertMessage, alert( + e.getMessage() + );); catch (SQLException e) e.printStackTrace(); doGet(request,response);4.3.3 修改会员信息功能实现管理员登录进入系统后,选择左侧导航栏中的会员管理,进入到显示会员信息界面,在本页面能够显示所有的会员信息。在此区域设有修改按钮,对要修改的一条数据信息点击右侧的修改按钮,系统会将此条信息变更为可输入状态,根据系统的提示,对密码、会员姓名、消费次数、总消费金额等信息进行重新定义,修改完成,点击确定按钮,即可将所选择信息从数

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!