基于JSP和MySQL的网上订餐管理系统 完整代码数据

摘 要

随着科学技术与经济的快速发展,网络信息技术也有了显著的提升与进步,当今的社会是一个集数字化,网络化,信息化的,并且是以网络为核心的现代化社会。伴随信息互联网的高速成长,使得互联网应用也走进家家户户的日常生活。网上订餐作为一种新的生活方式,更加新颖。

毕业设计中,界面的设计主要使用了在jsp插入HTML语言以及JavaScript对系统的页面进行相关的加工处理完善以使得页面实现的效果尽可能的满足美观的要求。而对于后台的设计主要是使用了javaSE基础编程,及javaEE中的Jsp页面的动态编程,servlet处理交互逻辑,并且使用jdbc连接数据库,数据库则选用了更为高效的MySql数据库。

本论文就此次毕业设计的系统内容,从餐品的管理,餐品的分类以及查询,到订餐车实现,客户对订单的处理,再到系统对订餐和餐品的管理。系统从业务流程的角度上分析,完成了订餐系统的基本功能,可是使得用户通过互联网进行点餐以及交易。相比于以往的订餐方式,网上订餐更加便捷,高效,对于餐厅更加节省人力,有利于管理,对于顾客更加省时省力。

关键字:网上订餐系统;JSP;系统管理

Abstract

With the rapid development of science and technology and economy, network information technology has also been improved and significant progress, the society is a set of digital, network, information, and network as the core of the modern society. With the rapid growth of information and Internet, Internet applications have entered daily life in every family. Online ordering as a new way of life, more innovative.

The graduation design, the interface design of the main use of the HTML language and JavaScript system to insert page processing related to the perfect page to achieve the effect of as much as possible to meet the aesthetic requirements in jsp. For the background of the design is mainly used javaSE based programming, dynamic programming and javaEE Jsp page, servlet interactive logic, and use JDBC to connect to the database, the database is more efficient in MySql database.

This paper on the graduation design of the system content, from the management of the meal, the classification of food and query, to the order cart, customer order processing, and then to the system of ordering and food management. From the point of view of the business process, the system has completed the basic functions of the ordering system, but it allows users to order and trade via the internet. Compared to the previous way of ordering, online ordering more convenient and efficient, for restaurants to save more manpower, is conducive to management, for customers more time and effort.

Keywords: online ordering system; JSP; system management

绪 论

随着我国在本世纪科学技术与经济的快速提高,网络信息技术也有了显著的提升与进步。在我们平日生活中有很多生活方式以及习惯随着周围信息化的快速提高也有和以往相比变化越发的翻天覆地。本次毕业设计“基于jsp的网上订餐系统的设计与实现”,相比与之前传统的电话订餐,门店订餐这种靠无线电话,人工传递的方式的信息途径,这些方式解决问题的效率很低,店家(餐厅)不能及时将餐厅对菜品的调整通知顾客,顾客对于用餐需求也不能进行调整,线下的交流并不能形成方便快捷的交互。很多时候对于,餐厅以及顾客都是一种损失。由于上述缺陷,为了适应当前时代信息快速发展,数据大爆炸的趋势,采用先进的发展的网上订餐管理系统使上述的种种缺陷得以得到缓解和解决,精简了餐厅的工作流程,顾客的订餐更加便捷,从而提高了餐厅的营业额。由于网络的的快速发展,所以订餐系统随着网络也要有一定的发展与变化。因此毕业设计“基于jsp的网上订餐系统的设计与实现”是非常有必要的。网上订餐系统对订餐所涉及的两个主要用户:客户与店家(餐厅),在实现网上订餐之前,双方进行订餐工作,双方都需要花费大量不必要的时间精力。而快速发展的网络技术,使得订餐系统中所要使用的管理流程在很大程度上做到了极大的简化了,使得餐厅的管理系统更加快速高效,更加便捷。提高餐厅工作人员的整体工作效率,更加给使用订餐系统的顾客更加便捷的使用享受和良好的用户体验。

从始至终人们都寻求便捷,舒适的生活方式。网络作为提高生活水平的重要工具,在出现后,人们逐渐对其产生了依赖,在依赖的同时也希望网络能给自己带来更方便的帮助,从而大量的销售网站,娱乐网站等等也就慢慢诞生了,这个网上订餐系统是一种基于B/S架构的一种系统模式,订餐系统网站的上手非常的方便,即使第一次登陆,通过网站的指引也会让您订餐非常顺利便捷,如同多次订餐的老顾客一般。

此次毕业设计的系统,网上订餐系统的开发与设计,在系统可靠性,以及项目的扩展性上占有极大优势。此外对一些java相关技术进行了部分研究,设计并且实现系统,同时为以后自己的可能还要做的其他项目打下了有效以及坚实的基础。

1 系统概述与技术介绍

网上订餐系统作为一个销售管理系统,首先在页面的结构上一定要相对有自己的独特之处,凸显餐厅的风格,餐品的质量。只有如此才能从一开始吸引顾客的目光,通过美观的页面满足顾客对此类订餐系统的好感依赖以及业务功能的需求。与此同时,系统也要有先对强的实用性,系统的实用性不强,这样的系统会是的顾客产生厌恶心理,不利于一个餐厅的未来发展。当然,作为一个销售管理系统,要对顾客的点餐做数据统计,这样才能方便餐厅对该顾客的用餐习惯分析,更好的对顾客实施更加人性化的服务。

1.1 课题背景

上世纪90年代,互联网逐渐走进人们的视野,在不知不觉中改变着社会的商品交易方式。国内各大企业从认识到互联网的重要性之后,一直坚持不断的探索网上交易的可能。但是由于网络生活具有很大的虚拟性,商家的信誉很难得到保证、有关网上交易的法规未出台、物流的滞后以及其他的一些问题,都成为了网络交易发展的绊脚石。但是,社会的进步是具有持续性的,21世纪以来,各个瓶颈问题包括网上支付、物流速递等一一被攻破,网上交易的黄金时代也随之来临。

调查显示,由于科技的进步极大地繁荣了物质生产生活,人们对于生活的便利性要求进一步提高,网上交易特别是以食品外卖为代表与大众日常生活休戚相关的网络交易量将在未来几年达到高峰。

网上交易这一方式给人们的消费模式注入了一股新的活力,极大地冲击了原有的传统购物消费习惯。网上订餐这一方式,在90后人群中拥有大量的支持者,促使他们做出选择的,不仅仅是这一形式的便利性,还包括相关网站对于消费者的引导。

1.2 B/S结构的介绍

此次系统的设计过程主要运用到了我们在学校以及公司经常提及使用的B/S结构。所谓的B/S系统就是浏览器、服务器的系统结构。网上订餐系统使用B/S结构,主要就是需要服务端的计算机安装数据库以及服务器。而在客户端,一个浏览器就足够。服务器在服务端运行,浏览器在客户端运行,

B/S结构作为目前最先进的软件构造技术,在用户使用的浏览器向服务器提交了一些请求之后,服务器端如果接收到了用户在浏览器端发送的请求之后,服务器端对从浏览器接收而来的请求对其进行相应的业务逻辑处理,随后将其完成处理后的结果返回给浏览器所在的客户端。

B/S结构也是有很多种的,例如:针对OA系统的开发,这些系统主要包括应用程序的研发(基于C/S结构的开发),以及使用传统的C/S结构的跟网络技术结合的混合应用,以及到目前为止是我们常常用到的网站制作的技术。但是不可否认的是,每中结构以及技术都有自己的优点以及缺点:在此前的C/S结构中,更多的它是一种比较传统的使用较为广泛的软件开发的模式,主要是通过客户端以及数据库两层结构完成系统的实现,在两层之间还可以加入其他层次与结构,C/S作为先前传统的软件开发标准以及开发设计结构,在伴随网络和软件的开发技术快速进步,在各种新兴技术不断出现下,被取代或弥补了其结构的很多缺陷,于是也被其衍生出来的新兴结构技术在系统开发的过程中渐渐的将其取代。

1.3 JSP技术的介绍

此次网上订餐系统中页面主要使用到的技术是java的JSP技术,JSP技术之所以被广泛被使用到各种项目中去,主要也是因为其自身拥有的很多功能,这使得在项目中可以实现满足开发人员,程序员对项目所需要的效果。

作为JSP技术的基础,servlet技术在此前的开发中一直被开发人员所应用。JSP技术的优点:

  • 进过一次的开发和编写,可以在多种平台运行:因为JSP/Servlet都是基于Java变成语言的,因此具有其编程语言的一个主要优点——平台无关性,这个就是著名的的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”

  • 系统的多平台支持性:在目前已知的所有平台JSP技术可以进行任意的环境开发,并且在平台中将项目部署在任意的环境里,相比于其他技术,可以根据自己项目的需求任意的环境中拓展。这些优势相比ASP/PHP的局限性是显而易见的

  • 强大的可伸缩性:JSP可以运行小到从有一个jar文件,大到多台服务器进行集群和负载均衡,多到多台Application进行transaction,还有消息处理,从一台服务器到无数台服务器,Java程序编程语言显示了其巨大的能量

  • 功能得多态多样以及获得大多数开发工具的技术支持:这个优势和ASP有点类似,java拥有众多的的开发工具并且极为优秀好用。并且都是免费下载使用的,而且可以成功稳定得在多个平台上顺利运行

  • JSP标签可扩充性:JSP对Web网页的动态构建主要是利用脚本技术和标签,JSP技术站在开发者的角度考虑允许开发者拓展JSP标签,定制专属的标签库,xml标签拥有很好的兼容性以及强大的功能,网页制作者可以充分利用,减少对脚本语言的大量依赖,利用自己定制的标签,使网页制作程序员降低了制作网页的难度以及复杂度

1.4 JavaScript语言介绍

此次毕业设计,在其中的前台jsp页面中大量的使用了前端脚本语言JavaScript。 JavaScript编程语言以其独有特性,使得他在目前的大多数项目的前台页面设计以及编程都占有重要的一席之地。由于js设计来的产品会主要运行在用户的浏览器客户端,使得只要用户点击页面的一些按钮或者特殊位置,就可以触发特定的事件进行操作,在页面的JavaScript脚本就会将事件传给客户端(浏览器),在客户端被设计好的事件就会执行进行相应的事件处理完成一系列的操作。

网上订餐管理系统在前台页面的编写设计中就多次使用到了JavaScript这种流行的前端编程语言,众多的优势,使得很多项目的前台都是它和它发展衍生的众多类库编写的,例如我们熟知的:jQuery,easyUI,Extjs等在众多的丰富的前端js类库。

网上订餐管理系统在很多地方都用到了JavaScript脚本语言,例如:顾客以及管理员登录页面时候的,检出数据是否有效,包括重复为空等场景。

1.5 MySQL数据库介绍

首先要说的是MySQL是一个开源免费的数据库。这也是为什么作为一个小型关系型数据库管理系统,却获得了大量的使用,当然这并不是它的最大优点。MySQL数据库拥有很多优点,比如说:MySql的适应性很好,运行和反应速度快,使用的可靠性高。与此同时,结构化查询语句是MySql数据库系统主要使用的数据库管理方式,结构化查询语言也是目前在数据库管理语言中最受人们欢迎的,也是最为常用的。因此在很多的项目系统开发中都会被开发人员关注,经常使用。由于数据库开发者的允许,MySql作为开源的软件,在官方网站和很多其他网站都可下载到各种版本的MySql数据库。并且根据个人或者开发团队的项目需要对下载的代码做出合理的修改。由此我们可以看出,作为一个小型的关系型数据库,在一些项目的管理上是一个很好的选择,当然这也是在此项目没有超出MySql的数据处理能力的范围之外。

1.6 MyEclipse介绍

此次毕业设计主要是面向顾客用户在前台页面订餐,后台管理人员对前台页面出来的数据请求进行数据处理,并对客户端页面进行及时调整,完善的管理系统。

MyEclipse开发软件对系统项目的开发更加方便快捷,开发项目的管理更具有条理性。相比于被广泛使用的Eclipse开发软件,MyEclipse在Eclipse开发软件的基础上进行了详细的优化和功能的完善,并且对Eclipse的开发环境进行了优化,最大的限度进行了拓展。使用Eclipse中很多时候我们自己要寻找安装插件,但是MyEclipse基本会帮开发人员在使用之前就集成好了,这对于开发人员的开发是十分便利的,因此目前正在广泛使用于企业级集成开发中去。而且,MyEclipse开发软件在应用程序的整合方面也显得十分成功,如果开发人员能十分熟悉Eclipse,那么对MyEclipse的使用也一定不会陌生,因为MyEclipse的快捷键与Eclipse基本保持一致。

1.7 MVC模式介绍

此次毕业设计为了能够在设计实现上达到最初的想法及要求。并且使完成的系统可以具有一个优秀系统所拥有的一些优点:安全性高,可移植性好,跨品台性高,拓展性优秀,还能具有分布式结构。因此在项目中用到了前文所介绍的B/S结构体系,我所设计实现的订餐系统正式基于Java编程语言的B/S设计模式的。为了更加完善系统,结合在大学时期学过的计算机软件知识,我还用到了另一个结构模式,MVC三层结构,MVC三层结构主要是指基于模型model,视图view以及控制controller的结构模型,而MVC正是这三者英文的首字母缩写。

控制器,视图,模型三层软件设计模式是MVC软件设计模式的根本。这三层模式对应到了实际项目系统中的web服务器。目前,在网上订餐管理系统中主要使用的MVC模式,如下图。

由以上的结构图可以得知,在此次的项目系统中,前台界面页面的主要任务就是使用系统的用户可以正常的使用系统逻辑正确完成所要实现的业务。当我们使用网上订餐管理系统的时候,仅仅需要在用户的本地计算机,移动通讯设备安装一个浏览器,在这里使用的浏览器不会限制其版本,开发团队以及类型。用户就可以通过这个浏览器作为客户端与我们的网上订餐管理系统建立网络连接,用户在使用的浏览器中发送需求信息,交由在系统当中的业务逻辑进行准确的数据处理,这些过程主要是由MVC结构中的对应层次进行处理的。业务逻辑得到准确的执行处理后,将处理好的数据进行数据库的数据交互。在模型层中,数据访问层必不可少,他主要实现了当前的系统(网上订餐管理系统)对数据的增、删、改、查等数据处理操作。

由上述的阐述,我们可以得出MVC设计模式具有众多的优势,其中主要是有:

  • 低耦合性,高内聚性

  • 有利于开发者使用,极高的重用性

  • 可以简单方便的使用,快速的部署

  • 具有比较好的可维护性,易于未来的维护

  • 具有生命周期本身成本较低的优势

  • 软件过程化的管理方法更有利于开发的进行

2 系统需求分析

2.1 开发环境

此次毕业设计“基于JSP的网上订餐管理系统”的开发计算机环境主要是:

  • 学校配发的戴尔品牌笔记本电脑,型号是惠普242G1

  • 处理器为英特尔酷睿i5 3代系列

  • 内存容量为 4GB

  • 显示屏 14英寸

  • 显卡芯片品牌NVIDIA

  • 型号NVIDIA GeForce GT 730M+Intel GMA HD 4000

  • 硬盘品牌希捷,容量500GB

  • 使用的系统是Windows7旗舰版 SP1

在我开发完成的订餐项目系统中,主要使用的数据库是当前非常受欢迎的开源免费的数据库MySQL。进行项目系统开发,发布管理的软件也是MyEclipse工具。使用到的技术,主要是JSP技术,以及前端流行的脚本语言JavaScript,还有JAVA编程语言,HTML标签 等。此次完成的系统项目,订餐管理系统是不需要使用户安装客户端程序就可以使用,用户只需要使用浏览器就可以正常的,完整的使用订餐管理系统的全部所有功能。

2.2 需求分析

参照软件开发的标准规范,参考很多成功的软件开发案例,软件开发很重要的一环就是软件需求分析。软件需求分析当中很重要的一点就是通过这次分析,真正准确了解到用户的真实需求,完整准确地项目设计以及编码开发,这样才能在项目完成之后,交给用户一个满意的系统。不仅如此,同时还能在软件开发之初,对软件项目进行风险评估。最后完成一次完整的软件开发设计。

软件项目的需求分析这个在软件开发过程中至关重要的一环,无论在什么时候都占有着不可忽视的地位,不能被省略或者敷衍而过。这正是因为它在整个的项目开发当中有着举足轻重的作用。因为软件项目的需求分析,才能在项目的设计开发之前,充分理解用户需要,准确的明确开发的方向。在开发的过程中知道。什么功能是必须实现的,什么工作是必须完成的。对系统进行全面的定义,准确,具体的需求,才能更好的实现在项目开发当中具有极其重要的功能。

一个完善优秀的项目系统在开发之初,开发的初期就要准备充足的资料,进行项目的需求分析。只有在这个阶段完成一个明细,详尽的需求分析,我们才能在后期的设计,编码中更好的实现系统功能,完成一个用户满意的系统。

2.3 可行性研究分析

在开发的前期,对一个项目系统进行可行性分析,这是软件开发过程中不可或缺的工作。从多个角度,维度进行可行性分析,可以将项目分析的更加透彻具体,从项目的方方面面来深入理解项目系统。

2.3.1 技术可行性分析

在目前大多数的公司使用到的软件开发工具是MyEclipse ,例如我目前实习的公司就是用的是MyEclipse2016,因此我在我此次的项目系统,网上订餐管理系统就是用到了MyEclipse 软件开发工具。ava作为一当下最受欢迎关注的编程语言,历久弥新,而且方便灵活使用,是此次开发系统的不二之选。

2.2.2 经济的可行性分析

此次毕业设计,在整个项目系统设计编码完成之后,用户不需要在自己所在的客户端安装任何的客户端应用程序,只需要正常上网就可以完成对系统的访问和使用,除此之外,只要保证项目系统被正确的部署在服务器上,并且已经正常运行。那么,用户就可在任何连接互联网的浏览器上对系统进行访问。

2.2.3 法律可行性分析

此次毕业设计“基于JSP的网上订餐管理系统的设计与实现”,不仅可以提高餐厅对订餐的管理效率,为顾客对订餐需求上提供便利,提供更加贴心优质的服务,良好的用户使用体验。而且在整个的开发过程中都符合具体的软件开发流程及规范的。在项目的的开发过程中使用到的都是一些开源的免费的数据库以及开发人员主要使用的开发工具,参考以及使用到的一些代码,也都是在开源社区和论坛分享的主要开源代码。因此,此次的网上订餐管理系统是不存在任何问题,在法律上是可行的,满足法律可行性的所有要求。

为了实现这些要求,我对界面页面的开发做到最大化的简单易懂,将功能实现尽可能的减少不必要的步骤,做到让顾客在最短的事件内可以快速订餐,突出餐厅餐品的特色。做到只要会使用电脑查看网页,就能成功点餐。因此,在操作可行性上也十分可靠。

3 系统概要设计

3.1 系统设计概述

系统的设计阶段作为在项目开的发整个过程中,最为复杂的一环,其实也是在项目开发的整个过程中极为重要的的一环,必须经过,必不可缺少。在进行系统项目的设计之前,说明系统项目已经完成了对其自身的分析与设计阶段,这是一个具有发展性的过程,将从分析阶段得出的有些抽象的用户需求进行具体的实现,编码。在对系统项目的设计过程中需要考虑众多因素,例如在系统实现过程中所面对的内在环境和外在因素,对项目进行良好的业务和功能完善以及应该具有的敬业态度。

作为主要的任务和目标,在系统设计阶段就是为了满足在系统分析阶段提出的用户要求.因此,要从用户的要求出发在不仅可以满足系统分析阶段得出的对系统项目逻辑功能的同时,还要充分考虑到多方因素,包括技术,成本以及时间环境等相关方面。对于不论是在正在进行中的整体的设计结构还是局部的每一个部分,都有相关的技术和针对性的应对方案。在合理的要求和基础上,对项目系统所必要的需求进行满足,并且提出该系统具体到实处的实行方案,使其可以得到完整的实现,完成最初的目标以及要求。

系统设计的主要方向以及相关要点:

  • 在系统设计的阶段,主要工作涉及到了绝大多数都是技术以及专业知识

  • 为了满足用户的需求,在系统项目的设计过程中,可以对之前已经得出的系统项目分析结论作出一些修改,当然,这是基于非原则性上的

  • 使整个项目系统最终可以获得成功,不仅仅需要完善的分析,严谨的设计,更需要系统项目的设计环境。这个环境不仅仅是技术环境与管理环境,更是两者的有效结合。因此,这是急不可缺的重要一点

有上述可知系统设计的要点,那么为了更好地设计系统项目就需要了解系统设计的原则:

  • 易用性原则:对项目做系统设计是为了,开发出的系统项目,可以满足用户提出的需求,达到用户的满意。这种满足需求表现在各个方面,例如:用户的业务需求,用户的逻辑需求,以及使用户处理部分业务时候更加简便,提高用户的用户体验

  • 开发阶段原则:开发项目系统软件,在系统技术选择阶段主要是站在系统的数据结构的角度进行设计与开发,而实现功能阶段则有不同,这是需要站到用户需求以及开发人员实现的角度考虑的

  • 业务完整原则:设计实现的项目系统软件,要保证在完成业务的同时保证数据的完整性,减少数据的无处,例如数据库中常常出现的脏读,误读等数据误差

  • 规范化的业务原则:在最初的设计阶段中,系统主要是完成用户需求要求的业务,但是在实际的操作总。对于系统项目的要求是更高的,它不仅要正确的完成用户的业务要求,也要面对完善的业务流程,以及系统安全性

3.2 系统功能分析

作为网上订餐管理系统主要是为顾客提供便捷,全面的订餐服务,重点要放在面对顾客的页面功能上,其次是管理员对餐品以及餐厅的管理,系统主要模块的设计:

  • 前台模块

    • 食品展示模块
    • 食品查询模块
    • 购物车模块
    • 收银台模块
    • 用户维护模块
    • 订单查询模块
    • 公告模块
  • 后台模块

    • 食品管理模块
    • 用户管理模块
    • 管理员维护模块
    • 订单管理模块
    • 公告管理模块
    • 留言管理模块

如图3-1系统功能层次图所示。

主要包括这几个方面,其中顾客订餐功能模块是主要重点模块,其次是管理员管理功能模块。当订餐系统管理员使用拥有管理权限的管理员用登录管理员页面的时候。可以看到目前订餐系统中保存的用户信息数据,菜品的数据,员工的数据以及状态,订餐的具体信息,采购原材料的具体情况,以及对顾客页面的管理,例如:留言板,以及营养小贴士等等。通过管理员对餐厅的管理,给予顾客最好的网上订餐服务。

顾客订餐功能的相对应的模块:主要是顾客进入订餐系统网站之后,可以看到整体的订餐系统网站结构,进行系统的客户端登录,注册,以及对现登陆用户的信息修改,搜索菜品,点餐,订餐,支付,留言的相关功能,通过众多的订餐系统功能。

管理员系统管理功能相关模块:主要是餐厅管理员从后台管理页面登录管理系统之后,对订餐系统的一些具体业务的调整,可以注册新管理员,以及对现有登录管理员信息的修改,查看分析管理目前注册的顾客的信息,查看修改调整现有菜品的具体情况,新增,删除,完善菜品;对目前餐厅原材料的采购和统计;以及对餐厅员工的管理,新增删除和调整状态;更重要的是可以对目前已知订餐的及时管理,还有就是对顾客订餐页面的一些人性化管理,查看顾客留言,修改给顾客查看的营养小贴士。

通过这个两个主要的模块,可以完成订餐系统的综合管理,包括了顾客的主要功能,注册,登录,点餐等;以及管理员对餐厅多方面的管理,完成管理员对顾客的服务交互。

3.3 系统用例图

通过管理员用例图,可以清晰的,直观的看到管理员在网上订餐管理系统中对用户订餐以及用户本身的一些主要的操作:

  • 管理员可以管理餐品信息

    • 管理员可以添加菜品信息
    • 管理员可以删除菜品信息
  • 管理员可以管理订单信息

  • 管理员可以管理订餐系统中注册的用户信息

    • 管理员可以删除用户注册信息
    • 管理员可以修改用户信息
  • 管理员可以对留言进行管理

  • 管理员可以对用户进行管理

管理员用例图图,如图3-2所示。

通过用户(顾客)用例图,可以更加直观的理解在网上订餐管理系统中主要的客户端服务,用户主要使用的功能以及进行的操作,如下:

  • 游客可以注册会员信息

  • 游客可以浏览菜品

  • 游客可以查看公告

  • 注册会员的用户可以通过注册信息登录

  • 会员可以在订餐页面浏览菜品信息

  • 会员可以修改会员信息

  • 会员可以对正在进行的订餐进行修改

  • 会员可以对完成的订餐进行查询

  • 会员可以进行留言

因此,为了可以更加准确,生动的理解上述所说的用户主要使用的订餐服务功能。绘制用例图就很方便的展示了用户使用主要使用的功能,用户(顾客)用例图,如图3-3所示。

对于主要功能的业务处理,例如网上订餐管理系统整个业务逻辑处理中最为主要的一部分就是订单处理部分,为了更加直观的理解整个业务逻辑,最对订单的具体的操作如下:

  • 可以通过用户操作对订单信息,菜品信息进行添加

  • 可以通过用户操作对订单信息,菜品信息进行处理

  • 可以通过用户操作对订单信息,菜品信息进行删除

3.4 系统流程图

想对订餐管理系统进行操作,管理员需要登录订餐管理系统的后台管理系统,才能进行一系列的对应管理操作。如果登录时候出现异常,登录失败等状况,系统会要求管理员核对身份密码后重新登录。登录成功之后,就可以通过订餐管理系统的后台模块对整个订餐管理系统进行正确有效的管理。对订单的处理,对菜品的修改,添加,删除。对员工的添加,删除,管理。对原材料的采购登记。订餐管理系统目前的概况,都可以从订餐管理系统的管理员模块进行查看,分析,以及做出及时的相应调整。

如图,是订餐管理系统的后台管理员模块操作的基本流程图,通过路程图,可以更为直观的看到管理员进行登录操作时的系统业务流程,进行登录,成功进行模块的管理,失败则重新登录等操作,如图3-4管理员流程图所示。

4 数据库设计与实现

4.1 数据库的结构设计

一个项目系统软件的设计开发,数据库可以说是必不可少的,没有数据库,用户的数据无法保存,系统的使用人员无法处理数据,那么整个系统可以说是没有意义,以及没有任何使用价值的。在系统项目中,数据库就是用来给用户,管理员等各种使用系统的角色进行数据存储以及取出等交互动作的。不仅如此,根据数据的数据结构的不同,数据库还会对应有不同的存储方式。

网上订餐管理系统,主要是使用流行的关系数据库MySQL,MySQL是一个开源的免费的关系型数据库,在开发者中极为流行,极为受欢迎。他的众多优点,例如:开源,免费使用,对服务器占用更小,速度更快,是系统更加流畅。这些都使得,系统软件开发的陈本较低,用户体验更佳。

此次,我们毕业设计“基于JSP的网上订餐管理系统的设计与实现”中主要使用到了MySQL数据库,以下,就对主要的数据表结构进行描述与说明。

4.1.1 概念结构设计

本数据库为满足网上订餐系统的要求,保证使用者信息准确充分的同时,系统的安全性也同样重要。所以,至少要拥有以下功能:

  • 建立数据表保存使用者注册、登录、验证等功能所需要的数据

  • 建立两张表,分别保存食品分类信息和食品的详细信息所需要的数据,对食品分类信息分类管理

  • 使用者确认下单后出现的订单应当记录,包括订单号、地址等详细信息

  • 订单自动生成滞后,需要记录订单的状态

  • 除系统管理员外,其他人不能进行系统维护,所以要建立一张表保存管理员的信息

  • 使用者会对餐品提出意见,那么应该有留言表,留言表内含标题、日期和留言详情

根据以上信息,网上订餐系统的E-R图如图4-1所示。

4.1.2 表概要说明

网上订餐管理系统主要包括了9张数据表,分别是餐品菜品信息数据表c_book,用户顾客注册数据表表member,管理员数据表admin,餐品菜品类别数据表c_booktype,用户评论数据表comment,订餐车数据表gouwuche,营养小贴士数据表news,订单数据表num,订单详情信息数据表orderbook。其中最为重要的5张数据表,将会在详细描述其表结构。

4.1.3 数据表的结构

餐品菜品信息表c_book

餐品菜品信息数据表主要是用来保存菜品的基本信息,价格,菜名,描述等,该表的结构如表4-1所示。

字段名数据类型长度主键否描述
idint4ID
namevarchar50菜名
authorvarchar50厨师
pricevarchar50价钱
numbervarchar50编号
typevarchar50类别
Sumvarchar50数量
Remarkvarchar50描述
tatevarchar50原材料
imgpathvarchar150菜品图片

管理员信息数据表admin

管理员信息数据表,主要是适用于保存管理员的基本信息。表结构如表4-2所示。

字段名数据类型长度主键否描述
idint4ID
namevarchar50用户名
quanxianvarchar10权限
pwdvarchar50密码

菜品类型数据表 c_booktype

菜品类型数据表,主要保存了当前订餐系统的菜品类型,类型可以根据餐厅的需求,管理员对其进行增加,删除,以及修改等操作管理,如表4-3所示。

字段名数据类型长度主键否描述
Idint4id
namevarchar50菜品类型名

用户(顾客)注册信息数据表member

用户注册信息数据表主要保存了,使用订餐管理系统的用户注册的信息,这张数据表极为重要,表结构如表4-4所示。

字段名数据类型长度主键否描述
Idint4id
namevarchar50用户名
pwdvarchar50密码
sexvarchar50性别
realnamevarchar50真实姓名
agevarchar50年龄
cardvarchar50身份证号
addressvarchar150地址
phonevarchar50电话(手机)
emailvarchar50电子邮件
codevarchar50邮政编码
typevarchar50会员

订单详情信息数据表orderbook

订餐详细信息数据表,主要记录了顾客订餐之后,完成的订餐,订餐中主要记录了此时用户完成的订单的详细信息。数据表的结构如表4-5所示。

字段名数据类型长度主键否描述
idint4id
useridvarchar50用户id编号
bookidvarchar50菜品id标号
booksumvarchar50菜品数量
timesvarchar50订餐时间

5 系统的实现

5.1 前台模块首页

作为网上订餐管理系统,展现给用户的客户端前台页面是整个项目中最为重要的一环,而首页也是使用户的留下主要印象,重要的得分点之一。一个好的首页能为系统做良好的推广效应,展现系统的主要功能,使得用户可以通过简单快捷的熟悉上手,掌握使用方法,实现自己当前的需求。前台客户端页面首页,运行效果如图5-1。

如图5-1,我们可以看到,用户使用的首页展示了系统客户端的主要功能,包括,用户的登录,一些管理员希望用户看到的信息,以及目前餐厅主要的菜品,还有就是重要的模块功能导航栏,通过导航栏的点击,用户可以进入相应的功能模块,实现自己目前的需求,包括:详细的点餐,会员中心,订餐车,留言,找回密码等主要用户使用功能。

首页的部分JSP页面代码:

<span style="background-color:var(--color-markup-code-block)"><span style="color:#ffffff"><code class="language-html"><<span style="color:#9daccc">table</span> <span style="color:#8a8a8a">border</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span> <span style="color:#8a8a8a">width</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"99%"</span> <span style="color:#8a8a8a">cellspacing</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span> <span style="color:#8a8a8a">cellpadding</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span>
<span style="color:#8a8a8a">height</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"100%"</span>>
<<span style="color:#9daccc">tr</span>>
<<span style="color:#9daccc">td</span>>
<%  ArrayList alNewly = (ArrayList) request.getAttribute("books");
	ArrayList alType = (ArrayList) request.getAttribute("type");
				int tem = 0;
				int x = 0;
				if (alNewly.size() % 3 == 0) {
				tem = alNewly.size() / 3;
			} else {
			  tem = alNewly.size() / 3 + 1;
			 }
for (int n = 1; n <= tem; n++) { %>
<<span style="color:#9daccc">table</span> <span style="color:#8a8a8a">cellspacing</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span> <span style="color:#8a8a8a">cellpadding</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"3"</span> <span style="color:#8a8a8a">width</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"710"</span> <span style="color:#8a8a8a">border</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span>>
<<span style="color:#9daccc">tr</span>>
<% for (int i = n * 3 - 3; i < <span style="color:#9daccc">alNewly.size</span>(); <span style="color:#8a8a8a">i</span>++) {
	<span style="color:#8a8a8a">ArrayList</span> <span style="color:#8a8a8a">alNewlyRow </span><span style="color:#ff6633">=</span> <span style="color:#11aaff">(ArrayList)</span> <span style="color:#8a8a8a">alNewly</span>.<span style="color:#8a8a8a">get</span>(<span style="color:#8a8a8a">i</span>); %>
<<span style="color:#9daccc">td</span> <span style="color:#8a8a8a">align</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"middle"</span> <span style="color:#8a8a8a">width</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"710"</span>>
	<<span style="color:#9daccc">table</span> <span style="color:#8a8a8a">border</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span> <span style="color:#8a8a8a">cellspacing</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span> <span style="color:#8a8a8a">cellpadding</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"0"</span>>
<<span style="color:#9daccc">tr</span>>
<<span style="color:#9daccc">td</span> <span style="color:#8a8a8a">colspan</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"2"</span> <span style="color:#8a8a8a">align</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"center"</span> <span style="color:#8a8a8a">bgcolor</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"#FFE3BB"</span>>
<<span style="color:#9daccc">font</span> <span style="color:#8a8a8a">color</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"#ff9900"</span>><%
	 for (int j = 0; j < <span style="color:#9daccc">alType.size</span>(); <span style="color:#8a8a8a">j</span>++) {
	 <span style="color:#8a8a8a">ArrayList</span> <span style="color:#8a8a8a">alTypeRow </span><span style="color:#ff6633">=</span> <span style="color:#11aaff">(ArrayList)</span> <span style="color:#8a8a8a">alType</span>.<span style="color:#8a8a8a">get</span>(<span style="color:#8a8a8a">j</span>);
	<span style="color:#8a8a8a">if</span> (<span style="color:#8a8a8a">alTypeRow</span>.<span style="color:#8a8a8a">get</span>(<span style="color:#8a8a8a">0</span>).<span style="color:#8a8a8a">equals</span>(<span style="color:#8a8a8a">alNewlyRow</span>.<span style="color:#8a8a8a">get</span>(<span style="color:#8a8a8a">8</span>))) {  %>
<<span style="color:#9daccc">a</span> <span style="color:#8a8a8a">href</span><span style="color:#ff6633">=</span><span style="color:#11aaff">"servlet/SearchServlet?types=<%=aTypeRow.get(0)%>"</span>>
<%=alTypeRow.get(1)%>
</<span style="color:#9daccc">a</span>><% break;}}
%></<span style="color:#9daccc">font</span>>
</code></span></span>

5.2 用户注册登录管理

用户在使用订餐管理系统客户端页面进行订餐。首先需要登录系统,登录之后才能享受订餐系统带来的便捷快速的订餐服务,如果当前还没有可以登录的账号,首页提供有注册用户的入口。针对已经登录的用户,若果想对自己当前所使用的用户信息进行一些调整,系统也提供了会员中心管理页面,来满足此类用户的需求。如图5-2为用户登录功能的页面:

用户进行登录之后就可以进行点餐,搜索等相应功能的操作了。用户登录的程序流程图如图5-3所示。

在用户进行注册成为系统的正式用户之后,就可以进行功能的使用了,但是如果出现对当前用户信息的变更操作,就可以在用户的会员中心,对当前登录的用户信息进行修改,如图5-4为用户会员中心页面效果图:

5.3 用户订餐管理功能

订餐管理系统,作为用户使用的客户端的主要功能就是给用户带来便利的网上点餐服务,此次设计实现的基于JSP的网上订餐管理系统,点餐服务主要通过两个页面来展示菜品使用户进行点餐操作,一是首页点餐,首页会展示目前主要的菜品,以及销售排行和新上菜品,根据这些推荐信息,可以给用户带来更加贴心的用户体验;二是搜索点餐,可以通过首页上方的工具栏,点击进入搜索点餐页面,通过菜品的名称或者菜品所属的类别进行针对性的搜索,然后进行点餐,如图5-5为首页点餐页面效果图。

如图5-6为搜索点餐页面效果图。

搜索点餐页面,通过针对性的搜索可以使用户快速的找到自己需要的菜品,进而完成自己的点餐过程。

进行菜品搜索的servlet部分主要代码是:

<span style="background-color:var(--color-markup-code-block)"><span style="color:#ffffff"><code class="language-java"><span style="color:#9daccc">public</span> <span style="color:#9daccc">void</span> <span style="color:#9daccc">doGet</span><span style="color:#ff6633">(</span>HttpServletRequest request<span style="color:#ff6633">,</span> HttpServletResponse response<span style="color:#ff6633">)</span>
			<span style="color:#9daccc">throws</span> ServletException<span style="color:#ff6633">,</span> IOException <span style="color:#ff6633">{</span>
		Validate vd <span style="color:#ff6633">=</span> <span style="color:#ff6633">new</span> Validate<span style="color:#ff6633">();</span>
		String name <span style="color:#ff6633">=</span> vd<span style="color:#ff6633">.</span><span style="color:#8a8a8a">getUnicode</span><span style="color:#ff6633">(</span>request<span style="color:#ff6633">.</span><span style="color:#8a8a8a">getParameter</span><span style="color:#ff6633">(</span><span style="color:#11aaff">"name"</span><span style="color:#ff6633">));</span>
		String types <span style="color:#ff6633">=</span> vd<span style="color:#ff6633">.</span><span style="color:#8a8a8a">getUnicode</span><span style="color:#ff6633">(</span>request<span style="color:#ff6633">.</span><span style="color:#8a8a8a">getParameter</span><span style="color:#ff6633">(</span><span style="color:#11aaff">"types"</span><span style="color:#ff6633">));</span>
		String sql <span style="color:#ff6633">=</span> <span style="color:#11aaff">"select * from s "</span><span style="color:#ff6633">;</span>
		String<span style="color:#ff6633">[]</span> args <span style="color:#ff6633">=</span> <span style="color:#ff6633">{</span><span style="color:#11aaff">"id"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"name"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"author"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"publishing"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"number"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"price"</span><span style="color:#ff6633">,</span>
<span style="color:#11aaff">"storage"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"brief"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"type"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"tate"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"sums"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"imgpath"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"price1"</span><span style="color:#ff6633">,</span><span style="color:#11aaff">"sums1"</span><span style="color:#ff6633">};</span>
		<span style="color:#ff6633">if</span><span style="color:#ff6633">(</span>name <span style="color:#ff6633">!=</span> <span style="color:#ffaa11">null</span> <span style="color:#ff6633">&&</span> <span style="color:#ff6633">!</span>name<span style="color:#ff6633">.</span><span style="color:#8a8a8a">equals</span><span style="color:#ff6633">(</span><span style="color:#11aaff">""</span><span style="color:#ff6633">)){</span>
			sql <span style="color:#ff6633">+=</span> <span style="color:#11aaff">"where name like '%"</span><span style="color:#ff6633">+</span>name<span style="color:#ff6633">+</span><span style="color:#11aaff">"%'"</span><span style="color:#ff6633">;</span>
<span style="color:#6a737d">//构建对菜品名称查询的SQL语句
</span>		<span style="color:#ff6633">}</span>
		<span style="color:#ff6633">if</span><span style="color:#ff6633">(</span>types <span style="color:#ff6633">!=</span> <span style="color:#ffaa11">null</span> <span style="color:#ff6633">&&</span> <span style="color:#ff6633">!</span>types<span style="color:#ff6633">.</span><span style="color:#8a8a8a">equals</span><span style="color:#ff6633">(</span><span style="color:#11aaff">""</span><span style="color:#ff6633">)){</span>
			sql <span style="color:#ff6633">+=</span> <span style="color:#11aaff">"where type='"</span><span style="color:#ff6633">+</span>types<span style="color:#ff6633">+</span><span style="color:#11aaff">"'"</span><span style="color:#ff6633">;</span>
<span style="color:#6a737d">//构建对菜品类别查询的SQL语句
</span>		<span style="color:#ff6633">}</span>
		SelectBean sb <span style="color:#ff6633">=</span> <span style="color:#ff6633">new</span> SelectBean<span style="color:#ff6633">();</span>
		ArrayList al <span style="color:#ff6633">=</span> sb<span style="color:#ff6633">.</span><span style="color:#8a8a8a">select</span><span style="color:#ff6633">(</span>sql<span style="color:#ff6633">,</span> args<span style="color:#ff6633">);</span>
		request<span style="color:#ff6633">.</span><span style="color:#8a8a8a">setAttribute</span><span style="color:#ff6633">(</span><span style="color:#11aaff">"search"</span><span style="color:#ff6633">,</span> al<span style="color:#ff6633">);</span>
		RequestDispatcher rd<span style="color:#ff6633">=</span>request<span style="color:#ff6633">.</span><span style="color:#8a8a8a">getRequestDispatcher</span><span style="color:#ff6633">(</span><span style="color:#11aaff">"/qiantai/search.jsp"</span><span style="color:#ff6633">);</span>
<span style="color:#6a737d">//跳转到前台菜品搜索页面
</span>        rd<span style="color:#ff6633">.</span><span style="color:#8a8a8a">forward</span><span style="color:#ff6633">(</span>request<span style="color:#ff6633">,</span>response<span style="color:#ff6633">);</span>
	<span style="color:#ff6633">}</span>
	<span style="color:#9daccc">public</span> <span style="color:#9daccc">void</span> <span style="color:#9daccc">doPost</span><span style="color:#ff6633">(</span>HttpServletRequest request<span style="color:#ff6633">,</span> HttpServletResponse response<span style="color:#ff6633">)</span>
			<span style="color:#9daccc">throws</span> ServletException<span style="color:#ff6633">,</span> IOException <span style="color:#ff6633">{</span>
		doGet<span style="color:#ff6633">(</span>request<span style="color:#ff6633">,</span>response<span style="color:#ff6633">);</span>
	<span style="color:#ff6633">}</span>
</code></span></span>

当用户找到自己心仪的菜品之后,进行点餐操作,所选菜品点餐成功之后,将跳转到订餐车页面,订餐车页面将展示目前为止,用户所选的菜品,如图5-7为订餐车页面效果图。

在购物车页面中,用户可以清晰的看到目前所点的菜品信息,也可以根据目前自己的需求对已经点的菜品进行操作,例如修改数量,或者删除目前选中的菜品,甚至清空,如果认为还有所需要的菜品,可以点击继续点餐,进入点餐页面,继续点餐操作。当用户认为菜品足够,可以点击收银台,进行订单的提交。

进行提交之后,将进入收银台页面,点击在线支付,将提供支付宝链接,这样就可以支持网上在线支付,使得用户可以付款进而完成当前的订单。如图5-9为收银台页面效果图。

5.4 用户其他功能操作页面

网上订餐管理系统,不仅能让用户进行注册,登录,修改信息的操作,更重要的是让用户得到良好的订餐功能体验。因此,用户除了可以操作上述的订餐页面之外,也可由有其他更加人性化的功能,例如在此次毕业设计“基于JSP的网上订餐管理系统”中出现的营养小贴士,以及在线留言功能。

营养小贴士可以用过管理员在后台进行编写,让点餐的用户看到,提供更加贴心的服务,而在线留言功能可以让用户对当前订餐管理系统中存在的问题,以及改进意见进行表达,达到更好的交互体验。如图5-10为用户在线留言页面效果图。

5.5 后台管理员登录,注册功能

作为一个订餐管理系统,仅仅有用户功能的页面是远远不够的,要提供更加全面的服务,为餐厅管理员提供功能管理页面就显得十分重要。通过系统的后台管理管理页面,对餐厅做出实时的管理,了解用户点餐情况以及目前员工的管理,这样才能更好运作系统,使得用户拥有更好的用户订餐体验。

如图5-11为后台管理员登录页面效果图,5-11为注册管理员,以及修改管理员页面效果图。

通过登录,管理员可以进入后台管理页面对订餐系统进行管理,可以对当前登录管理员进行修改以及添加新管理员。

5.6 后台管理员菜品管理

管理员通过添加新菜品,以及修改原有菜品,对订餐系统中的菜品进行调整,通过添加菜品的类别可以对菜品进行更加完善的管理。添加菜品时候,通过添加菜名,原材料,价格,图片,以及添加目前拥有的菜品类别等信息,来给用户展示一道菜的方方面面,这样使用户通过网络放心的进行订餐。如图5-13为添加菜品页面效果图。

5.7 后台员工及会员管理

管理员登录后台管理系统之后,不仅能对现有系统注册的会员进行管理,还可以对当前餐厅的员工进行管理,可以添加,删除,修改员工信息,根据目前员工的工作状态也可以在系统中进行标注。添加了员工搜索功能,这样方便了网上订餐管理系统,后台管理模块对员工的综合管理,如图5-14为员工管理页面效果图。

5.8 后台材料采购管理

作为一个订餐管理系统,要将每一天做菜使用的原材料进行统计管理,这样才是一个完善的订餐管理系统。对于原材料采购的记录管理,这样更能方便餐厅管理员,对整个餐厅进行全面的管理,做到对每一天的食材的把控,部分食材采购量的调整,对餐厅运营的成本的管理把控。如图5-15为原材料采购管理页面效果图。

通过对原材料的统计把控,以及对一段时间的采购单种类及数量的分析,可以知道什么时候需要采购什么材料,采购的数量的参考量,采购的具体方向。对近期,原材料价格走向进行统计分析,得出对餐厅最为合适的采购方案,避免不必要的采购,或采购的数量不准确,导致的餐厅管理成本的提高,这都是需要注意以及及时避免的。

5.9 销售订餐及统计管理

作为网上订餐管理系统,对于当前订餐订单的管理是不可或缺的,因为只有对近期订单进行分析才能知道,用户喜欢的菜品,进而进行针对化的应对,挺高服务质量,对销量高的菜品背后的工作者--厨师,进行奖励管理,提高工作效率,菜品的质量保证。对近期采购单的统计,有效的看出采购方向,和采购数量,为今后采购提供了有力的数据参考保障,避免采购人员出现不必要的事物,餐厅承担不必要的损失。如图5-16为销售订单管理页面效果图。

如图可以看到,管理页面提供了多样的搜索条件用来搜索符合条件的订餐,例如:用户id,菜品名称,订购数量,这些搜索条件可以快速定位符合条件的订单,然后反馈给管理员来进行订单的管理。

除此之外,还有统计管理功能,如图5-17为统计管理功能页面效果图:

如图,统计管理页面可以清晰,完整的看到当日的订餐销售量,销售信息,以及当日对原材料的采购量信息,这方便了管理员对餐厅的管理,也为用户提供快速,优质的使用体验实现了坚实的保障。

使管理员对当前餐厅的实时状况有了深刻的认识,哪些菜品销量高,需要提前准备,原材料需要大量采购;哪些菜品销量过低,需要减少原材料的采购,甚至下架。近期的用户更喜欢,哪些类别的菜品,是否与天气季节相关,需要对员工厨师进行具体化的调整,提供了有力的数据佐证,与数据分析的资料。这都对今后餐厅的发展十分重要,也是网上订餐管理系统可以被餐厅使用的重要原因之一。

6 系统测试

在大学四年的专业知识学习中,可以得知。作为完整的规范的软件开发流程,在完成系统设计,编码开发之后,进行软件测试是非常重要的一环。是对完成开发,即将投入使用的系统的一次性能以及质量的综合鉴定。在项目正式上线使用之前,进行的必要工作。也是对项目最初的需求分析,系统的总体设计,编码开发的检验,多方面工作的综合最终审核。

6.1 测试方法

在项目进行完整的整合与交互中,对项目系统进行全面的测试,对项目的整体进行问题的查找,在这个过程中耗时相对而言较多。但是也正是因为系统测试的存在,使得系统有了综合质量的保证。

为了确保网上订餐系统的稳定运行,本节对主要功能模块进行测试。

6.2 测试流程

写好测试的数据以及案例,并对测试数据进行设计逻辑的处理,得出期望结果。

6.2.1 前台首页测试

  • 查询模块的测试:首先点击主页正中间的查询栏,在查询栏里中输入要查找的菜品关键字,如果弹出所查找菜品的信息,则说明该模块可行。对该模块进行大量数据的测试,验证其成功无错误

  • 菜品分类浏览模块的测试:单击页面左边的菜品分类信息,选定某一种类后,系统会弹出属于该类别的所有菜品信息。对给模块进行大量数据的测试,验证其成功无错误,该模块能够完整地实现功能

6.2.2 购物车模块测试

在本模块中首先对修改数量单元进行了测试,如果填写的数量为可行的有效数字如1、2、3,则系统提示修改成功,如果输入的制服非法,系统默认修改数量为1。通过随机数据的测试,验证其成功无错误。假如使用者订购了同一个商品,系统就会对该商品的购买数量进行累加。

然后对购物车是否能满足使用者的购买数量进行测试,向购物车中添加大量的食品,查看购物车是否会发生崩溃现象。经过测试,购物车完全满足设计要求,达到了预期目标。

6.2.3 菜品管理模块测试

  • 添加功能的测试:在菜品添加的功能下,对于已经选定的菜品名、菜品信息、菜品的图片、价格、特价、菜品种类进行添加。通过下拉的选择列表选择菜品的类别,对于菜品图片的添加,需要选择本地的菜品图片,然后上传,当所有必须的食品信息都已经填写完毕的时候,即可上传添加。完成添加以后,随机使用几组不完整的数据对本功能进行测试,均显示失败

  • 删除功能的测试:以上述添加的这一条记录为例,点击删除按钮,会跳出是否删除的提示信息,点击确定按钮之后,系统返回删除成功的信息。对于菜品分类信息的删除,则需要在本分类之下已经没有菜品信息,否则将不能删除

6.2.4 会员注册模块测试

在会员注册模块中涉及到了三项数据,项目分别为密码和确认密码、使用者真实姓名、住址、性别、E_mail、QQ。测试这个模块准备的数据有:

  • 979332、979332、王艺博、太原市万柏林区、男、123456@qq.com、123456

  • 岑志云、12345、1234岑志云、太原市万柏林区、男、bzhi@123.com、6434634

点击注册按钮,输入第一组数据,单击注册按钮网站会提示表单信息不能为空,因为表单信息要全部填写,而昵称没有填写。接着测试第二组数据,两次所输入的密码并不一样,系统会弹出提示。

6.3 系统测试结果

当本次毕业设计完成完整的项目开发之后,对本次的“基于JSP的网上订餐管理系统设计与实现”,进行了相应的测试,主要的情况如下:

在项目开发的过程中,每一个进程的每一步都需要被全面的考虑到,从而确保系统在个个时期具备可控性和稳定性。本章注重对前台首页、购物车模块、使用者注册模块和商品管理模块进行了详细的测试说明。对这些模块进行大量数据的测试,验证其成功无错误。

当前,餐饮业还面临着越来越激烈的市场竞争、要想在竞争中取胜,必须采用先进的管理方法和手段。实现先进的计算机网络化管理,能更方便快捷的满足顾客的就餐需要,使管理更合理、更先进;减少人力、物力资源的浪费,降低成本;提高工作效率,提高管理效率;提高经济效益,从而提高餐厅的整体竞争力。 系统为顾客提供了各种美食的详细信息,可以方便顾客对美食进行选购,顾客还可对自己的个人信息进行修改,可以查看过往订过的美食的信息;为餐厅提供了一个虚拟的店面,方便餐厅管理人员了解顾客的需求,进而改变下一阶段的销售策略,还可以进行美食管理,订单管理,会员信息管理,其中,超级管理员还可以对管理员的信息进行管理。 本系统开发使用B/S结构,严格的按照软件工程的思想贯穿系统设计,利用Java语言,以Oracle作为系统数据库,实现网上订餐系统开发。这些先进的开发思想和技术手段有力地保证了此系统可以安全地、高效地为餐厅的运营和顾客的就餐进行服务。 本文介绍了经过用户需求分析后,对订餐系统的基本设计、系统设计、详细设计的开发研制过程。本文所设计的功能满足餐厅的实际需求,使餐厅订餐方面更加科学化,减少了人物力资源的不合理消耗,最后实现了提高工作效率的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员奇奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值