ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:750.84KB ,
资源ID:7114491      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7114491.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(外卖订餐管理系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

外卖订餐管理系统.docx

1、外卖订餐管理系统外卖订餐管理系统 北京师范大学珠海分校 本科生毕业论文 论文题目:外卖订餐管理系统的设计与实现 摘摘 要要 随着外卖订餐在高校越来越普及,传统的电话订餐给顾客跟外卖店带来不方便,如何使订餐更快速,更方便已成为众多高校学生关注的问题了。本外卖订餐管理系统是针对高校外卖店进行具体的需求分析,采用 OOA(面向对象分析)和采用 UML工具辅助开发分析,基于 S2SH(Struts2+Spring+Hibernate)架构进行设计和开发。论文主要描述外卖订餐管理系统的开发流程,分别从需求分析和系统设计、详细设计与系统实现这几个阶段进行描述。关键词:订餐管理系统 S2SH OOA ABS

2、TRACT With more and more popular in universities order take-out,due to the traditional telephone reservation for customers to bring inconvenience take-away meal,how to make more quickly,more convenient has become the concern of the students.The take-away meal management system in colleges and univer

3、sities is the concrete take-away demand analysis,using object-oriented analysis(OOA)and using UML tools to assist in the development,using Struts2-Spring-Hibernate framework to design and development.Thesis mainly describes take-away meal management system process,separately from the demand analysis

4、 and system design,detailed design and realization of this system are described several stages.Key words:meal management system S2SH OOA 一、绪 论 1.1 背景背景 进入 21世纪以来,餐饮行业以年均 20%的增长速度,成为国民经济中的发展最快的行业之一。随着人们生活水平的不断提高,人们甚至想要不出门就能吃到可口的饭菜这就是外卖。在我国高校内餐饮行业外卖行业更是发展最快的一个行业,在北师大珠海分校每年都有几间新的外卖店的产生。外卖订餐已经成为北师大珠海分校学

5、生生活中不可缺的一部分,而订餐的方式也随着学生们的要求提高,不断的多样化和成熟化。1.2 北师大珠海分校外卖订餐行业的现状分析北师大珠海分校外卖订餐行业的现状分析 依靠电话订餐是北师大目前最主要的订餐方式,如比较大的外卖店关东、喜苑、红梦缘都是使用电话订餐方式,此种订餐方式有不少的缺陷,比如:时效问题、打电话的成本等等。目前北师大外卖订餐行业的现状分析如下:(1)外卖店数量众多,各店竞争较大。(2)外卖店多数实行人工方式订餐,即打电话订餐登记。这种订餐方式造成订餐很不方便特别在订餐高峰期,经常出现打电话打不通的现象。(3)外卖店多数没有实行市场分析,一些菜式在顶峰期出现缺菜现象,而一些菜式却出

6、现积累现象,造成了资源的浪费和经济损失。(4)外卖店没有对外卖进行财务管理,造成对店内资金管理不明确和店员滥用资金的可能。(5)无法为店内管理层提供准确的决策信息,掌握及时的市场消息。通过分析北师大的外卖行业的现状,不难发现国内高校的外卖店大多数都是依靠手工的管理方式,没有实行外卖订餐管理的信息化,所以造成了不少问题。1.3 外卖订餐管理系统的可行性分析及其作用外卖订餐管理系统的可行性分析及其作用 依靠传统的电话订餐实行外卖订餐不仅造成学生的方便,也对外卖店的经营产生了不良影响。实行电话订餐有以下几个缺点:一、在订餐高峰期,一架电话根本那么多的订餐顾客,有时候要多次拨打才能接通,这种情况下有时

7、也造成双方语气匆忙,态度暴躁,给订餐带来极大的不便;二、点菜不方便,学生如果没有点菜单,很难点菜,另外外卖店得每栋宿舍每间地派传单,无疑又是一笔不小的开资了;三、学生必须支付打电话的成本,虽然有些外卖店有校园短号但对于一些没开通校园短号的学生也不是很方便。通过上面分析,电话订餐已成为一种阻碍外卖行业发展的落后方式了,实行订餐管理的信息化迫在眉睫,利用外卖订餐管理系统对外卖流程实行信息化,不仅给订餐顾客带来了方便更给外卖店带来了经济利益。外卖订餐管理给顾客和外卖店带来了双赢。对于顾客,不用再担心高峰期打电话订餐失败了,顾客可以在网站浏览相关菜式,添加喜欢的菜式,解决了以前的那种电话订餐造成订错菜

8、式的现象。对于外卖店更是带来了长远的利益,减少外卖店的人力和财力,通过订餐管理系统使外卖店能够及时掌握市场信息,推销新菜式和实行更有效的经营策略。1.4 系统简系统简介介 本系统主要针对高校的外卖订餐流程和对订单处理实行信息化而构建出来的 B/S平台,学生通过浏览器上网访问订餐网站可以实现网上浏览菜式和订餐功能,店员通过后台管理登陆实现对订单的处理,通过信息化处理给学生订餐带来方便更给外卖店管理人员带来了长远利益。二、相关技术介绍 本外卖订餐管理系统选取 S2SH 架构来设计和开发,S2SH是 SSH升级版,以前的SSH架构中的用到的 MVC 框架是 struts,而 S2SH 中的 MVC

9、框架用到的是 struts2,struts2 与 struts 有很大的区别,配置更灵活,开发更方便,利用其开发的插件与hibernate,spring能达到无缝集成,本系统采用三层架构,用 struts2 处理前端,hibernate封装对数据库的访问,spring对 struts2、hibernate和业务逻辑层中进行对象的管理,三个框架各司其职,有利于项目开发的分工,使项目开发达到更灵活性和可维护性。S2SH三层架构如图 1 所示:图 1:S2SH 三层架构 2.1 struts2 技术介绍技术介绍 Struts2 是目前比较成熟的 Web 开发框架,Struts 2 框架是 Strut

10、s 1.X 的替代版本,Struts 2 框架整合了 Struts 1.X 框架和 WebWork 框架的优点。相对 Struts 1.X,Struts 2 已经有了非常大的改变,去掉了 ActionForm,降低了框架组件之间的耦合性,Struts 2 的 Action 只是普通的 Java类(POJO),给模块测试工作带来了极大的方便。Struts 2 提供了强大的整合能力,支持多种返回结果类型,改进了 Struts 1.X 的标签库,引入 OGNL表达式和值栈的概念,给开发者带来了更好的体验1。从全局的角度来看,Struts2 是一个 pull(拉)类型的 MVC(或者 MVC2)框架,

11、它与传统类型的MVC 框架的不同之处就在于在 Struts2 中,Action 担任的是模型的角色,而非控制器的角色,虽然它的角色仍然有些重叠。“pull”的动作由视图发起,它直接从 Action 里拉取所需的数据,而不是另外还需要一个单独的模型对象存在2。图 2:MVC/Struts2 架构 图 2描述了 Struts2 架构中的模型、视图和控制器。控制器通过 Struts2 分发 Servlet过滤器(也就是人们常说的拦截器)来实现,模型通过 Action 实现,视图则通过结果类型和结果组合实现。值栈和 OGNL提供了公共的线程和链接,并使得不同组件可以相互集成。Struts 2 设计的精

12、巧之处就是使用了 Action 代理,Action 代理可以根据系统的配置,加载一系列的拦截器,由拦截器将 HttpServletRequest 参数解析出来,传入Action。同样,Action 处理的结果也是通过拦截器传入 HttpServletResponse,然后由HttpServletRequest 传给用户。其实,该处理过程是典型的 AOP(面向切面编程)的方式,Struts 2 处理过程模型如图 3 所示:图 3:Struts2 处理过程模型 2.2 hibernate 技术介绍技术介绍 Hibernate 是一个优秀的 ORM 框架,通过使用 Hibernate框架,允许开发人

13、员使用面向对象的方式对数据库进行访问,避免采用 JDBC 访问,造成面向对象编程与面向过程编程的冲突。在这种方式下,企业应用的面向对象分析、面向对象设计和面向对象编程一脉相承,让系统分析、设计更加简洁。Hibernate作为 Java EE 持久化的标准方案,使用传统的 POJO作为系统的持久化类,具有低侵入式设计,不会造成代码污染。系统的持久化类无需继承任何 Hibernate基类,或者实现任何 Hibernate 接口,提供了极好的代码复用4。Hibernate 与数据库、应用程序关联关系如图 4所示:图 4:Hibernate关联关系图 虽然 Hibernate这个框架问世的时间不长,但

14、已经成为目前最流行的持久层解决方案,较之另一个持久层框架 iBATIS,Hibernate更具有面向对象的特征;较之传统的Entity EJB的持久层解决方案,Hibernate则采用低侵入式的设计,即完全采用普通的Java对象(POJO),而不必继承 Hibernate 的某个超类或实现 Hibernate 的某个接口。Hibernate是面向对象的程序设计语言和关系数据库之间的桥梁,Hibernate 允许程序开发者采用面向对象的方式来操作数据库。2.3 spring 技术介绍技术介绍 Spring是一个优秀的 Web 开发框架。它是一个分层的架构,由 7个模块组成,如图 5 所示。其中比

15、较重要的是核心容器模块,其他模块构建在这个核心容器之上,核心容器定义创建、配置和管理 Bean 的方式,它提供 Spring框架的基本功能。其主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory通过使用反转控制(IOC)模式,将应用程序的配置和依赖性规范与实际的应用程序代码分开 图 5 spring七大模块 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控

16、制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以

17、将声明性事务管理集成到应用程序中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。Spring Web

18、模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。5 2.4 DWR 技术介绍技术介绍 DWR 是一种 AJAX解决方案。DWR 包括一个 java库,以及一套 javascri

19、pt,使得我们可以用一种非常简单的方式,在页面上使用 javascript 直接调用后台的 java对象。DWR 的 javascript 库包括几个部分:dwr的 javascript 引擎(即对 AJAX调用的封装)、dwr提供的一些非常有用的辅助 javascript 函数库、以及 dwr自动帮我们生成的专门用于调用后台 JavaBean 方法的 javascript 库。DWR 在运行的时候,动态生成一个javascript 库,这个库是对后台 javabean调用的封装,我们可以直接使用这个库来实现直接调用 JavaBean 的目的6,其流程图 6 所示:图 6:DWR 调用过程 三

20、三、系统需求、系统需求 本系统采用 OOA(面向对象分析)和 UML(Unified Modeling Language)工具为指导,本章主要对系统的需求以及系统功能进行分析描述。3.1 UML UML(Unified Modeling Language)是一种用来创建程序模型的图形语言(即带有语意的一种图形记号)7,常用的 UML图有类图、时序图、用例图、活动图和状态图。3.2 需求分析需求分析 本外卖订餐管理系统包括两个子系统,前台订餐和后台管理,前台订餐是供用户浏览菜式和提交订单进行订餐;后台管理是供餐厅管理人员进行外卖订单管理、菜式管理、统计报表管理、系统管理。3.3 系统功能系统功能

21、 本系统采用面向对象分析方法,下面是对本系统的两个子系统进行分析说明。(1)前台管理系统 前台管理系统供用户浏览菜式,进行菜式添加到购菜车,用户可以对购菜车进行更新、清除,用户提交订单后可以在订单列表查看外卖状态,用例如图 7 所示:图 7:用户用例图(2)后台管理系统 后台管理系统有菜式管理、外卖订单管理、统计报表管理和系统管理四大模块。顶层用例:后台管理有两大角色即店长跟店员,店长拥有系统全部权限,店员只能操作菜式管理跟外卖订单管理两大模块。其顶层用例如图 8:图 8::顶层用例 菜式管理:可以对菜式进行查看、添加、修改和删除。用例如图 9 所示。图 9 菜式管理用例图 外卖订单管理:可以

22、对外卖订单的状态进行查看,改变。用例如图 10 所示:图 10 外卖订单管理用例图(3)统计报表管理 菜式统计报表:对每月的菜式进行统计,可以查看哪些菜式在本月份销量比较好。用户统计报表:对用户进行统计,可以对其经常订餐的用户实行优惠政策。(4)系统管理 用户维护:可以查看所有已注册的用户,查看该用户的所有订单列表,和删除该用户。店员维护:可以对店员进行添加、删除、更新。修改密码:输入旧密码,如果旧密码输入不正确会进行提示叫你重新输入,输入正确后再输入新密码和确认新密码可进行修改。用例图如图 11 所示:图 11 系统管理用例 四四、系统设计、系统设计 本系统的设计采用 OOA(面向对象分析)

23、和利用 UML工具辅助开发设计。4.1 系统总体结构系统总体结构 通过前一章的需求分析跟功能分析可以得出本系统总体结构如图 12 所示:图 12 系统总体框架图 4.2 系统架构方式系统架构方式 本系统采用三层架构模式,即展现层,业务逻辑层,数据访问层,各层之间都独立,展现层与业务逻辑层接口通信,业务逻辑层与数据访问层接口通信,数据访问层直接跟数据库打交道,这样具有很好的解耦性,每一层逻辑改变不会影响到另一层,对项目以后的可维护性及团队开发具有很大的作用,三层架构流程如图 13 所示:图 13 三层架构 4.3 Hibernate 自动建表自动建表 传统的数据库设计都是先经过建立 E-R 图,

24、然后通过 E-R 图生成数据表。而Hibernate开发团队提倡我们用另外一种开发模式,就是先建立实体类和编写实体类映射文件,然后通过实体类和映射文件自动生成数据表。这种开发模式也是体现出来OOD思想,数据的持久化这些都是非常机械的,基本没有变动的,hibernate 就是把这些行为抽取出来自动完成并在效率上做一优化等,让我们轻松实现数据库的移植。这样我们在开发中更关注于类中的设计而不必受到数据库的牵制,因为数据库本身就跟面向对象存在阻抗。国内有位领域驱动设计(DDD)专家曾经发表了一遍文章数据库已死,在文章中他阐述了数据库成为了大多数企业应用的主要瓶颈,也成为了运行环境中最不具伸缩性的一层,

25、他认为软件开发应集中在领域分析,数据库应该是为领域服务而不能让我们的领域层受牵制于数据库。本系统是采用建立实体类和编写映射文件来生成数据表的开发模式。(1)实体类 POJO 设计 类名 功能说明 User 用户 Admin 管理员 Item 订单项 Menu 菜式 Order 订单 实体类 User 属性 类型 属性说明 id Integer username String 姓名 password String 密码 orders List 订单列表 实体类 Admin 属性 类型 属性说明 id Integer username String 姓名 password String 密码 ty

26、pe Integer 管理员类型 实体类 Item 属性 类型 属性说明 id Integer itemName String 订单项名称 itemPrice double 订单项价格 itemNumber Integer 订单项数量 itemType Integer 订单项类型 itemIntroduction String 订单项描述 order Order 所属订单 实体类 Menu 属性 类型 属性说明 id Integer name String 菜式名称 price double 菜式价格 type Integer 菜式类型 state Integer 菜式状态 itemIntro

27、duction String 菜式简介 实体类 Order 属性 类型 属性说明 id Integer phone String 电话号码 address String 宿舍地址 total double 总价 state Integer 订单状态 date Date 订单日期 barcode Order 订单流水号 user User 所属用户 items List 所有订单项 (2)hibernate映射文件编写 User.hbm.xml Admin.hbm.xml Item.hbm.xml Menu.hbm.xml Order.hbm.xml 4.4 详细设计详细设计 本节阐述了如何对本

28、系统的对象类进行分析设计、系统流程分析以及如何用时序图对系统中的对象交互进行描述。4.4.1 类设计类设计 (1)类关系 通过面向对象分析得出在本系统中用户跟订单、订单项,订单跟订单项,购菜车跟订单项都是一对多关系,用户跟购菜车,订单跟购菜车都是一对一关系。其关联关系如图 14所示:图 14 类关联(2)DAO与业务逻辑类设计 1.AdminDao 与 AdminService类设计 2.UserDao 与 UserService类设计 3.MenuDao 与 MenuService 类设计 4.OrderDao 与 OrderService类设计 4.4.2 流程分析流程分析 1.前台用户订

29、购外卖流程:2.后台管理员订单处理流程:4.4.3 时序图分析时序图分析 用户登录用例实现 A、时序图 B、描述 1)输入信息 输入用户和密码,提交表单 2)表单验证 LoginUserAction 会调用 validate方法进行表单验证,如果用户输入不合法就会转向 login.jsp 提示用户输入不合法 3)进入业务方法 LoginUserAction 进入 execute方法进行登录验证 4)获取 userService接口 LoginiUserAction 类获取 UserService接口,以便调用 UserServcie 关于登录checkLogin 的方法。5)登录 调用 use

30、rDao的 checkLogin 方法进行登录验证。6)返回结果 如果用户名和密码输入正确进入系统主页面,否则提示用户名或密码输入错误。用户修改密码用例实现 A、时序图 B、描述 1)输入信息 输入原密码、新密码和确认新密码,都不能为空,新密码与确认新密码要一致。2)表单验证 updatePasswordAction 会调用 validate方法进行表单验证,如果用户输入不合法就会转向 updatePassword.jsp 提示用户输入不合法,如果用户原密码输入错误或新密码与确认新密码不一致也会转向 updatePassword.jsp 并进行提示。3)进入业务方法 UpdatePasswor

31、dAction 调用业务方法 execute()进行修改密码。4)获取 userService接口 UpdatePasswordAction 类获取 UserService接口,以便调用 UserServcie 关于修改密码 updateUser的方法。5)保存到数据库 调用 userDao将用户数据更新到数据库。6)返回结果 修改成功后,返回到系统主页面。注册用户用例实现 A、时序图 B、描述 1)输入用户信息 输入用户名,用户密码,确认密码。2)表单验证 RegisterUserAction 会调用 validate方法进行表单验证,如果用户输入不合法就会转向 register.jsp 提

32、示用户输入不合法,如果输入用户名已存在也会转向 register.jsp 并进行提示。3)进入业务方法 RegisterUserAction 调用业务方法 execute()进行添加用户。4)获取 userService接口 RegisterUserAction 类获取 UserService接口,以便调用 UserServcie 关于修改密码addUser(User)的方法。5)保存到数据库 调用 userDao的 addUser 方法将用户数据保存到数据库。6)返回结果 注册成功后,返回到主页面。添加菜式到购菜车并提交订单用例实现 A、时序图 B、描述 1)选择菜式 选择要添加的菜式,可以

33、多选。2)表单验证 CommonMenuAction 会调用 validate方法进行表单验证,如果用户没选择菜式或还没登陆就提交就会提示用户输入还没选择菜式或还没登陆。3)进入业务方法 CommonMenuAction 进入业务方法 execute 进行添加菜式到购菜车,在 execute方法中调用 showMenuCatr 方法进行菜式添加到购物车。4)转向 CommonMenuCart CommonMenuCart 是一个通用的购菜车,将数据进行更新。5)返回到购菜车界面 调用 CommonMenuCart 的 execute方法将数据显示给用户。6)提交订单 用户输入电话号码,宿舍地址进行提交订单。7)进入数据验证 AddOrderAction 调用 validate()方法进行验证,如果用户输入不合法会进行提示。8)获取 OrderService 接口 调用 OrderServi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1