基于JavaWeb的在线图书订购与打印管理系统论文

更新时间:2023-03-13 08:13:01 阅读量: 教育文库 文档下载

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

毕 业 设 计 说 明 书

作 者: XXXXXXX 学 号: XXXXXXXXXX 院 系: 信息工程学院 专 业: 计算机科学与技术 题 目: 基于Java Web的在线图书订购

与打印管理系统

指导者:

(姓 名) (专业技术职务)

评阅者:

(姓 名) (专业技术职务)

2011 年 6 月 吉 林

毕业设计说明书中文摘要

随着科学技术的进步和计算机行业的迅速发展,人们的工作效率得到大大提高。计算机信息处理系统的引进已彻底改变了许多系统的经营管理。 本文中主要介绍了管理事务中的常见基本问题和研究背景,并对系统进行了全面的可行性分析,详细论证了系统的需求分析、系统设计、系统实现和系统测试等过程。 系统实现了图书管理、打印管理、分类管理、用户管理、数据库管理和前台订购等功能。 本系统使用JSP进行网页界面的设计,使用MVC设计模式,采用开源DbUtils、BeanUtils等简单框架进行开发。后端的数据库采用Mysql,通过JDBC驱动和数据库进行无缝连接。 测试结果表明,本系统实现了图书订购的主要功能,基本满足客户的需要。 关键词: 图书订购;打印管理;JSP,DbUtils;BeanUtils - I -

毕业设计说明书外文摘要

Abstract With the progress of science and technology,the astonishing rapid development of the computer industry has been improving people’s working efficiency greatly. The introduction of computerized information system has sharply changed the management in many systems in many fields. This paper mainly introduces the basic management of affairs of common issues and research background.The system a comprehensive feasibility analysis,demonstrated in detail the system requirements analysis,system design,system implementation and system testing process. System toachieve the user stapler,library management,print manage- ment,database management modules. The system is contrived with Java Server Pages technology as well as Struts,Spring and MVC design mode.The DBMS is MySql.This system uses JDBC to connect the Oracle database server. Test results show that this system implements the main function of book management in a library, meets basically the needs of book management. Key words: Book Order;Book management System;DbUtils;BeanUtils

- II -

目 录 目 录

毕业设计说明书中文摘要 ............................................................................................................... I 毕业设计说明书外文摘要 .............................................................................................................. II 第1章 前 言 ............................................................................................................................. 1 1.1 课题的背景 ............................................................................................................................. 1 1.2 课题的意义 ............................................................................................................................. 1 第2章 可行性分析 ......................................................................................................................... 3 2.1 问题的提出 ............................................................................................................................. 3 2.2 经济可行性 ............................................................................................................................. 3 2.3 操作可行性 ............................................................................................................................. 3 2.3 技术可行性 ............................................................................................................................. 4 2.4 开发工具的选择 ..................................................................................................................... 4 2.4.1 系统开发工具 .................................................................................................................. 4 2.4.2 数据库 .............................................................................................................................. 5 2.4.3 Tomcat6.0服务器 ............................................................................................................. 6 2.4.4 JDK工具 ........................................................................................................................... 7 第3章 需求分析 ............................................................................................................................. 9 3.1 图书订购与打印管理系统需求概述 ..................................................................................... 9 3.2 功能需求 ................................................................................................................................. 9 3.2.1 与订购者相关的基本功能元素 ...................................................................................... 9 3.2.2 与管理员相关的基本功能元素 ...................................................................................... 9 3.2.3 总体系统的基本功能元素 ............................................................................................ 10 3.3 性能需求 ............................................................................................................................... 10 3.3.1人身和环境安全性需求 ................................................................................................. 10 3.3.2 可靠性和可用性需求 .................................................................................................... 10 3.3.3 容错性需求 .................................................................................................................... 10 3.3.4 易用性 ............................................................................................................................ 10 3.3.5 易学性 ............................................................................................................................ 11 3.4 运行需求 ............................................................................................................................... 11 3.4.1 预期的物理环境 ............................................................................................................ 11 3.4.2 预期的技术环境 ............................................................................................................ 11 第4章 总体设计 ........................................................................................................................... 12 4.1 图书订购与打印管理系统设计指导思想和原则 ............................................................... 12 4.2 设计模式 ............................................................................................................................... 12 4.3 系统配置方案设计 ............................................................................................................... 13 4.4 图书订购与打印管理系统总体功能概述 ........................................................................... 14 4.5 图书订购与打印管理系统各功能模块概述 ....................................................................... 15 4.5.1 系统登录模块 ................................................................................................................ 15 4.5.2 打印管理模块 ................................................................................................................ 15 4.5.3 图书管理模块 ................................................................................................................ 16

- III -

目 录 4.5.4 分类信息管理模块 ........................................................................................................ 17 4.5.5 用户信息管理 ................................................................................................................ 17 4.5.6 查询统计管理 ................................................................................................................ 19 4.5.7 数据库管理 .................................................................................................................... 20 4.5.8 前台订书管理 ................................................................................................................ 21 4.6 数据库设计 ........................................................................................................................... 21 4.6.1 编写目的 ........................................................................................................................ 21 4.6.2 背景 ................................................................................................................................ 21 4.6.3 环境要求 ........................................................................................................................ 21 4.6.4 概念结构设计 ................................................................................................................ 22 4.6.5 字段命名规则 ................................................................................................................ 24 4.6.6 数据库详细设计 ............................................................................................................ 24 第5章 详细设计 ........................................................................................................................... 27 5.1系统的软件结构 ................................................................................................................... 27 5.2 开发环境搭建 ....................................................................................................................... 27 5.2.1 导入开发包 .................................................................................................................... 27 5.2.2 创建组织程序的包 ........................................................................................................ 28 5.2.3 系统的全局类 ................................................................................................................ 28 5.2.4 DAO层编写 ................................................................................................................... 29 5.3 登录系统模块的实现 ........................................................................................................... 29 5.4 打印管理模块的实现 ........................................................................................................... 31 5.4.1 初始订单显示 ................................................................................................................ 31 5.4.2 未打印的订单 ................................................................................................................ 32 5.4.3 需要打印的书籍 ............................................................................................................ 32 5.4.4 未取书订单 .................................................................................................................... 34 5.4.5 已取走订单 .................................................................................................................... 34 5.5 图书管理模块的实现 ........................................................................................................... 34 5.5.1 图书添加 ........................................................................................................................ 34 5.5.2查看图书 ......................................................................................................................... 36 5.6 分类管理模块的实现 ........................................................................................................... 36 5.7 用户管理模块的实现 ........................................................................................................... 36 5.7.1 添加用户 ........................................................................................................................ 36 5.7.2 后台用户 ........................................................................................................................ 36 5.7.3 普通用户 ........................................................................................................................ 36 5.8 查询统计模块的实现 ........................................................................................................... 36 5.8.1 查询统计 ........................................................................................................................ 36 5.9 数据库管理模块的实现 ....................................................................................................... 38 5.10 前台订购管理模块的实现 ................................................................................................. 39 5.10.1 前台图书展示 .............................................................................................................. 39 5.10.2 图书搜索 ...................................................................................................................... 39 5.10.3 订单状态查询 .............................................................................................................. 40 5.10.4 购物车维护 .................................................................................................................. 40 5.10.5 订单信息与用户 .......................................................................................................... 40

- IV -

目 录 第6章 测试 ................................................................................................................................... 42 6.1 测试技术 ............................................................................................................................... 42 6.1.1 单元测试 ........................................................................................................................ 42 6.1.2 组合测试 ........................................................................................................................ 43 6.1.3 确认测试 ........................................................................................................................ 43 6.1.4 系统测试 ........................................................................................................................ 43 6.1.5 用户验收测试 ................................................................................................................ 43 6.2 单元测试 ............................................................................................................................... 44 6.2.1过程登录流图 ................................................................................................................. 44 6.2.2 确定路径 ........................................................................................................................ 45 6.3 测试结论 ............................................................................................................................... 45 结 论 ......................................................................................................................................... 47 参考文献 ......................................................................................................................................... 48 致 谢 ......................................................................................................................................... 49

- V -

第1章 前 言

第1章 前 言

1.1 课题的背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。 本系统就是为了管理好图书订购与打印信息而设计的。

东门复印部的图书和订购信息资料繁多,包含很多的信息数据的管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书订购情况(如订购数量、取书时间等)的统计和核实等都采用人工检查进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书订购系统的开发的基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改,一般订购情况是记录在账簿上,图书的数目和内容记录在文件中,复印部工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。

基于这些问题,有必要建立一个图书订购与打印管理系统,使订书管理工作规范化,系统化,程序化,避免订购管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书订购与打印情况。

1.2 课题的意义

图书订购打印管理系统本着让图书订购与管理做到快捷、方便、简单、摆脱用手工操作处理图书订购打印的问题,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了资源的劣势而设计,它可以使管理员从繁重的手工操作中解脱出来。

图书订购与打印管理系统是一项非常有意义的开发工作,其发展的潜力巨大,它的建立

- 1 -

东北电力大学信息工程学院毕业论文 使东门复印部对图书订购打印的管理摆脱传统手工操作,实现通过互连网而进行的图书订购打印管理,其发展前景和影响意义也将是非常深远的。

- 2 -

第2章 可行性分析 第2章 可行性分析

2.1 问题的提出

一方面东门复印部的图书和订购信息资料繁多,包含很多的信息数据的管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书订购情况(如订购数量、取书时间等)的统计和核实等都采用人工检查进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出。

另一方面由于数据处理手工操作,工作量大,出错率高,出错后不易更改,一般订购情况是记录在账簿上,图书的数目和内容记录在文件中,复印部工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。

基于这些问题,有必要建立一个图书订购与打印管理系统,使订书管理工作规范化,系统化,程序化,避免订购管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书订购与打印情况。

2.2 经济可行性

根据成本/效益分析法,本系统所需的软硬件资源都已具备,该系统简单易懂,本系统具有成本相对较低、利益高的特点,经济上可行。

2.3 操作可行性

本系统开发的开发宗旨是以便捷为中心。开发后的系统应具有美观、大方、简单、易操作等优点,即使是不懂计算机的人员也可以根据系统提示使用和管理本系统,它的操作简单的特点使本系统在操作上可行。

- 3 -

东北电力大学信息工程学院毕业论文

2.3 技术可行性

MVC方法采用了JSP和Servlet方法的最佳特性,使这两种技术可以协同工作。明确的是,Servlet是处理层(控制器)。Servlet接收请求,很像Model1架构中JSP页面所做的那样,并确定如何满足那些请求。这就意味着,Servlet控制输入的请求和输出的回应。商业逻辑体现了MVC架构中的模式。商业逻辑代码为页面做处理。如果进入Servlet的请求是一个数据库查询,Servlet就将这个请求传送到一个SQL调用或类似的数据库代码。在某种意义上,架构的模式部分是让应用程序处于领先地位的全部原因。

JSP页面是显示层(视图),是用户与应用程序交互的地方。它提供输入并显示结果。页面不应该包括任何脚本。它只是将数据传送到Servlet,并接收和显示返回的数据。 该架构的优势应该是很明显的。首先,它将计算和显示清楚地分开了。结果很理想,在JSP页面上没有出现处理过程,在Servlet或商业逻辑中没有数据格式。这种分离的另一个好处是Java程序员可以专注于Servlet代码,HTML编写者可以专注于JSP。第二点,控制器Servlet做页面上的所有的决定。在你的页面和逻辑中不会出现任何决策。这就提高了一个应用程序的性能和可扩展性,因为请求可以被导向架构的不同的组件,甚至是不同的服务器。

本系统采用的技术均属当前流行的开发技术,具有技术成熟、效率高、稳定、安全等优点,并且自行配置的兼容机性能优越,能够支持以上软件的运行。所以,本系统在技术上是完全可行的。

2.4 开发工具的选择

2.4.1 系统开发工具(MyEclipse6.6)

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩

- 4 -

第2章 可行性分析 展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

2.4.2 数据库

本软件开发使用的数据库是MySQL,MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的官方网站的网址是:www.mysql.com。

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。

MyISAM Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB 事务型数据库的首选引擎,支持ACID事务,支持行级锁定BDB 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性Memory 所有数据置

- 5 -

东北电力大学信息工程学院毕业论文 于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失Merge 将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差Federated 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Cluster/NDB 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用 CSV 逻辑上由逗号分割数据的存储引擎BlackHole 黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继。

MySQL的特性:

(1) 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。 (2) 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 。

(3) 为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

(4) 支持多线程,充分利用CPU资源。

(5) 优化的SQL查询算法,有效地提高查询速度 。

(6) 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名 。

(7) 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 (8) 提供用于管理、检查、优化数据库操作的管理工具 。 (9) 可以处理拥有上千万条记录的大型数据库。

2.4.3 Tomcat6.0服务器

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.0.14。Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的

- 6 -

第2章 可行性分析 Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

2.4.4 JDK工具

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。JDK(Java Development Kit)

- 7 -

东北电力大学信息工程学院毕业论文 是Sun Microsystems针对Java程序员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

JDK的版本包括:

SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。

ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

JDK的基本组件包括:

(1) javac---编译器,将源程序转成字节码。

(2) jar---打包工具,将相关的类文件打包成一个文件。

- 8 -

第3章 需求分析 第3章 需求分析

3.1 图书订购与打印管理系统需求概述

图书订购与打印管理系统的开发主要涉及到图书的管理、打印信息的管理、分类信息的管理、用户信息的管理、查询统计、数据库管理、前台购物管理等七大功能的数据管理。图书信息管理包括:添加图书、删除图书、修改图书信息。打印信息管理包括:查看未打印订单、查看所需打印的图书、查看未取订单、查看取走订单。用户信息管理包括:添加用户、查看后台用户、查看普通用户。查询统计管理即查询某一时间段内的订单数量、订单金额、和图书订购数量等信息。数据库管理即备份和恢复数据库。前台购物管理包括:图书查询页面、购物车维护页面、订单信息填写等。

图书订购者的需求是查询所有的图书,下订单并填写订单信息,查看订单状态,更新取书信息。

后台管理员可以浏览、查询、添加、删除、修改的基本信息;查看并更新打印信息;统计订购信息等。

3.2 功能需求

在本系统中,对订购者来说,他们关心的问题其实是如何方便的查询到书籍以及正确的订购图书,另一个关心的问题就是所订购的图书的打印状况等等。由此可以得出系统一些需求。

3.2.1 与订购者相关的基本功能元素

(1) 图书查询:应该能够按照图书不同信息对图书进行模糊查询。 (2) 打印状态查询:应该能够查询图书打印状态和确认取书。

3.2.2 与管理员相关的基本功能元素

在面向系统的管理员来说,应注意如下几点:

(1) 查看哪些订单未被打印,需按取书时间先后排序。

- 9 -

东北电力大学信息工程学院毕业论文 (2) 对图书的添加、修改和删除操作的方便性。 (3) 统计某时间段内的订购信息。

3.2.3 总体系统的基本功能元素

从以上问题出发,可以得出本系统应该具有的功能: (1) 图书查询---对所有影印的图书进行查询。 (2) 订购管理---对购物车和订单信息的维护。

(3) 打印管理---对订单和订单中书籍打印信息的更新与管理。 (4) 用户管理---对后台用户进行管理,添加、删除以及修改信息。 (5) 数据库管理---对数据库进行备份和恢复。

3.3 性能需求

3.3.1人身和环境安全性需求

(1) 系统中的软件不构成对人身健康的损害。 (2) 系统中的软件失效时不造成财产的损失。 (3) 系统中的软件失效时不造成环境的破坏。

3.3.2 可靠性和可用性需求

(1) 系统中的软件可以每天使用24小时,每年使用365天。 (2) 系统中的软件故障率小于等于5%。

3.3.3 容错性需求

用户输入错误信息时,系统应提示,不应崩溃。

3.3.4 易用性

软件适合12-70周岁的智力、视力、体力和肢体正常且具有图书借阅相关知识的人使用。

- 10 -

第3章 需求分析

3.3.5 易学性

经过1-2天培训的使用者可以正常使用本软件。

3.4 运行需求

3.4.1 预期的物理环境

(1) 系统在常温环境下使用。 (2) 系统在洁净的室内使用。

3.4.2 预期的技术环境

(1) 宽带网、1M以上宽带互联网。

(2) 台式计算机:CPU P4 2.0G以上,内存256M以上,硬盘40G以上,Windows 2000/2003/NT/XP/Vista/Windows 7中文操作系统。

(3) 数据库管理系统:Mysql5.1及以上。

- 11 -

网卡,10M/100M东北电力大学信息工程学院毕业论文 第4章 总体设计

总体设计的主要目的是用比较抽象的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。首先需要进行系统设计,从数据流图出发设想完成系统功能的若干中合理的物理方案,然后进行软件结构设计,确定软件由那些模块组成以及这么模块之间的动态调用关系。在进行软件结构设计应该遵循的基本原理是模块独立原理。

4.1 图书订购与打印管理系统设计指导思想和原则

(1) 利用软件开发现有软硬件环境,及先进的管理系统开发方案,从而到达充分利用现在资源提高系统开发水平和应用效果的目的。

(2) 系统应该符合软件工程开发的理论,开发方法等开发依据。

(3) 系统应满足图书订购与打印管理工作的需要,并达到操作过程中的直观,方便,实用,安全,准确等要求。

(4) 系统应具备数据库维护功能,及时根据用户需求进行数据库的各种操作。 (5) 系统采用原型,实用模块化程序设计方法,便于系统功能的各种组合和修改,以及系统的测试与维护。

(6) 图书订购与打印管理系统的设计应适合市场的发展。 (7) 图书订购与打印管理系统的设计应当遵循数据库设计规范。

4.2 设计模式

设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发

采用目前一种广泛流行的软件设计模式MVC。MVC(Model—View—Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。 MVC模式如图4-1所示。

- 12 -

第4章 总体设计 更新Model抽象系统应用功能;处理业务逻辑;数据持久化状态查询调用View抽象数据表达;表示针对用户的数据;选择视图请求Contronller定义应用系统的行为将用户请求映射到模型更新;选择视图作为对请求的回应; 图4-1 MVC模式图

MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,现实模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并相应请求。其模型的关系如图所示。在MVC模型中,三层各尽其职、相互独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应该操作的耦合度,也能更好的实现开发中的分工,加速工程进度。

4.3 系统配置方案设计

鉴于本系统的业务性质,必须选择具有较高可靠性、稳定性和必要的容错能力的计算机硬件和软件系统,以保证不丢失、破坏数据。

必须具有较高的响应速度,以保证各项具体业务的顺利进行。

应考虑具有良好的可维护性、可操作性和可扩充性,以保证将来系统规模的扩展和升级的需要。

计算机硬件的选择取决于数据的处理方式和要运行的软件。管理对计算机的基本要求是速度快、容量大、通道能力强、操作灵活方便,但计算机的性能越高,其价格也就越昂贵,因此,在计算机硬件的选择上应全面考虑。由于现在微机在性能上已经有了很大提高,甚至超过了早期大型机的水平,而价格又相对较低,一般企事业单位选择微机作为硬件支撑环境较为适宜。

- 13 -

东北电力大学信息工程学院毕业论文

4.4 图书订购与打印管理系统总体功能概述

图书订购与打印管理系统包含八个模块分别是:系统登录、图书管理、打印信息的管理、分类信息的管理、用户信息的管理、查询统计、数据库管理、前台购物管理。

(1) 系统登录模块:管理员都必须登录才能进入系统,用户登录时在后台通过过滤器(Filter)判断用户的权限类型,分为普通用户和管理员,普通用户无法登陆后台,管理员可以登陆并对多种信息进行操作。

(2) 打印管理模块:管理员通过验证界面进入系统后,进入到打印管理模块,可以进行查看订单状态、更新订单状态、修改订单等操作。

(3) 图书管理模块:管理员通过验证界面进入系统后,进入到图书管理模块,可以对图书进行添加,删除、修改图书信息、查询、查看等一系列的操作。

(4) 分类信息管理模块:管理员可以在此模块中创建分类、修改分类、删除分类。 (5) 用户管理模块:管理员可以在此模块中创建新的后台用户,并且可以对用户的信息进行修改,删除。

(6) 查询统计模块:管理员可以在此模块中查询某一时间段内的订单信息、包括数量、金额等相关信息。

(7) 数据库模块:管理员可以在此模块中对数据库进行备份和恢复。

(8) 前台购物模块:用户可以完成搜索图书、订购图书、维护购物车、填写订单信息、查看订单状态等操作。

系统的功能图如图4-2所示。

图书订购与打印管理系统系统登录模块打印管理模块图书管理模块分类管理模块用户管理模块查询统计模块数据库管理前台订书管理 图4-2 系统功能图

- 14 -

第4章 总体设计

4.5 图书订购与打印管理系统各功能模块概述

4.5.1 系统登录模块

用户进入后台管理界面时会通过的一个过滤器。该模块根据用户输入的用户名、密码来判断用户的类型,判断是否可以登录后台。

本模块的功能点包括:

(1) 判断用户名和密码是否相符。

(2) 根据用户的权限类型,登录到系统的制定界面操作使用。 登录模块流程图如图4-3所示。

开始显示登录界面 N用户是否存在是否是管理员N权限不够Y登陆后台结束

图4-3 登录模块流程图

4.5.2 打印管理模块

在本模块中复印部工作人员可以对订单进行更新状态等操作。 本模块的功能点包括:

(1) 未打印订单---查看最新未打印的订单,并可查看订单明细,订单按预约取书时间从大到小排序,同时可以更新图书打印状态。

- 15 -

东北电力大学信息工程学院毕业论文 (2) 需要打印的图书---统计出所有订单中书籍,相同书籍数量相加,可单独更新某一订单中图书的打印状态,也可以同时更新所有订单中本书的打印状态。

(3) 未取的订单---显示所有打印状态为打印结束且取书状态为未取走的订单,可查看明细,并更新取书状态。

(4) 已取订单---查看已去走订单,并可查看明细。 打印管理模块流程图如图4-4所示。

开始打印管理未打印订单查看明细未打印图书未取订单已取订单所属订单Y更新打印状态DOC查看明细查看明细 Y更新成功更新打印状态 N更新失败单独更新打印状态Y更新成功N更新失败N查看并打印更新取书状态 Y更新成功 N更新失败结束图4-4 打印管理模块流程图

4.5.3 图书管理模块

本模块主要是对图书信息进行管理。 本模块的功能点包括:

(1) 添加图书---添加图书信息(书名、售价、图片、作者等)。 (2) 查看图书---查看图书封面、修改图书信息、删除图书。 图书管理模块流程图如图4-5所示。

- 16 -

第4章 总体设计 开始图书管理添加图书查看图书Y是否成功N修改图书YNY删除图书N成功页面失败页面成功页面失败页面成功页面失败页面结束

图4-5 图书管理模块流程图

4.5.4 分类信息管理模块

本模块主要是管理员对分类信息管理。 本模块的功能点包括:

(1) 添加分类---添加图书类别信息。

(2) 查看分类---包括查看分类信息、修改分类信息、删除分类。 分类信息管理模块流程图如图4-6所示。

4.5.5 用户信息管理

使用该模块的只有管理员,本模块可以维护用户信息。 本模块的功能点包括:

(1) 添加用户---只能添加后台用户。

(1) 后台用户---可以查看后台用户信息、删除后台用户信息。 (2) 普通用户---可以查看普通用户信息、删除普通用户信息。 用户信息管理模块流程图如图4-7所示。

- 17 -

东北电力大学信息工程学院毕业论文 开始分类管理添加分类查看分类Y是否成功N修改分类YNY删除分类N成功页面失败页面成功页面失败页面成功页面失败页面结束

图4-6 分类信息管理模块流程图

开始分类管理添加用户后台用户普通用户Y是否成功NY删除用户NY删除用户N成功页面失败页面成功页面失败页面成功页面失败页面结束

图4-7 用户信息管理模块流程图

- 18 -

第4章 总体设计

4.5.6 查询统计管理

使用该模块可以统计订单信息等。 本模块的功能点包括:

(1) 查询统计---统计某一时间段内的图书订购信息、订单数、营业额等。 用户信息管理模块流程图如图4-8所示。

开始查询统计输入时间段显示统计信息结束 图4-8查询统计模块流程图

开始数据库管理备份数据库恢复数据库Y是否成功NY是否成功N成功页面失败页面成功页面失败页面结束

图4-9 数据库管理模块流程图

- 19 -

东北电力大学信息工程学院毕业论文

4.5.7 数据库管理

使用该模块可以维护数据库信息。 本模块的功能点包括:

(1) 备份数据库---备份数据库,填写备份原因。

(2) 恢复数据库---选择数据库的备份并恢复数据库到备份前状态。 数据库管理模块流程图如图4-9所示。

开始前台订书管理图书展示模糊搜索按类查看不可更新查询订单状态订购继续购物车提交订单输入姓名、电话、取书时间、备注N显示订单状态手动输入数量单本添加是否打印完成Y更新数量Y电话是否存在N成功提交订单弹出错误信息Y是否大于200N提交自动注册新用户可更新取书状态跳转订单生成页面结束 图4-10 前台订购管理模块流程图

- 20 -

第4章 总体设计

4.5.8 前台订书管理

使用该模块主要展示图书信息、可搜索、查询等,维护购物车和订单页面。 本模块的功能点包括:

(1) 展示图书---展示所有图书供用户购买。

(2) 搜索图书---可以按类别查找、也可输入关键字模糊查找图书。 (3) 查询订单---可以查询客户订单当前的打印状态。 (4) 购物车---维护客户购书的页面,增加、删除、修改等。 (5) 订购信息页面---用户填写订购人信息、备注、取书时间等。 前台订购管理模块流程图如图4-10所示。

4.6 数据库设计

4.6.1 编写目的

本说明书说明“图书订购系统”的数据库设计、结构情况,用于开发人员进行项目设计,同时也为后续的数据库维护工作提供了良好的使用说明,也可以作为未来版本升级时的重要参考资料。

4.6.2 背景

数据库名称:bookstore 数据库系统:MySQL 数据库宿主环境:windows

4.6.3 环境要求

硬件平台:CPU:1.5Ghz 内存:512mb 硬盘空间:8gb

操作系统:windows xp,2000,Vista,win 7 数据库:MySQL

- 21 -

东北电力大学信息工程学院毕业论文

4.6.4 概念结构设计

(1) 实体图

图书:图书属性有编号、书名、作者、版次、出版社、价格、分类、描述、图片。 图书实体图如图4-11所示。

出版社 价格 分类 版次 图书 描述 作者 编号 书名 图4-11 图书实体图

分类:分类属性有编号、分类名、描述。 分类实体图如图4-12所示。

名称 分类 编号 描述 图4-12 分类实体图

订单:订单属性有编号、价格、打印状态、取书状态、用户编号、取书时间、下单时间、

描述。

分类实体图如图4-13所示。

- 22 -

第4章 总体设计

价格 打印状态 取书状态 用户编号 订单 描述 编号 下单时间 取书时间 图4-13 订单实体图

订单项:订单项属性有编号、打印状态、订单编号、书籍编号、价格、数量。 订单项实体图如图4-14所示。

订单编号 打印状态 编号 订单项 数量

书籍编号 价格 图4-14 订单项实体图

用户:用户属性有编号、姓名、密码、电话、权限。 用户实体图如图4-15所示。

权限 编号

电话 用户 姓名 密码 图4-15 用户实体图

- 23 -

东北电力大学信息工程学院毕业论文 (2) E—R图

根据以上实体图,分析了各个实体的属性,根据这些属性,可以得到系统的E—R图, 用户可订购多个订单,每个订单含有多个订单项信息,每个订单项中又含有多本图书信息。

系统E-R图如图4-16所示。

订单项 1 n 属于 1

订单 n 订购时间 预约时间 订单金额

属于

n 图书 订购 1 用户 图4-16 系统E-R图

4.6.5 字段命名规则

字段一律采用拼音首字母或简单单词命名。 如表4-1所示。

表4-1 字段命名规则

字段名称 id name author 描述 编号 名称 作者

4.6.6 数据库详细设计

根据上述实体设计,本系统需要创建以下数据表:

- 24 -

第4章 总体设计 表4-2 category(分类信息表)

列名 id name description 数据类型 varchar(40) varchar(100) varchar(255) 表4-3 book(图书信息表)

列名 id name author price edition pubcom imagename description category_id 数据类型 varchar(40) varchar(100) varchar(40) decimal(8,2) varchar(40) varchar(40) varchar(100) varchar(255) varchar(40) 表4-4 user(用户信息表)

列名 id username password cellphone authority 数据类型 varchar(40) varchar(40) varchar(40) varchar(40) boolean 表4-5 orders(订单信息表)

列名 id ordertime taketime price print_state take_state user_id remark 数据类型 varchar(40) datetime datetime decimal(8,2) boolean boolean varchar(40) varchar(255)

- 25 -

可否为空 NOT NULL NOT NULL NULL 描述 分类ID(主键) 分类名称 分类描述 可否为空 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NULL NULL 描述 书籍ID(主键) 书籍名称 作者 售价 版次 出版社 图片名称 描述 分类ID(外键) 可否为空 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 描述 用户ID(主键) 用户名 密码 电话号码 权限 可否为空 NOT NULL NOT NULL NOT NULL NOT NULL NULL NULL NOT NULL NULL 描述 用户ID(主键) 订单时间 预约时间 金额 打印状态 取书状态 用户ID(外键) 描述 东北电力大学信息工程学院毕业论文 表4-6 orderitem(订单项信息表)

列名 id quantity price print_state book_id taketime order_id 数据类型 varchar(40) Int decimal(8,2) boolean varchar(40) datetime varchar(40) 可否为空 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 描述 订单项ID(主键) 数量 金额 打印状态 书籍ID(外键) 取书时间 订单ID(外键) - 26 -

第5章 详细设计 第5章 详细设计

5.1系统的软件结构

处理静态WEB是由Web浏览器向Web发送静态页面, Web服务器直接对发送的静态网页进行处理。

处理动态WEB数据库查询的过程是:当Web浏览器向Web服务器发送请求时,动态网页的处理流程是,屏蔽掉HTML语言,只输入动态网页文件,由Web服务器向数据库中传递信息,经过数据库的处理返回数据集,Web应用服务器再把含有程序代码的动态网页转换为静态网页返还给Web浏览器。这就是用动态网页对数据库进行查询并将数据返还给浏览器处理的全过程,具体见图5-1所示。

Web服务器发送请求…… …… 查询数据Web浏览器返回响应返回数据集应用程序服务器数据库Web浏览器 图5-1数据库查询示意图

5.2 开发环境搭建

5.2.1 导入开发包

mysql驱动 c3p0连接池 dbutils框架 beanutils框架 commons logging jstl开发包

- 27 -

东北电力大学信息工程学院毕业论文 commons fileupload commons io包

5.2.2 创建组织程序的包

nedu.com.domain nedu.com.dao nedu.com.dao.impl nedu.com.service

nedu.com.service.impl nedu.com.web.manager nedu.com.web.client nedu.com.utils nedu.com.web.filter junit.test

在web应用下新建:

manager目录:放后台管理相关的jsp client目录:放前台管理相关的jsp

5.2.3 系统的全局类

JdbcUtils主要用于c3p0数据库连接池连接,完成创建连接池、提交事务、事务回滚、关闭连接等操作。

WebUtils 创建静态方法生成UUID,为图书订单等信息编号、处理页面上传文件、购物车到订单的转换等功能。

CharacterEncodingFilter 解决中文乱码。 HtmlFilter 防止页面输入hml标签信息。 TransationFilter 开启事务。

AuthorityFilter 权限过滤器,实现粗粒度权限过滤。

- 28 -

第5章 详细设计

5.2.4 DAO层编写

数据访问对象(Data Access Objects):是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ ODBC Direct功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。

DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。本系统所涉及Dao接口及其实现类如表5-1所示。

表5-1 DAO实现类对应表

接口DAO BookDao CategoryDao OrderDao OrderItemDao UserDao PaginationDao 说明 图书操作 分类操作 订单操作 订单项操作 用户操作 分页 实现类 BookDaoImpl CategoryDaoImpl OrderDaoImpl OrderItemDaoImpl UserDaoImpl PaginationDaoImpl

5.3 登录系统模块的实现

本模块主要是用户通过登陆页面进入该系统。用户输入正确的用户名和密码,如果登录信息有错误,则系统提示登录错误信息。若登录信息正确,系统会根据用户的身份进行相应权限的判断,普通用户无法登陆后台,管理员可进入后台系统,想进入后台的任何界面必须通过登陆窗口登陆才能进入。本模块主要通过过滤器实现,在web.xml中配置filter,用户要访问manager目录下的文件都会通过过滤器,过滤器判断session中的user是否存在,若存在则判断权限是否为1,若为1则执行doFilter()放行,否则访问不能通过过滤器,提示没有登录或者权限不足。

图书打印与管理系统登录主页面如图5-2所示。

- 29 -

东北电力大学信息工程学院毕业论文

图5-2登陆主界面示意图

本功能主要通过LoginServlet和AuthorityFilter实现。 其实现主要代码如下:

AuthorityFilter:

User login = (User) res.getSession().getAttribute(\);

if(login==null){

res.getRequestDispatcher(\).forward(res, req);

}else{ }

if(login.getAuthority()==1){

chain.doFilter(res, req);

}else{ }

res.setAttribute(\, \您的权限不够!!!!\); res.getRequestDispatcher(\).forward(res, req);

LoginServlet:

PrintWriter out = response.getWriter(); String name = request.getParameter(\); String psw = request.getParameter(\); BusinessService bs = new BusinessServiceImpl();

- 30 -

第5章 详细设计

User login = bs.findUser(name, psw); if(login==null){

out.print(\用户名或密码有错误!\);

}else{ }

request.getSession().setAttribute(\, login);

5.4 打印管理模块的实现

本模块主要是使用者可以查看订单信息、查看未打印信息、更新打印状态、更新取书状态,还可以搜索订单、更改订单信息等。

5.4.1 初始订单显示

系统登陆后显示初始订单页面,包括为打印订单列表和未取订单列表,管理员可以通过

电话号码搜索订单,并可以对订单进行修改,修改后会判断订单中的订单项是否为0,为0的话则删除订单,否则更改订单总价。

初始订单显示页面如图5-3所示。

图5-3初始订单显示页面示意图

- 31 -

东北电力大学信息工程学院毕业论文

5.4.2 未打印的订单

未打印的订单可以按订单查看定购信息,可显示打印进度、订单人、电话、下单时间、预约取书时间、订单总价等信息,点击详细信息可进入详细信息页面,会显示所有订购图书的详细信息,同时会显示每本书的打印状态,还有备注信息,管理员可根据备注信息打印图书,点击每本书后面的“DOC”链接,即可打开本图书的word文档来打印图书,打印完成后可点击“打印完成”链接来更新打印状态,但不可以点击“确认取书”,在未打印的订单里面“确认取书”链接失效。

5.4.3 需要打印的书籍

此功能通过查询打印状态为false的订单,把所有订单以订单项中的图书编号为key,以数量为value放入一个Map集合中,key相同则更新数量,最后得到一个Map集合,取出Map集合中数据存入ArrayList集合中,给List集合注册Comparator比较器,按图书数量排序,最后把List集合导入pagebean中,每次显示一定数量的List集合中的数据,完成分页显示数据。

在此功能中用户可以点击所属订单链接查看所属订单的信息。例如下图编号1101书名为电机学的书,数量为4本未打印,点击所属订单后即可查询这4本书分别属于那些订单,订单中本书的单元格背景为淡蓝色标注,并可以单独更新打印状态。同时用户还可以点击“DOC”链接来打开相应的word文档来打印该书籍。

需打印的书籍页面如图5-4所示。

图5-4需打印的书籍页面示意图

- 32 -

第5章 详细设计 其实现主要代码如下:

List list_orderItem = bs

.findOrderItemByState(\);

TreeMap map = new TreeMap(); for (OrderItem oi : list_orderItem) { }

List temp = new LinkedList();

Set> entrySet = map.entrySet(); for (Map.Entry it : entrySet) { }

Collections.sort(temp, new Comparator() {

public int compare(Object a, Object b) {

int one = ((OrderItem) a).getQuantity(); int two = ((OrderItem) b).getQuantity(); return two - one;

- 33 -

String key = oi.getBook_id(); int value = oi.getQuantity(); if (map.containsKey(key)) { }

map.put(key, value);

int convalue = (Integer) map.get(key); value = convalue + value;

String key = it.getKey(); int value = it.getValue(); Book book = bs.findBook(key); OrderItem oi = new OrderItem(); oi.setBook_id(key); oi.setBook(book); oi.setQuantity(value); temp.add(oi);

东北电力大学信息工程学院毕业论文

}

});

5.4.4 未取书订单

此功能为查看未取书的订单设计,用户可根据此信息来及时通知客户来取他所订购的书

籍并更新取书状态已取走,在详细信息中“打印完成”链接失效。

5.4.5 已取走订单

在已取走订单中用户可查看已取走的订单信息,以便核实取走状态,再详细信息中“打

印完成”、“确认取书”两个链接失效。

5.5 图书管理模块的实现

本模块主要是功能是添加图书信息和查看修改图书信息。

5.5.1 图书添加

管理员可使用此功能添加图书信息,并生成图书预览。图书图片名称为固定格式,如

dz1001电机学.jpg点击浏览后可自动添加书名和编号分别为“电机学”,编号为“dz1001”, 点击添加书籍,通过javascript验证文本框内容正确性。

图书添加页面如图5-5所示。

图5-5图书添加页面示意图

- 34 -

第5章 详细设计 其实现主要代码如下:

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory); List items = (List) upload

.parseRequest(request);

for (FileItem fi : items) {

String name = fi.getFieldName(); String value = fi.getString(\); if (fi.isFormField()) {

if (!(\.equals(name))) {

BeanUtils.setProperty(book, name, value);

} else { }

BusinessService service = new BusinessServiceImpl(); Category category = service.findCategory(value); book.setCategory(category);

} else {

String savename = generateUUID();

book.setImagename(savename+\+filename); InputStream in = fi.getInputStream();

FileOutputStream out = new FileOutputStream(savepath +

String filename = fi.getName();

filename = filename.substring(filename.lastIndexOf(\)+1);

File.separator + savename+\+filename);

int len = 0;

byte buffer[] = new byte[1024]; while((len=in.read(buffer))>0){ }

- 35 -

out.write(buffer, 0, len);

东北电力大学信息工程学院毕业论文

}

in.close(); out.close(); fi.delete();

5.5.2查看图书

管理员可使用此功能查看和修改图书信息,还可以对图书进行删除,由于图书较多,用

户可以根据图书名称进行模糊搜索来查找图书。

5.6 分类管理模块的实现

本模块主要是功能是添加分类信息和修改分类信息,其实现方式与添加图书相似。

5.7 用户管理模块的实现

用户通过此模块可以对系统用户信息进行管理。

5.7.1 添加用户

管理员可使用此功能对后台用户进行添加。

5.7.2 后台用户

管理员可使用此功能查看和删除后台用户。

5.7.3 普通用户

管理员可使用此功能查看和删除普通用户。

5.8 查询统计模块的实现

5.8.1 查询统计

用户通过此模块可以对某一时间段内的订购信息进行统计,可统计订单数、订书数量、

- 36 -

第5章 详细设计 总金额等信息。

查询统计页面如图5-6所示。

图5-6查询统计页面示意图

其实现主要代码如下:

List items = bs.getItemBytiem(start_time, end_time);

TreeMap map = new TreeMap(); Double total = 0.00; int book_count=0; Set ss = new HashSet(); for (OrderItem oi : items) {

Double price = oi.getPrice(); total += price;

ss.add(oi.getOrder_id()); String key = oi.getBook_id(); int value = oi.getQuantity(); book_count += value; if (map.containsKey(key)) {

int convalue = (Integer) map.get(key); value = convalue + value;

- 37 -

东北电力大学信息工程学院毕业论文

}

}

map.put(key, value);

List temp = new LinkedList();

Set> entrySet = map.entrySet(); for (Map.Entry it : entrySet) {

String key = it.getKey(); int value = it.getValue(); Book book = bs.findBook(key); OrderItem oi = new OrderItem(); oi.setBook_id(key);

}

oi.setBook(book); oi.setQuantity(value); temp.add(oi);

Collections.sort(temp, new Comparator() {

public int compare(Object a, Object b) { }

int one = ((OrderItem) a).getQuantity(); int two = ((OrderItem) b).getQuantity(); return two - one;

});

5.9 数据库管理模块的实现

数据库管理主要为对数据库的备份和恢复,通过mysql语句实现。 其实现主要代码如下:

- 38 -

第5章 详细设计 备份:

String restoreFile = bak.getBakfile();

String path = this.getServletContext().getRealPath(\);

String command = \ + path

+ \ + restoreFile;

Runtime.getRuntime().exec(command); 恢复:

String command = \ + savepath + \

+ filename;

Runtime.getRuntime().exec(command); Dbbak bak = new Dbbak(); bak.setBakfile(filename); bak.setBaktime(new Date());

bak.setDescription(request.getParameter(\)); bak.setId(UUID.randomUUID().toString());

BusinessService service = new BusinessServiceImpl(); service.addDbbak(bak);

5.10 前台订购管理模块的实现

5.10.1 前台图书展示

展示所有图书供客户选择订购,图书分页显示,图书信息为书名、作者、出版社、价格

等信息,用户点击购买链接即可将图书加入购物车。

5.10.2 图书搜索

用户可以按分类搜索图书,还可以输入书名中含有的关键字模糊搜索。点击左侧分类即

显示属于此分类的所有图书,模糊搜索可现实所有书名包含输入的关键字的图书。

- 39 -

东北电力大学信息工程学院毕业论文

5.10.3 订单状态查询

用户订书后可以输入订书时输入的手机号码查询订单状态,订单状态会显示每本书的打

印状态,全部打印完成,则图书变为可取状态,否则“确认取书”链接失效。

5.10.4 购物车维护

用户购买图书后即跳入购物车页面,用户可以输入订书数量,还可以单本增加图书数量、删除图书。购物车保存在session中,每次添加数量或删除图书都会使用Ajax异步更新session中的购物车信息。

购物车页面如图5-7所示。

图5-7购物车页面示意图

5.10.5 订单信息与用户

订书完成后点击提交订单即跳入用户信息输入页面。本系统会把手机号码作为唯一的标

示,当用户输入的手机号码不存在的时候会提示“您是第一次订书”同时右侧自动生成注册信息,用户需点击提交注册用户,如果存在则可直接提交订单。

订单信息页面如图5-8所示。

- 40 -

第5章 详细设计

图5-8订单信息页面示意图

- 41 -

东北电力大学信息工程学院毕业论文

第6章 测 试

测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。在开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占开发总工作量的40%以上。因此,我们必须重视测试工作。

6.1 测试技术

由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。

从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随不同阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。

6.1.1 单元测试

单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作。单元测试一般是由程序员完成,也称程序调试。

- 42 -

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

Top