(完整版)优秀毕业设计毕业论文 源码基于Java的图书馆管理系统

更新时间:2024-03-30 17:26:01 阅读量: 综合文库 文档下载

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

人生最大的幸福,是发现自己爱的人正好也爱着自己。 图书管理系统毕业论文 目 录 摘 要 III Abstract

IV

1. 绪 论 1 1.1毕业设计主要任务 1

1.2目前图书管理系统存在的问题1.3课题意义 1 1.4论文的工作和安排 2 2.图书借阅管理需求分析 3 2.1 可行性分析 3 2.1.1.技术可行性 3 2.1.2.经济可行性

3

2.2 图书借阅管理系统需求概述 2.2.1系统目标 3 2.2.2用户类和用户特性 4 2.3 图书借阅管理系统需求模型 2.3.1功能描述 4

2.3.2图书管理员详细功能描述 5 2.3.3读者详细功能描述 5 2.3.4主要用例的用例描述 6 3.总体设计 9 3.1 数据库设计 9 3.1.1数据库设计概述 9

1 3

4

3.1.2图书信息表结构设计 10 3.1.3图书类型信息表结构设计 11 3.1.4 读者信息表结构设计

11

3.1.5读者类型信息表结构设计 12 3.1.6图书借阅信息表结构设计 12 3.1.7图书归还信息表结构设计 13 3.1.8用户信息表结构设计 13 3.1.9图书馆信息表结构设计 14 3.1.10办证参数信息表结构设计 3.2 系统总体结构设计

15

3.2.1图书管理系统总体结构图 15 3.2.2 系统管理员模块功能 15

3.2.3 读者管理模块功能 16 3.2.4 图书管理模块功能 16 3.2.5 图书借还模块功能 17 3.2.6 系统查询模块功能 18 4.程序设计与编码

20

4.1开发平台与工具 20 4.1.1 J2EE平台 20 4.1.2 WEB服务器和数据库 20 4.2程序设计 21 4.2.1程序设计概述 21

4.2.2数据库与Web服务器的连接 4.2.3登录模块程序设计 23 4.2.4系统管理员功能模块的实现 14

21 25

4.2.5读者管理功能模块的实现 26 4.2.6查询功能模块的实现 27 4.2.7图书管理功能模块的实现 29 4.2.8图书借还功能模块的实现 30 5.软件测试 33

5.1 软件测试的方法与步骤

33

5.2 测试用例设计与测试用例的运行过程及测试结果分析 34 5.2.1模块测试 34 5.2.2集成测试 35 5.2.3 验收测试 36 5.3 评价 6.结束语

36 37

37 37 37

6.1 工作成果 6.2 改进意见 6.3 收获体会 参考文献 致 谢 40 摘 要

39

随着科学技术的进步 计算机行业的迅速发展 大大提高人们的工作效率

计算机信息处理系统的引进已彻底改变了许多系统的经营管理 图书管理系统是学校管理机制中的重要组成部分 通过对图书管理系统的运行管理机制进行调查研究 开发了此图书系统

本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作 本系统中包含6个功能模块:系统设置 读者管理 图书管理 图书借还

系统查询和更改口令

本系统使有jsp进行网页界面的设计 使用MVC设计模式 采用了开源框架Struts

它采用了当今软件设计的最新技术

具有开发效率高、设计灵活、生成的软件界面友好美观等特点 本系统中通过JDBC驱动和数据库进行无缝连接 后端的数据库是mysql 也是一个开源的数据库系统 该数据库具有较高的完整性 一致性和安全性

关键词:图书管理;信息管理;jsp;struts Abstract

With the progress of science and technology

the astonishing rapid development of the computer industry of the library takes an important role in the administration of school organization. I desigen the system after the thorough investigations about the library management system's mechanism. This system contains with reader informantion

management model

book information management model

books borrowing and returning including system information query and password setting.

The system is contrived with Java Server Pages Techonolege as well as Struts

the software design mode of MVC with open source framework techonolege which makes this system open source database system for its users. The batabase was desigend with 最大书量 Int Tel 电话号码 Varchar(15) keepMoney 押金 Miney Zj 证件类型 Int Zy 职业 Varchar(50) ISBN 国际标准书号

Varchar(13) bztime 办证时间 datetime

3.2 系统总体结构设计

该系统在Windows982000XP环境下 主要采用JSP开发工具 MySQL数据库来设计

开发过程与成果应符合GBT软件工程术语 GBT计算机软件产品开发文件编制指南等[7] 3.2.1图书管理系统总体结构图 绘制系统结构图的过程

实际上就是对系统功能模块进行分解设计的过程 即合理地将数据流程图转变为所需要的系统结构图[8]

系统结构图将会使读者和用户能直观的了解系统的结构模式 理解系统的各个功能的结构

能很好地方便用户使用和理解整个系统 本系统的结构图如下: 图3.3系统总体结构图 根据需求分析的结果 按照\低耦合、高内聚\的原则

本系统将划分为以下主要功能模块:系统管理员功能模块 读者管理功能模块 图书管理功能模块

图书借还功能模块;系统查询功能模块[8]

3.2.2 系统管理员模块功能 该模块主要包括图书馆信息设置 用户管理 参数设置 书架设置

1.图书馆信息设置

该功能选项用于系统管理员对图书馆名称 地址 联系方式

简介等信息的管理更新

以便于读者和外界人士对图书馆的了解 该功能是对td_library表进行维护修改等操作 修改后的信息将被保存在该表中 2.用户设置

该功能子模块主要是系统管理员对系统用户的管理

通过此子模块的功能实现可以对用户进行添加、修改、删除、权限设置等操作 该子模块能将图书馆的不同工作细化到不同的相关人员 极大地提高了图书馆的工作效率 该操作是对tb_users表进行操作

在对用户进行了相关的操作后把操作后的最新信息存放在该表中 3.图书馆参数设置

通过该子模块设置在图书馆办理临时读者证的费用及证件有效期限 该操作是对于tb_parameter表进行 并把操作后的最新数据存放在该表中 3.2.3 读者管理模块功能

该模块主要包含读者类型管理和读者信息管理两个子模块: 1. 读者类型管理

该子模块是对图书馆系统用户读者的类型进行维护 修改等操作

在此模块中主要设置不同类型读者一次性可借阅的图书的数量 该操作是对于tb_resderType表进行 并将操作结果保存在该表中 2. 读者信息管理

该子模块是对读者的基本信息进行管理 可以对读者的基本信息进行添加 修改 删除操作

这下操作均是对tb_resder表进行的 并将操作后的结果保存在该表中 3.2.4 图书管理模块功能

图书管理功能模块可分为图书类型管理和图书信息管理两个子模块 其各自的实现分别如下面表中所示: 表3.11 图书类型管理描述 图书类型管理 功能描述

对图书进行类型设置分类

并对不同类型图书可被借阅的天数进行设置 访问的数据库表

图书类型表:tb_bookType 进行的操作

添加、修改、删除图书类型 对不同类型图书可被借阅的天数进行设置 产生的结果

对图书类型进行管理 对不同类型图书参数进行设置 结果存储位置或输出

结果存储在图书类型表(tb_bookType)中 结果在图书类型查询页面输出 表3.12 图书信息管理描述 图书信息管理 功能描述

对图书进行基本操作和信息管理 访问的数据库表

图书类型表:tb_bookType 进行的操作

添加、修改、删除图书

对图书的编号、所在书架、价格、出版社等基本信息进行管理 产生的结果

对图书基本操作管理

对不同图书参数进行各自信息的设置管理 结果存储位置或输出

结果存储在图书类型表(tb_book)中 结果在图书查询页面输出 3.2.5 图书借还模块功能

该功能模块主要实现对读者借阅、续接、归还图书的操作

其中子模块各自的描述如下各表所列: 表3.13 图书借阅描述 图书借阅管理 功能描述

对读者借阅图书进行基本操作和信息管理 访问的数据库表

图书信息表: tb_bookinfo 读者信息表:tb_reader

读者类型信息表:tb_resderType 进行的操作

对读者借阅图书进行管理 产生的结果 读者借阅成功 系统对借阅信息进行记录 结果存储位置或输出

结果存储在图书借阅表(tb_borrow)中 结果在图书借阅查询页面输出 表3.14 图书续借描述 图书续接管理 功能描述

对读者借阅图书进行提续接操作 访问的数据库表 图书借阅表: tb_borrow 进行的操作

对借阅的图书进行续接

产生的结果

读者归还日期延后一个月 结果存储位置或输出

结果存储在图书借阅表(tb_borrow)中 表3.15图书归还描述 图书归还管理 功能描述

对读者归还图书进行基本操作和信息管理 访问的数据库表

图书借阅信息表: tb_borrow 读者类型信息表:tb_resderType 进行的操作

对读者借阅图书进行管理 产生的结果 读者借阅成功 系统对借阅信息进行记录 结果存储位置或输出

结果存储在图书归还表(tb_giveback)中 3.2.6 系统查询模块功能

该模块包括对图书馆藏书进行查询 对读者借阅情况进行查询

以及对借阅到期和超期的读者进行提醒的信息 其中三个子模块的各自实习如下所示: 表3.16 图书查询描述 图书查询

功能描述

系统用户对馆藏图书信息进行查询操作 访问的数据库表 图书信息表: tb_book 进行的操作

用户通过图书的编号 作者

出版社等信息对图书进行相关查询 产生的结果

读者查询到相应的图书或系统提醒查询的图书不存在 结果存储位置或输出 结果在图书查询页面输出 表3.17 图书借阅查询描述 图书借阅查询 功能描述

系统用户对读者借阅图书信息进行查询操作 访问的数据库表 图书借阅表: tb_borrow 进行的操作

用户通过图书的编号

读者编号等信息对摸个读者或某本图书的借阅情况进行相关查询 产生的结果

查询到相应的读者或图书得借阅情况 结果存储位置或输出 结果在图书查询页面输出

表3.18 图书借阅到期提醒描述 图书借阅到期提醒管理 功能描述

对读者借阅的到期图书进行提醒 访问的数据库表 图书借阅表: tb_borrow 图书归还表:tb_giveback 读者信息表:tb_reader

读者类型信息表:tb_resderType 进行的操作

对借阅到期和超期的读者进行提醒 产生的结果

向借阅到期和借阅超期的读者发送邮件等提醒信息 结果存储位置或输出

结果存储在图书借阅到期提醒表 4.程序设计与编码 4.1开发平台与工具 4.1.1 J2EE平台 J2EE

即是Java2平台企业版(Java 2 Platform Enterprise Edition) 是原Sun公司(现已被甲骨文公司收购)为企业级应用推出的标准平台 它简化了企业解决方案的开发、部署和管理相关复杂问题的体系结构 J2EE技术的基础就是核心Java平台或Java 2平台的标准版 J2EE不仅巩固了标准版中的许多优点

例如\编写一次、随处运行\的特性、方便存取数据库的JDBC API、CORBA技术以及能

够在Internet应用中保护数据的安全模式等等

同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持

其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构 J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求 通过提供统一的开发平台

J2EE降低了开发多层应用的费用和复杂性 同时提供对现有应用程序集成强有力支持 完全支持Enterprise JavaBeans 有良好的向导支持打包和部署应用 添加目录支持 增强了安全机制 提高了性能[9]

在开发图书馆借阅管理系统的过程中

应用Myeclipse6.0.1

它可以在数据库和J2EE的开发、发布

以及应用程序服务器的整合方面极大的提高工作效率 Myeclipse是功能丰富的J2EE集成开发环境 包括了完备的编码、调试、测试和发布功能 完整支持HTML Struts JSF CSS Javascript

SQL[10]

4.1.2 WEB服务器和数据库

在系统的开发过程中使用的Web应用服务器是Tomcat

是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目

由Apache、SUN和其他一些公司及个人共同开发而成 由于有了Sun 的参与和支持

最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现 Tomcat是一个小型的轻量级应用服务器

它运行时占用的系统资源小、扩展性好、支持负载平衡和邮件服务等开发应用系统常用的功能

因此在中小型系统和并发访问用户不是很多的时候 经常被使用[11]

使用MySQL作为数据库开发工具

MySQL是一个小型关系型数据库管理系统 开发者为瑞典MySQL AB公司 在2008年1月16号被Sun公司收购

目前MySQL被广泛地应用在Internet上的中小型网站中 由于其体积小、速度快、总体拥有成本低 尤其是开放源码这一特点

许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[11] 为了开发的便捷快速 使用struts第三方插件 Struts是一个全新的MVC框架 实在WebWork基础上发展起来的[12]

开发系统用的系统工具如表4.1所示:

表4.1 系统开发平台和工具 工具名称 用途

JDK 1.6.0_11 MyEclipse MySQL 5.0 SQLYog 6.1 Tomcat 6.0 Struts 1.0 Java 开发工具包 J2EE集成开发环境 小型关系数据库管理系统 MySQL图形化数据库管理工具 Web应用服务器 第三方插件

可扩展的Java EE Web框架 4.2程序设计 4.2.1程序设计概述

在设计的Web层应用了著名的MVC模式 V有JSP来实现

为了业务逻辑和表示的分离.它是基于Web应用系统 它的客户端使用Broswer 然后是Web层的应用

业务逻辑层(有EJB实现) 资源管理层 客户请求浏览页面

一般Web层的View有JSP组成 并且使用了大量Taglib

把每个请求映射到某个HTMLAction类来响应它 HTML Action类是一个标准的类 执行选择的HTML Action 使用MVC模式减少了代码的复制 即减少了代码的维护

由于模型返回的格式不带任何显示格式 因而模型可以直接应用于接口的使用

还因为MVC模型把不同的模型和不同的视图组合在一起完成不同的请求 因此

控制层可以说包含了用户请求权限的概念[13] 在设计中还因应用了Struts框架

Struts跟Tomcat、Turbine等诸多Apache项目一样 是开源软件 这是它的一大优点

使开发者能更深入的了解其内部实现机制[11]

除此之外

Struts的优点主要集中体现在Taglib和页面导航 Taglib是Struts的标记库 灵活动用

能大大提高开发效率

页面导航使系统的脉络更加清晰 通过一个配置文件

即可把握整个系统各部分之间的联系 这对于后期的维护有着莫大的好处[11] 4.2.2数据库与Web服务器的连接 数据库连接时采用连接池技术链接SQL 具体代码实现如下: package com.ljj.dao; import java.sql.Connection; import java.sql.Date;

import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;

import com.ljj.model.BookInfo; import com.ljj.model.BookType; import com.ljj.model.Operator; import com.ljj.model.Reader; import com.ljj.model.User; public class Dao {

protected

static

String

dbClassName

\

protected static String dbUrl = \

=

+ \

protected static String dbUser = \protected static String dbPwd = \protected static String second = null; private static Connection conn = null; 创建数据库连接 private Dao() {

try {

if (conn == null) {

Class.forName(dbClassName).newInstance(); conn = DriverManager.getConnection(dbUrl

dbUser dbPwd);

}

} else

return;

System.out.println(\数据库连接成功!\

} catch (Exception ee) { }

ee.printStackTrace();

执行查询

private static ResultSet executeQuery(String sql) {

try {

if(conn==null)

new Dao();

return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE

ResultSet.CONCUR_UPDATABLE).executeQuery(sql); } catch (SQLException e) { e.printStackTrace();

return null;

} finally { }

}

执行更新 private static int executeUpdate(String sql) { try { if(conn==null)

new Dao();

return conn.createStatement().executeUpdate(sql);

} catch (SQLException e) { System.out.println(e.getMessage());

if(e.getMessage().equals(\2000 for JDBC][SQLServer]DELETE

COLUMN REFERENCE

'FK_TB_BORRO_REFERENCE_TB_BOOKI' 冲突 该冲突发生于数据库 'db_library' 表 'tb_borrow' column 'bookISBN' \

Driver

约束

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

Top