电子点餐系统—服务器端的设计与实现_第1页
电子点餐系统—服务器端的设计与实现_第2页
电子点餐系统—服务器端的设计与实现_第3页
电子点餐系统—服务器端的设计与实现_第4页
电子点餐系统—服务器端的设计与实现_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计说明书题 目:电子点餐系统 服务器端的设计与实现院 (部):计算机科学与技术学院专 业: 软件工程班 级: 软件123姓 名: 俞延峰学 号: 20121112125指导教师: 伊静完成日期: 2016年6月30日山东建筑大学毕业设计说明书目 录摘 要ABSTRACT1前 言- 1 -1.1 选题背景- 1 -1.2 系统简要说明- 1 -1.3 开发技术介绍- 1 -1.3.1 MVC设计模式介绍- 2 -1.3.2 Struts框架简介- 3 -1.3.3 Hibernate对象关系映射框架简介- 3 -1.3.4 Spring框架简介- 3 -2 需求分析- 4 -2.1 系统设计目标- 4 -2.2 可行性分析- 4 -2.3 系统特点- 4 -2.4 系统功能- 5 -2.5 系统环境- 5 -2.5.1 系统运行环境- 5 -2.5.1 系统开发环境- 5 -3 概要设计- 6 -3.1 系统功能结构- 7 - 3.2 系统功能描述- 7 -3.2.1 消费者模块- 7 -3.2.1 点菜员模块- 7 -3.3 数据设计- 8 -3.3.1数据库需求分析- 8 -3.3.2 E-R图- 8 -3.3.3 数据库物理设计- 9 -4 详细设计与系统的实现- 11 -4.1 系统类和包的组织介绍- 12 -4.2 架构的实现- 12 -4.2.1 表示层的实现- 12 -4.2.2 业务逻辑层的实现- 17 -4.2.3 数据持久层的实现- 18 -4.3 功能模块的实现- 18 -4.3.1消费者模块的实现- 18 -4.3.2点菜员模块的实现- 22 -4.3.3后厨模块的实现- 24 -4.3.4经理模块的实现- 27 -5系统测试- 32 -5.1测试主要功能点- 34 -5.2测试准备工作- 34 -5.3测试结果- 35 -5.4验收测试- 35 -6 结论- 36 -谢 辞- 37 -参考文献- 38 - 摘 要“电子点餐系统服务器端功能的设计与实现”的设计目的是为了实现餐馆点菜工作信息化,高效为顾客服务的重要工作之一。系统结合点菜工作的特点,利用网络的有效传播性,提高点菜工作效率、节省点菜时间,尽快生成点菜单,为各位前来消费的顾客提供及时而丰富的菜谱信息,帮助顾客选择美味并且丰盛的佳肴。本文关于“电子点餐系统”进行了说明,系统基于MVC开发模式,总共分为三层:业务层、数据层、表现层。业务层负责业务逻辑的处理,数据层负责与数据库后台交互,表现层负责前台界面的展示。运用了struts+spring+hibernate的集成框架,其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。关键词:电子点餐系统;MVC;Struts;Spring;HibernateElectronic ordering system - Design and implementation of server ABSTRACTElectronic ordering system is designed to work in order to achieve a la carte restaurant information, one of the important work and efficient customer service. Combining the characteristics of a la carte system work, the use of effective dissemination of the network, a la carte improve efficiency and save time ordering, generating carte menu as soon as possible for you to come and spend customers to provide timely information and rich recipes, to help customers choose delicious and hearty cuisine.Key Words: Electronic ordering system;MVC;struts+spring+hibernateVI 山东建筑大学毕业设计说明书 1前 言1.1 选题背景 在这个科技高速发展的时代,科技改变了很多传统行业的运营模式。当然,餐饮业也不例外,通常情况下,餐厅点餐、送单、结账都采用人工传递,这种工作流程效率低下,而且在就餐高峰期,服务员在快速手写菜单、人工送单中可能还会增加误操作,造成客人投诉,影响到服务质量,甚至有损餐厅的声誉。在这个“民以食为天”的社会中,远远不能满足广大消费者的饮食需求。基于以上问题,本人开发了一个“电子点餐系统”,该系统能够缩短点餐、下单的时间,提高餐厅的用餐效率;最大限度的降低了点才下单过程中的出错率;增加消费者的满意程度;美观简洁的界面方便消费者的使用,强大的功能满足了商家的基本需求。它可以取代传统的手工方式,工作效率得到了显著提高。 1.2 系统简要说明 “电子点餐系统”的设计目的是为了实现餐馆点菜工作信息化,高效为顾客服务的重要工作之一。系统结合点菜工作的特点,利用网络的有效传播性,提高点菜工作效率、节省点菜时间,尽快生成点菜单,为各位前来消费的顾客提供及时而丰富的菜谱信息,帮助顾客选择美味并且丰盛的佳肴。消费者是该系统的重要组成部分,该业务模块的主要功能包括:1) 消费者点餐2) 消费者下单3) 消费者评价4) 修改个人信息以及删除订单1.3 开发技术介绍 “电子点餐系统”,通过消费者以及点菜员的智能点餐,提高了效率,采用基于MVC开发模式,采用SSH架构编写的一套点餐系统。1.3.1 MVC设计模式介绍MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。模型视图控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。总结一下MVC处理过程,首先控制器用来接收用户的请求,来决定调用那个模型来处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回数据,并通过表示层呈现给用户。 mvc中的模型、视图和控制器如图1-1所示。 图1-1 mvc模型1.3.2 Struts框架简介Struts是最早的java开源框架之一,它是MVC设计模式的一个优秀实现。 Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml)隔离Model(模型)和View(视图),以Action的概念以对用户请求进行了封装,使代码更加清晰易读。 Struts还提供了自动将请求的数据填充到对象中以及页面标签等简化编码的工具。 Struts能够开发大型Java Web项目。1.3.3 Hibernate对象关系映射框架简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来 操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命 意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。1.3.4 Spring框架简介Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。 2 需求分析2.1 系统设计目标 根据该系统的实际情况和特点,采用了jsp作为开发方式,采用了mysql数据库,采用mvc模式,SSH框架的电子点餐系统才得以设计与实现。最终实现了包含消费者点餐,点菜员帮助点餐,厨师操作菜品等功能。2.2 可行性分析可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工 程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意 见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具有预见性、公正性、可靠性、科学性的特点软件可行性分析最根本的是:如果问题不值得解,分析员应该建议,以避免时间、资源、人力和金钱的浪费;如果问题值得解,分析员应该一个,并且为工程制定一个初步的计划。软件可行性分析包括以下八个步骤 1. 复查系统规模和目标 2. 研究目前正在使用的系统 3. 导出新系统的高层逻辑模型 4. 重新定义问题 5. 导出和评价供选择的解法 6. 推荐行动方针 7. 草拟开发计划 8. 书写文档提交审查2.3 系统特点电子点菜系统主要实现对消费者点餐下单的管理,最终实现集点餐下单、确认订单、制作订单、完成订单等一列功能于一体的简洁的营销模式。根据以上所提及的功能,系统应该具有以下几项重要特点:(1) 美观的界面,给消费者提供视觉的吸引。(2) 合理易懂的功能划分,方便消费者了解和使用本系统,提高效率。(3) 方便的数据查询功能,可以实时对菜品菜单的更新作出调整(4) 保证系统数据的可靠性和运行的稳定性2.4 系统功能(1) 提供经理管理功能,方便对菜品、点菜员以及后厨进行增删改查等操作。(2) 支持点菜功能,跟踪消费者下单情况,做实时地调整2.5 系统环境2.5.1 系统运行环境 电子点餐系统运用SSH框架,基于MVC模式设计开发。整个系统具备可重用、跨平台、易于维护等特点。(1) 服务器端 处理器:Intel酷睿i5 3210MCPU 或更高 内存:DDR3 4GB或以上 操作系统:Windows系列PC机 应用服务器:Apache tomcat Java运行环境:JDK1.6 数据库:MySql(2)客户端 处理器:Inter Pentium 4 1.6 GHz或更高 内存:256MB或以上 浏览器:各种浏览器均可,建议分辨率为1024768像素2.5.1 系统开发环境 由于开发工具MyEclipse对内存要求较高,未保证其能正常运行及调试,内存应在512M以上。 PC机:Intel酷睿i5 3210MCPU + DDR3 操作系统:Windows系列PC机 开发语言:java,jsp,ajax 所用框架: Struts2 + Hibernate + Spring 开发工具:Apache Tomcat 6.0 JDK 1.6.0 IDE:Myeclipse8.5 3 概要设计3.1 系统功能结构根据需求分析,电子点餐系统的功能结构图如图3-1所示。主要包括消费者点餐、下单、评价,点菜员点餐、下单、确认订单,后厨修改菜品、确认订单以及经理管理用户和菜单、根据销量调整菜品价格。 图 3-1 系统功能结构图3.2 系统功能描述根据需求,电子点餐系统设计了如图3-1中所示的几大功能,下面简单介绍消费者和点菜员这两大功能模块:3.2.1 消费者模块此模块可以进行消费者点餐、下单、撤单、评价等功能,并且可以查看以及修改个人信息。如图3-2所示。 图3-2 消费者模块3.2.1 点菜员模块此模块可以进行点菜员代替消费者点餐、下单、撤单、修改订单状态等功能,并且可以查看以及修改个人信息。如图3-3所示。 图3-3 点菜员模块功能图3.3 数据设计3.3.1数据库需求分析数据库需求分析是了解和分析用户的需求,是系统设计的基础,也是最困难,耗时最长的一部分。以实现基本功能为出发点,结合系统的功能进行需求分析,主要包括如下:(1) 用户表,用来存放用户基本信息(2) 订单表,用来存放用户的订单的信息(3) 菜单表,用来存放菜单的信息(4) 评价表,用来存放用户评价的信息3.3.2 E-R图主要表的主要属性所对应的E-R图,如下图所示: 图3-4 用户表 图3-5 订单表 图3-6 菜单表 图3-7 评价表3.3.3 数据库物理设计根据概念设计,电子点餐系统的数据库物理设计主要有以下几个数据表: (1)用户表cfy_users,包含用户名,密码,姓名,性别,年龄,邮箱,用户类型序号字段名数据类型字段长度说明1IDint20生成主键2userNamevarchar50用户名3Passwordvarchar50密码4Namevarchar50姓名5Sexvarchar50性别6Agevarchar50年龄7emailvarchar50邮箱8userTypevarchar11用户类型 (2)订单表cfy_orders,包括订单id,用户名,订单,金额,订单状态序号字段名数据类型字段长度说明1orderIdint20订单号(主键)2userNamechar50订单人姓名3orderMenuvarchar1000订单4orderMoneyint11订单金额5orderStatevarchar100订单状态 (3)菜单表cfy_menu,包括菜单ID,菜单名,价格,类型序号字段名数据类型字段长度说明1menuIDint20菜品ID2menuNamevarchar50菜名3menuPriceint20价格4menuTypevarchar20菜品类型 (4)用户评价表cfy_assess,包括评价ID,用户名,评价内容序号字段名数据类型字段长度说明1IDint11评价ID(主键)2userNamevarchar50用户名3assessvarchar1000评价内容 4 详细设计与系统的实现 4.1 系统类和包的组织介绍整个系统划分为5个包,dao主要是后台数据的增删改查,domain是bean类以及其对应的数据库映射,service中间层处理web层与dao层交互,web层负责与前台页面交互,page存放前台jsp界面。4.2 架构的实现4.2.1 表示层的实现表示层主由struts控制,Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转。web.xml以及struts配置文件如下所示:web.xml struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2/* org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:beans.xml index.jsp Struts.xml /WEB-INF/page/menu/orderOnline.jsp/WEB-INF/page/seller/dcyMain.jsp/WEB-INF/page/seller/hcMain.jsp/WEB-INF/page/seller/jlMain.jsp/WEB-INF/page/menu/userMain.jsp/WEB-INF/page/menu/register.jsp/WEB-INF/page/menu/home.jsp/WEB-INF/page/menu/loginMain.jsp/WEB-INF/page/menu/experienceYaduo.jsp/WEB-INF/page/menu/myInfo.jsp/WEB-INF/page/menu/AssessUs.jsp/WEB-INF/page/seller/jlAllStaff.jsp/WEB-INF/page/seller/addPerson.jsp/WEB-INF/page/seller/jlUpdatePerson.jsp/WEB-INF/page/seller/userAssess.jsp list list/WEB-INF/page/menu/index.jsp/WEB-INF/page/menu/loginMain.jsp/WEB-INF/page/menu/meat.jsp/WEB-INF/page/menu/greens.jsp/WEB-INF/page/menu/seafood.jsp/WEB-INF/page/menu/discount.jsp/WEB-INF/page/menu/feature.jsp/WEB-INF/page/menu/childMenu.jsp/WEB-INF/page/menu/myMenu.jsp/WEB-INF/page/seller/allOrders.jsp/WEB-INF/page/seller/hcAllOrders.jsp/WEB-INF/page/seller/allMenu.jsp/WEB-INF/page/seller/addMenu.jsp/WEB-INF/page/seller/hcUpdateMenu.jsp/WEB-INF/page/seller/hcSureOrders.jsp/WEB-INF/page/seller/hcMakingOrders.jsp/WEB-INF/page/seller/ordersNum.jsp list list list list list list list list list listlist4.2.2 业务逻辑层的实现业务逻辑层主要是由Spring控制,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。Spring配置文件如下: classpath:hibernate.cfg.xml4.2.3 数据持久层的实现数据持久层由hibernate控制。通过hibernate调用数据库实现数据的增删改查,供Service层调用。hibernate配置文件如下:rootcom.mysql.jdbc.Driverjdbc:mysql:/localhost:3306/CFY?useUnicode=true&characterEncoding=UTF-8trueorg.hibernate.dialect.MySQL5Dialectupdatetrue4.3 功能模块的实现4.3.1消费者模块的实现消费者可以实现点餐、下单、撤单、评价等功能,业务流程,如图4-1所示:功能实现,操作界面如下所示:4.3.1.1系统登录进入登录界面,输入账号密码,验证之后登录系统: 图4-2 系统登录4.3.1.2消费者模块功能功能说明:点菜、下单、撤单、评价。关键代码如下:显示菜单关键代码:CfyMenuAction.javapublic String getAllMenu() return getAllMenu;public String getMenu() list = iCfyMenuService.getMenu(); return getMenu;CfyMenuServiceImpl.java/* * Name: getMenu * Description:拿到全部菜单 * Author: 俞延峰 * Create Date:2016-3-23 * Parameters:无 * Return:无 * */public List getMenu() return iCfyMenuDao.getMenu();CommonDaoImpl.java/* * Name: getMenu * Description:拿到全部菜单 * Author: 俞延峰 * Create Date:2016-3-28 * Parameters: 无 * Return: List * */public List getMenu() String hql = from + entity.getSimpleName(); return selectInfo(hql);/* * Name: selectInfo * Description:根据hql语句查询数据库数据 * Author: 俞延峰 * Create Date:2016-3-28 * Parameters: String hql查询语句* Return: List * */public List selectInfo(String hql)final String finalHql = hql;List list = (List) this.getHibernateTemplate().execute(newHibernateCallback()public Object doInHibernate(Session session) throws HibernateException,SQLException Query query = session.createQuery(finalHql);return query.list(););return list; 图4-3 显示菜单消费者点餐关键代码:CfyMenuAction.javapublic void saveOrder() iCfyMenuService.confirmMenu(userName);CfyMenuServiceImpl.java/* *

温馨提示

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

最新文档

评论

0/150

提交评论