论文-在线订餐系统 - 图文

更新时间:2024-06-09 19:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北京理工大学继续教育学院毕业设计(论文)

北京理工大学继续教育学院

毕业设计任务书

类 别: 高起本 专 业: 计算机科学与技术 班 级: 计算机科学与技术A班 姓 名: 李强

毕业设计题目: 在线订餐系统 指导教师姓名: 宋 晔

负责人签字:

年 月 日

I

北京理工大学继续教育学院毕业设计(论文)

任务书

题目:在线订餐系统

应用通过采用Java Web+JDBC+MySQL技术,实现在线订餐系统的功能设计。要求管理员能够实现对管理员登录、餐品管理、餐品分类管理、会员订单管理以及会员管理等功能模块;要求会员能够实现会员登录、餐品信息检索、餐品分类信息检索以及订单信息检索;会员修改个人信息、管理订单等功能模块。 任务要求:

一. 任务内容描述:

1.系统开发环境:JAVA 开发环境,开发集成工具Eclipse 10.0 + MySQL Server 5.0 2. 开发语言:JAVA 3.系统主要功能:

(1)实现会员对系统前台登录;餐品的购买;对餐品信息、餐品分类信息、订单信息的检索以及会员自身信息修改等功能。

(2)实现管理员对系统的后台登录;以及登录成功后对注册用户、个人订单信息、餐品信息、餐品分类信息的管理以及对管理员信息的修改等。 二.要求按期完成毕业设计(论文)各阶段任务:

要求应用软件工程的方法与数据库设计技术完成系统需求分析;系统概

要设计及详细设计;应用Eclipse 10.0工具与MySQL Server 5.0数据库技术等完成在线订餐系统的实现与测试;根据毕业设计论文的格式要求完成毕业设计论文的撰写,要求论文重点阐述本课题的设计方案,详细论述系统各功能的实现过程及测试结果。 三.进度安排

1.第一阶段:要求完成系统需求分析; 2.第二阶段:要求完成系统设计; 3.第三阶段:要求完成系统实现与测试; 4.第四阶段:要求完成毕业设计论文的撰写。

指导教师签字: 年 月 日

II

北京理工大学继续教育学院毕业设计(论文)

北京理工大学继续教育学院

毕业论文

论文题目:在线订餐系统

专业: 计算机科学与技术 班级: 计算机科学与技术A班 姓名: 李强

学号:20100112400085

III

北京理工大学继续教育学院毕业设计(论文)

摘 要

本文题目是《在线订餐系统》,该系统采用了软件工程分析、概要设计和详细设计。系统采用Java语言作为网站的开发语言,使用的数据库是MySQL 5.0,基于Struts和Hibernate架构完成系统开发。

本论文绪论论述了选题背景及意义:第一章讲述项目开发背景和意义;第二章主要论述了系统的基本内容和课题构想;第三章论述了系统开发所运用的相关技术、工具和开发环境配置;第四章比较系统的讲述了系统需求分析、功能分析、数据库相关的设计以及系统功能设计,并且附带主要窗口界面以及程序代码;第五章主要阐述了系统的测试方法及结果。

本论文重点阐述了基于Java技术的在线订餐系统的开发全过程。本系统实现会员和管理的系统登录,以及餐品信息管理、餐品分类管理、订单信息管理、会员信息管理等功能模块。本系统解决了在线订餐的基本问题,达到了系统设计的预期目标。

关键词:网购;网络化管理;JAVA;JDBC;网上订餐

IV

北京理工大学继续教育学院毕业设计(论文)

Abstract

This thesis topic is the online reservation system, the system USES software engineering analysis, general design and detailed design. System USES Java language as a development language, the use of database is MySQL 5.0, based on Struts and Hibernate framework to complete the system development.

In the thesis the introduction selected topic background and significance are discussed: the first chapter tells the project development background and significance; The second chapter mainly discusses the basic content and system of topic idea; The third chapter discusses the system as applied to the development of related technologies, tools and development environment configuration; Fourth chapter systematic tells the system requirement analysis, function analysis, database design and system function design, and with the main window interface and program code; The fifth chapter mainly elaborated the system test method and results.

This thesis expounds the online reservation system based on Java technology development process. Members and management system login this system, as well as the products information management, products classification management, order information management, member function such as information management module. This system solved the fundamental problem of the online order, achieved the anticipated target of the system design.

Keyword:E-shopping , Network Management , JAVA, JDBC , Online Order

V

北京理工大学继续教育学院毕业设计(论文)

目录

前言 ...................................................................................................................................................... 1 第一章 选题的背景及意义 ................................................................................................................ 1

1.1项目背景 ............................................................................................................................... 1 1.2研究意义 ............................................................................................................................... 2 1.3国内外现状 ........................................................................................................................... 3 第二章 课题的基本内容与构想 ........................................................................................................ 4

2.1课题的基本内容.................................................................................................................... 4

2.1.1 管理员功能 ................................................................................................................. 4 2.1.2 会员功能..................................................................................................................... 4 2.2课题的构想 ........................................................................................................................... 4 第三章 系统相关技术与开发环境概述 ............................................................................................ 5

3.1系统相关技术........................................................................................................................ 5

3.1.1 JAVA框架 ................................................................................................................ 5 3.1.2 Eclipse开发工具 ...................................................................................................... 5 3.1.3 MySQL ..................................................................................................................... 5 3.1.4 Tomcat ....................................................................................................................... 6 3.1.5 Javascript ................................................................................................................... 6 3.2系统的开发环境.................................................................................................................... 6

3.2.1硬件环境: .................................................................................................................. 6 3.2.2软件环境: .................................................................................................................. 6

第四章 系统需求分析与概要设计 .................................................................................................... 7

4.1系统业务流程分析与设计 .................................................................................................... 7 4.2系统功能模块分析和设计 .................................................................................................... 7 4.3数据库概念模型设计 ............................................................................................................ 8 4.4数据字典 ............................................................................................................................. 11

4.4.1数据流...................................................................................................................... 11 4.4.2数据处...................................................................................................................... 12 4.4.3数据存储.................................................................................................................. 13 4.5系统界面设计...................................................................................................................... 16

4.5.1网站主体界面如下 .................................................................................................... 16 4.5.2会员登录界面 ............................................................................................................ 16 4.5.3会员下单流程界面 .................................................................................................... 17 4.5.4会员订单管理界面 .................................................................................................... 22 4.5.5管理员登录界面 ........................................................................................................ 24 4.5.6后台管理界面 ............................................................................................................ 25 4.5.7餐品分类的管理界面 ................................................................................................ 25 4.5.8餐品的管理界面 ........................................................................................................ 27 4.5.9会员的管理界面 ........................................................................................................ 29

第五章 系统测试 .............................................................................................................................. 31

5.1软件测试概述...................................................................................................................... 31

VI

北京理工大学继续教育学院毕业设计(论文)

5.2软件测试的目标.................................................................................................................. 31 5.3软件测试的方法.................................................................................................................. 31

5.3.1 静态测试................................................................................................................... 31 5.3.2 动态测试................................................................................................................... 31 5.3.3 黑盒测试与白盒测试 ............................................................................................... 32 5.4主要功能模块测试 .............................................................................................................. 33

5.4.1会员管理模块的测试 ................................................................................................ 33 5.4.2管理员后台功能模块测试 ........................................................................................ 37

结 论 ................................................................................................................................................ 45 致 谢 ................................................................................................................................................ 46 参考文献 ............................................................................................................................................ 47

VII

北京理工大学继续教育学院毕业设计(论文)

前言

随着21世纪的到来,人们更深刻的感受到了计算机在生活和工作中作用的重要,越来越多的职业需要具有计算机的应用技能。掌握计算机是职业的需要,社会的需要,更是事业发展的需要。

今天,计算机技术不但广泛地应用在办公自动化中,还全面渗透到各行各业。所有与计算机相关的职业都要求工作者有很强的计算机操作技能,做到运用自如,熟练而且深入的掌握软件的应用。随着计算机技术的飞速发展,今后,计算机作为一种崭新的生产力,将在信息社会即新技术革命中发挥越来越重要的作用,并进一步推动人类社会更快的向前发展。

在线订餐的研发与应用,是为了解决中小餐饮行业信息化意识薄弱的而设计的。它有利于中小餐饮行业建立信息化的营销模式,同时可以更大的提高自身的经济效益。在线订餐系统作为一种新型的餐饮营销模式,能更快捷的帮助中小餐饮行业解决商业竞争生存难的问题。

基于这些问题,决定开发《在线订餐系统》,使在线订餐需求系统化,程序化,提高信息处理的速度和准确性。整个研究过程经过需求分析、系统设计、系统开发、系统运行和测试五个阶段的工作,本论文对整个过程进行了详细描述。

由于所学有限,时间紧迫,本系统还有许多不足之处,恳请批评指正。

第一章 选题的背景及意义

1.1项目背景

随着我国餐饮行业的发展,餐饮行业发展趋于大众化,中国的大多数餐饮企

1

北京理工大学继续教育学院毕业设计(论文)

业的老板是从小店发展起来的,家族式管理的居多,许多还是“人治”,并没有一套现代企业制度和监督管理体制,所以从观念意识、经营思想和管理水平还有待专业化。随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。网络订餐实现了小店面大作为的成本效益,解决了因为店面小的限制而无法提高营业额的难题,是一个小投入大成效的经营新模式。

在计算机高速发展的今天,一切原本属于现实生活中的行为方式慢慢地向网络转移,传统的购物方式也正在向网络方面发展,出现了“网购”这种越来越受欢迎的新型消费方式。同样,作为服务业支柱的餐饮业不可避免地趋向网络化发展。

本系统是基于JAVA的网上订餐系统,本系统开发前我们调查研究了很多网上订餐的网站,总结了很多优点与缺点,在充分研究的基础上开发的本系统。希望本系统开发后会带给人们更多的方便,得到更多的人的认可

1.2研究意义

随着社会经济的发展,人们的生活节奏不断加快,上班时间相当紧张,但一日三餐却不可少。通过网上订餐系统,不必亲临现场,在家中或在办公室上网,便可以为自己、家人、朋友聚会等制办一份既营养又实惠的美食。为了实现对客户点菜信息收集、处理、共享和再利用,以提高餐饮业务水平和效率,实现比电话订购更方便、更迅速、更有效的送餐业务。通过对订餐流程的考察,对业务细节进行了全面的分析,结合目前最先进的软件开发技术,实现了订餐的数字化、网络化管理。

餐饮系统不仅需要将整个餐饮业务通过信息系统进行系统管理,同时需要将各类人工服务的工作交由计算机处理,比如点菜和菜单的传送等等。同时,本网站是一个网上订餐系统,能为客户提供网络选择商家、浏览菜品介绍、点菜订餐、约定用餐时间、就餐或送餐以及注明货币支付方式等服务。这样,传统的订餐方式也正在转向网络化发展,但目前,网上订餐业务还处于形成期,成长空间还很大。

2

北京理工大学继续教育学院毕业设计(论文)

1.3国内外现状

与强劲的网络购物需求相比,我国受到计算机软硬件基础比较薄弱,技术水平比较低下,系统开发人员十分紧缺等斯德哥尔摩不利因素的影响,现有购物网萨博站系统普遍存在着功能比较单一,维护比较复杂,通用性又不强等问题,有的购物网站甚至直接采用静态网页发布餐品信息。所有这些,已经严重制约了我国电子商务的发展。在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较新的Jsp技术,一方面Jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。

电子商务的出现和发展,餐品流通领域将面临全方位的深刻变革,美国等经济发达国家正在抓紧推进的电子商务革命,将对中国餐品流通领域和整个经济发展带来种种影响,确实值得我们认真研究。

3

北京理工大学继续教育学院毕业设计(论文)

第二章 课题的基本内容与构想

2.1课题的基本内容

本课题研究基于JAVA的在线订餐系统, 在线订餐销售系统从功能角色上划分为会员和管理员两种用户。在系统实现上最重要的就是信息的交互,这点是由需求分析和可行性分析直接决定的,必须做好餐品销售的及时性,准确性及真实性,并由管理员亲自监督和管理,及时对不按规则录入的信息进行及时的审查和删除。 2.1.1 管理员功能

管理员主要实现管理员登录;登录成功后对注册用户的、订单的信息、餐品信息、餐品分类信息的管理以及对管理员信息的修改等。 2.1.2 会员功能

会员主要实现会员的登录;以及登录成功后对餐品的购买;对餐品信息、餐品分类信息、个人订单信息的检索以及会员自身信息的修改等功能。

2.2课题的构想

用Eclipse 10.0 编写 jsp功能页面,以及用Java编写功能业务模块的代码,数据存储采用MySQL Server 5.0数据库,实现在线订餐系统的设计与实现。同时结合使用Dreamweaver 和Photoshop等工具来完成网页界面的设计使设计美观大方。

4

北京理工大学继续教育学院毕业设计(论文)

第三章 系统相关技术与开发环境概述

3.1系统相关技术

3.1.1 JAVA框架

Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。JavaEE是Java体系中企业版,适用于企业级应用的开发。JavaEE为搭建WEB程序具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制,具有可保留现在有IT资产、高效开发、支持异构环境、可伸缩性、稳定可用性特点。且Java编程语言的风格十分接近C和C++语言,有集成且成熟的开发工具eclipse,可大大提高开发效率。本系统还使用JDK1.7,用Java实现了Javascript的执行引擎,在JavaEE框架下实现了请求转发和Javascript运行环境的构建。 3.1.2 Eclipse开发工具

Eclipse是IBM开发并维护的集成开发工具,具有良好的可扩展性。是Java的优秀开发工具。

3.1.3 MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

选择MySQL的理由,因为MySQL有如下特性:完全支持多线程,意味着它很容易地利用多CPU服务器;支持C、C++、Java、Perl、PHP、Python等多种语言的客户端API;可运行在不同操作系统上;有灵活且安全的权限和口令系统;支持集群,为系统水平扩展创建集群提供可行性。

5

北京理工大学继续教育学院毕业设计(论文)

3.1.4 Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。本系统采用Tomcat7.0版本。 3.1.5 Javascript

Javascript最初是由Netscape公司设计被命名为LiveScript,后与Sun公司合作改名为Javascript,并在Netscape浏览器中实现。Javascript是一种动态、弱类型、基于原型的脚本语言。业务代码均使用Javascript编写,实现MVC模型,大大提供程序的可扩展性。

3.2系统的开发环境

3.2.1硬件环境:

CPU:Inter(R) Core(TM) i5-4200H CPU @ 2.800GHz 内存:DDR3 4.00 GB 硬盘:250G 3.2.2软件环境:

系统服务器:Windows 7 64位操作系统 Web服务器:Tomcat 7.0 开发平台:Eclipse 10.0 数据库:MySQL Server 5.0 开发语言:JDK 1.6

6

北京理工大学继续教育学院毕业设计(论文)

第四章 系统需求分析与概要设计

4.1系统业务流程分析与设计

根据以上业务需求分析可得出主要业务流程如下图所示:

图4-1 会员登陆模块业务流程图

图4-2 管理员登陆信息模块业务流程图

4.2系统功能模块分析和设计

一个易于修改的系统应该由一些相对独立、功能单一的模块按照层次结构组成。这些模块之间不必要的联系都已去掉,而且它们的功能及相互关系都已阐明。

7

北京理工大学继续教育学院毕业设计(论文)

这就是结构化设计的基本思想。

系统的功能模块图如图所示:

图4-2 系统功能模块分析和设计图

4.3数据库概念模型设计

本阶段是在需求分析的基础上,把用户需求抽象为信息结构,建立出一个面向问题的概念模型,此模型采用实体-联系方法(Entity-Relationship Approach)。它用E-R图描述现实世界中的实体。用这种方法表示的概念模型又称为E-R模型。E-R模型中包含“实体”、“联系”、和“属性”等三个基本成分,其中:

1、实体:是指客观世界中存在的并可以相互区分的事物。用方框表示,方框内为实体的名称;

2、联系:是指客观世界中的事物彼此间的联系。用菱形表示,菱形内为联系的名称。

3、属性:是指实体或联系所具有的性质。用椭圆表示,椭圆内为属性名称。使用线段将其和相应的实体连接起来;

系统中包含的实体描述如下:

1) 管理员实体

8

北京理工大学继续教育学院毕业设计(论文)

图4-3-1 管理员实体属性图

2) 会员实体

图4-3-2 会员实体属性图

3) 订单实体

图4-3-3订单实体属性图

4) 餐品实体

9

北京理工大学继续教育学院毕业设计(论文)

图4-3-4餐品实体属性图

5) 购物车信息实体

图4-3-5购物车信息实体属性图

6) 购物车记录信息实体

图4-3-6购物车记录信息实体属性图

7) 在线订餐系统的主要实体关系E-R图:

10

北京理工大学继续教育学院毕业设计(论文)

图4-3-7 在线订餐系统主要实体关系E-R图

4.4数据字典

数据字典是对所有与系统相关的数据元素的一个有组织的列表和精确的、严格的定义,根据前面对网站各个权限用户模块的功能分析和对数据库中实体关系的设计。

4.4.1数据流

编号 D1.1 D1.2 名称 餐品检索要求 餐品信息检索结果 会员订单信息检索 会员订单信息检索结果 餐品分类检索 餐品分类检索结果 后台餐品信息检组成 餐品名称关键字 没有相关餐品│符合条件的餐品数量+餐品名称+餐品图片+餐品价格+餐品分类状态 会员订单编号 订单信息为空│订单编号+餐品名称+餐品数量+餐品价格 餐品分类编号 餐品分类+餐品描述 餐品编号 来源 会员 检索处理 去向 检索处理 会员 D2.1 D2.2 D3.1 D3.2 D4.1 会员 检索处理 管理员 检索处理 管理员 检索处理 会员 餐品分类表 管理员 餐品信息表 11

北京理工大学继续教育学院毕业设计(论文)

索 D4.2 D5.1 D5.2 后台餐品信息检索结果 订单信息检索 订单信息检索结果 会员信息检索 会员信息检索结果 系统用户信息检索 系统用户信息检索结果 没有相关餐品│餐品编号+餐品名称+餐品图片+餐品价格 订单编号 没有相关订单处理│订单编号+订单金额+订单日期+订单状态 会员编号 没有会员信息│会员名称+真实姓名+联系电话+注册日期 系统用户编号 管理员姓名+账号+管理类别 检索处理 管理员 检索处理 管理员 订单信息表 管理员 D6.1 D6.2 D7.1 D7.2 管理员 检索处理 管理员 检索处理 会员信息表 管理员 系统用户表 管理员 4.4.2数据处 编号:P3 输入的数据流:D3.1 输出的数据流:D3.2 功能说明:管理员检索餐品分类处理,按餐品分类编号检索条件,查找餐品分类信息,将检索结果返回. 出错信息:出错后提示管理员 编号:P1 输入的数据流:D1.1 输出的数据流:D1.2 功能说明:会员检索餐品处理,按餐品关键字检索条件,查找餐品信息,将检索结果返回. 出错信息:出错后提示会员 编号:P2 输入的数据流:D2.1 输出的数据流:D2.2 功能说明:会员检索订单处理,按订单编号检索条件查找会员订单信息,将检索结果返回. 出错信息:出错后提示会员

12

北京理工大学继续教育学院毕业设计(论文)

编号:P4 输入的数据流:D4.1 输出的数据流:D4.2 功能说明:管理员检索餐品处理,按餐品编号检索条件,查找餐品信息,将检索结果返回. 出错信息:出错后提示管理员 编号:P5 输入的数据流:D5.1 输出的数据流:D5.2 功能说明:管理员检索订单处理,按订单编号检索条件,查找订单信息,将检索结果返回. 出错信息:出错后提示管理员 编号:P6 输入的数据流:D6.1 输出的数据流:D6.2 功能说明:管理员检索会员信息,按会员编号检索条件,查找会员信息,将检索结果返回. 出错信息:出错后提示管理员 编号:P7 输入的数据流:D7.1 输出的数据流:D7.2 功能说明:管理员检索系统用户,按系统用户编号检索条件,查找系统用户信息,将检索结果返回. 出错信息:出错后提示管理员 4.4.3数据存储

1) 管理员表,主要用于管理用户及处理用户的订单等,表结构如表4-4-3-1所示

表4-4-3-1 管理员表

名称 AID AdminType AdminName LoginName LoginPwd

数据类型 int int char char char 13

长度 4 4 12 12 12 备注 管理员编号 管理员类型 真实姓名 帐 号 密 码 北京理工大学继续教育学院毕业设计(论文)

2) 会员表,主要用于存储用户的注册信息,表结构如表4-4-3-2所示:

表4-4-3-2 会员表

名称 MemberID Memberlevel LoginName LoginPwd MemberName Phone Address Zip RegDate LastDate LoginTimes EMail 数据类型 int int char char char char varchar char datetime datetime int varchar

长度 4 4 12 12 20 15 100 10 0 0 4 100 备注 会员编号 会员级别 登录账号 密码 真实姓名 联系电话 联系地址 邮政编码 注册日期 最后登录日期 登录次数 电子邮箱 3) 订单表,主要用于用户的订单资料的存储,表结构如表4-4-3-3所示:

表4-4-3-3 订单表 名称 OrderID Member Cart OrderNO OrderDate OrderStatus 数据类型 int int int char datetime int

长度 4 4 4 20 0 4 备注 订单编号 会员 购物车 订单编号 下单日期 订单状态 4) 反馈信息表,主要用于会员留言及投诉等信息的存储,表结构如表4-4-3-4所示:

表4-4-3-4 信息反馈表

名称 MessageID Member Title Content LeaveDate AnswerContent AnswerDate 数据类型 int int char text datetime text datetime

长度 4 4 60 0 0 0 0 备注 留言编号 会员 留言标题 留言内容 留言时间 回复内容 回复日期 5) 餐品表,主要用于餐品信息的存储,表结构如表4-4-3-5所示:

14

北京理工大学继续教育学院毕业设计(论文)

表4-4-3-5 餐品表

名称 MerID Category MerName Price SPrice MerModel Picture MerDesc Manufacturer LeaveFactoryDate Special 数据类型 int int char decimal decimal char varchar text char datetime int

长度 4 4 40 8 8 40 100 0 60 0 4 备注 餐品编号 类别id 餐品名称 市场价 特 价 餐品型号 餐品图片 餐品描述 生产厂家 出厂日期 有无特价 6) 餐品类别,主要用于餐品分类信息的存储,表结构如表4-4-3-6所示:

表4-4-3-6 餐品表

名称 ID CateName CateDesc

数据类型 int char text 长度 4 40 0 备注 餐品类别编号 餐品类别 餐品描述 15

北京理工大学继续教育学院毕业设计(论文)

4.5系统界面设计

4.5.1网站主体界面如下

图4-5-1 网站主体界面

在线订餐系统主体界面实现了会员登录、后台登录、餐品下单、餐品展示、餐品分类展示、订单管理以及餐品搜索等功能。

4.5.2会员登录界面

图4-5-2 会员登录界面

登陆功能实现是会员实现订餐功能的第一步。 点击登录按钮执行的核心代码业务代码如下:

public Member memLogin(String loginName, String loginPwd) throws

16

北京理工大学继续教育学院毕业设计(论文)

Exception {

Session session = MySessionFactory.getSession(); Transaction tx = null; Member mem = null; try{

String hql = \a.loginName=:loginName and a.loginPwd=:loginPwd\; Query query = session.createQuery(hql); query.setString(\, loginName); query.setString(\, loginPwd); query.setMaxResults(1);

tx = session.beginTransaction(); mem = (Member)query.uniqueResult();

mem.setLoginTimes(Integer.valueOf(mem.getLoginTimes().intValue()+1));

mem.setLastDate(new Date()); session.update(mem); tx.commit();

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return mem; }

4.5.3会员下单流程界面 (一)

图4-5-1 点餐成功界面

会员登陆成功后,就可以实现在线订购餐品的功能。下面是实现在线点餐功能的核心代码。

17

北京理工大学继续教育学院毕业设计(论文)

选购餐品添加到购物车的核心业务代码:

/** 选购餐品 */

public boolean addCart(Member member, Merchandise mer, int number)

throws Exception {

Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

Cartselectedmer sel = null; int favourable =

member.getMemberlevel().getFavourable().intValue(); String hql =\a.cartStatus=0\;

Query query = session.createQuery(hql); query.setEntity(\, member); query.setMaxResults(1);

tx = session.beginTransaction();

Cart cart = (Cart)query.uniqueResult(); if (cart==null){

cart = new Cart();

cart.setCartStatus(new Integer(0)); cart.setMember(member);

cart.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()));

cart.getMerchandises().add(mer); session.save(cart); }else{

hql = \a.cart=:cartid and a.merchandise=:merid order by a.id desc\; query = session.createQuery(hql);

query.setInteger(\, cart.getId().intValue()); query.setInteger(\, mer.getId().intValue()); query.setMaxResults(1);

sel = (Cartselectedmer)query.uniqueResult(); int total = number;

System.out.println((total*mer.getPrice().doubleValue()*favourable/100));

if(sel!=null){

total = number+sel.getNumber().intValue(); sel.setNumber(Integer.valueOf(total)); if (mer.getSpecial().intValue()==1){

18

北京理工大学继续教育学院毕业设计(论文)

sel.setPrice(mer.getSprice());

sel.setMoney(Double.valueOf(total*mer.getSprice().doubleValue()));

}else{//普通餐品

sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favourable/100));

sel.setMoney(Double.valueOf(total*mer.getPrice().doubleValue()*favourable/100));

} session.update(sel); }else{

cart.getMerchandises().add(mer); }

if (mer.getSpecial().intValue()==1){//特价餐品

cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+number*mer.getSprice().doubleValue())); }else{//普通餐品

cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+number*mer.getPrice().doubleValue()*favourable/100)); }

session.update(cart); }

tx.commit();

if(sel==null){

tx = session.beginTransaction(); hql = \a.cart=:cartid and a.merchandise=:merid order by a.id desc\; query = session.createQuery(hql);

query.setInteger(\, cart.getId().intValue()); query.setInteger(\, mer.getId().intValue()); query.setMaxResults(1);

sel = (Cartselectedmer)query.uniqueResult(); if(sel!=null){

sel.setNumber(Integer.valueOf(number));

if (mer.getSpecial().intValue()==1){//特价餐品 sel.setPrice(mer.getSprice());

sel.setMoney(Double.valueOf(number*mer.getSprice().doubleValu

19

北京理工大学继续教育学院毕业设计(论文)

e()));

}else{//普通餐品

sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favourable/100));

sel.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()*favourable/100));

}

session.update(sel); }

tx.commit(); }

status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

(二)

图4-5-3-1 购物车管理界面

购买后的商品在没有生成订单前,都放置在购物车中。以上是对购物车中的餐品管理界面。

点击清空购物车的核心业务代码:

/** 清空购物车 */

public boolean clearCart(Member member) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

20

北京理工大学继续教育学院毕业设计(论文)

Integer cartid = new Integer(0);

String hql =\a.cartStatus=0\;

Query query = session.createQuery(hql); query.setEntity(\, member); query.setMaxResults(1);

tx = session.beginTransaction();

Cart cart = (Cart)query.uniqueResult(); if (cart!=null){

cartid = cart.getId();

cart.setMoney(Double.valueOf(0)); session.update(cart); }

tx.commit();

Connection con = session.connection();

Statement stat = con.createStatement(); String sql =\cart=\+cartid;

tx = session.beginTransaction(); stat.executeUpdate(sql); tx.commit();

if (stat!=null)stat.close(); status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

(三)

图4-5-3-2 生成订单的界面

会员在提交购物车中的清单后,就会生成一个用户订单信息。

21

北京理工大学继续教育学院毕业设计(论文)

生成订单的核心业务代码:

/** 新增订单 */

public boolean addOrder(Orders order) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

tx = session.beginTransaction(); session.save(order); tx.commit(); status=true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

4.5.4会员订单管理界面

图4-5-4 会员订单管理界面

会员所有的订单会在订单管理界面查询到,同时可以对订单进行删除和查看。 会员订单管理的核心业务代码:

/** 浏览所有订单 */

public List browseOrder() throws Exception {

Session session = MySessionFactory.getSession(); Transaction tx = null; List list = null;

22

北京理工大学继续教育学院毕业设计(论文)

try{

Query query = session.createQuery(\Orders as a order by a.id desc\);

tx = session.beginTransaction(); list = query.list(); if

(!Hibernate.isInitialized(list))Hibernate.initialize(list); tx.commit(); }catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return list; }

/** 删除订单 */

public boolean delOrder(Integer id) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

tx = session.beginTransaction();

Orders order = (Orders)session.load(Orders.class, id); session.delete(order); tx.commit(); status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

23

北京理工大学继续教育学院毕业设计(论文)

4.5.5管理员登录界面

图4-5-5 管理员登陆界面

后台登陆功能,只有管理员才可以登陆,管理员是拥有对该系统的最大操作权限。

管理员登录核心业务代码: /** 系统管理员登录 */

public Admin adminLogin(String loginName, String loginPwd) throws Exception {

Session session = MySessionFactory.getSession(); Transaction tx = null; Admin admin = null; try{

String hql = \a.loginName=:loginName and a.loginPwd=:loginPwd\; Query query = session.createQuery(hql); query.setString(\, loginName); query.setString(\, loginPwd); query.setMaxResults(1);

tx = session.beginTransaction();

admin = (Admin)query.uniqueResult(); tx.commit();

}catch(Exception ex){

if(tx!=null)tx.rollback();

logger.info(\在执行AdminServiceImpl类中的adminLogin方法时出错:\\n\);

ex.printStackTrace(); }finally{

MySessionFactory.closeSession();

24

北京理工大学继续教育学院毕业设计(论文)

}

return admin; }

4.5.6后台管理界面

图4-5-6 后台管理界面

后台管理界面系统运行的与完善的主要模块。后台模块实现了餐品分类管理、餐品管理、订单处、会员的管理功能。

4.5.7餐品分类的管理界面

图4-5-7 餐品分类管理界面

餐品分类的管理界面实现了对餐品分类的管理,主要功能包括餐品分类的增、删、改、查。

餐品分类管理的核心业务代码:

/** 新增餐品分类 */

public boolean addCategory(Category cate) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

tx = session.beginTransaction();

25

北京理工大学继续教育学院毕业设计(论文)

session.save(cate); tx.commit(); status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

/** 浏览餐品分类 */

public List browseCategory() throws Exception {

Session session = MySessionFactory.getSession(); Transaction tx = null; List list = null; try{

Query query = session.createQuery(\order by a.id\);

tx = session.beginTransaction(); list = query.list(); tx.commit(); if

(!Hibernate.isInitialized(list))Hibernate.initialize(list); }catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return list; }

/** 装载指定的餐品分类 */

public Category loadCategory(Integer id) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; Category cate = null; try{

tx = session.beginTransaction();

cate = (Category)session.get(Category.class, id); tx.commit();

26

北京理工大学继续教育学院毕业设计(论文)

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return cate; }

/** 更新餐品分类 */

public boolean updateCategory(Category cate) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

tx = session.beginTransaction(); session.update(cate); tx.commit(); status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status;

} 4.5.8餐品的管理界面

图4-5-8 餐品的管理界面

餐品的管理界面实现了对餐品的管理,主要功能包括餐品的增、删、改、查。

27

北京理工大学继续教育学院毕业设计(论文)

餐品管理的核心业务代码:

/** 新增餐品 */

public boolean addMer(Merchandise mer) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

tx = session.beginTransaction(); session.save(mer); tx.commit(); status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

/** 浏览餐品 */

public List browseMer(String hql) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; List list = null; try{

Query query = session.createQuery(hql); tx = session.beginTransaction(); list = query.list(); tx.commit(); if

(!Hibernate.isInitialized(list))Hibernate.initialize(list); }catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return list; }

/** 装载指定的餐品 */

public Merchandise loadMer(Integer id) throws Exception { Session session = MySessionFactory.getSession();

28

北京理工大学继续教育学院毕业设计(论文)

}

Transaction tx = null; Merchandise mer = null; try{

tx = session.beginTransaction();

mer = (Merchandise)session.get(Merchandise.class, id); tx.commit();

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return mer;

4.5.9会员的管理界面

图4-5-9 会员的管理界面

会员的管理界面实现了对会员的管理,主要功能包括对会员的删除和查询。会员的添加和修改功能由会员自己实现。

会员的管理界面核心业务代码:

/**装载注册会员 */

public Member loadMember(Integer id) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; Member member = null; try{

tx = session.beginTransaction();

member = (Member)session.get(Member.class, id); tx.commit();

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return member;

29

北京理工大学继续教育学院毕业设计(论文)

}

/** 删除注册会员 */

public boolean delMember(Integer id) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{

tx = session.beginTransaction();

Member member = (Member)session.load(Member.class, id); session.delete(member); tx.commit(); status = true;

}catch(Exception ex){

if(tx!=null)tx.rollback();

ex.printStackTrace(); }finally{

MySessionFactory.closeSession(); }

return status; }

30

北京理工大学继续教育学院毕业设计(论文)

第五章 系统测试

5.1软件测试概述

软件测试是软件开发过程中最关键的阶段。当测试成功时可以尽早发现产品中存在的问题并及时解决。尽早解决可以使软件发布后维护的费用降低。测试的目的是为了保证软件的质量,满足设计的要求和客户的要求:因此软件测试是保证质量的关键步骤,也是对软件的规格说明、设计和编码的最后复审。

5.2软件测试的目标

测试是指“用意在于发现错误而执行一个程序的过程”,一个成功的测试是指它成功地发现了一个尚未发现的错误。软件进行测试,可以分为单元测试、编码测试和综合测试,单元测试可以测试单一模块的功能并确定其功效;编码测试可以测试各模块之间的连接是否有效;综合测试是对软件最后的审定软件的各项功能是否齐全有效,是否能顺利完成设计的目的。

5.3软件测试的方法

软件测试方法一般分为动态测试方法与静态测试方法。动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。

5.3.1 静态测试

静态测试是采用人工检测盒计算机辅助静态分析的手段对程序进行检测,方法如下: 1) 人工检测:是指不依靠计算机运行程序,而靠人工审查盒评审软件。

2) 计算机辅助静态分析:指利用静态分析软件工具对被测试程序进行特性分析,从程序中

提取一些信息,来检查可能出错的变量、参数与代码等。

5.3.2 动态测试

动态测试与静态测试相反,只要是设计一组输入数据,然后通过运行程序来发现错误。一般有两种方法:黒盒测试和白盒测试。

31

北京理工大学继续教育学院毕业设计(论文)

5.3.3 黑盒测试与白盒测试

1、黑盒测试

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。

在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法:

a.等价类划分

所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法。它是功能测试的基本方法。

b.因果图法

因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。

c.边值分析

实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。边值分析是对等价类划分的有效补充。

黑盒测试主要是为了发现以下几类错误: 1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 2、白盒测试

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒法全面了解程序内部逻辑结构、对所有逻辑路径

32

本文来源:https://www.bwwdw.com/article/eew6.html

Top