您的当前位置:首页基于JSP的网上图书馆管理系统的设计与实现

基于JSP的网上图书馆管理系统的设计与实现

2023-06-01 来源:乌哈旅游


摘 要

随着计算机技术的飞快发展,电子信息化慢慢替代了企业管理的传统管理手法。这是一种现代流行的经营模式,采用管理系统能够有效提高管理效率。因此开发一个简单、方便的小型网上阅读图书馆管理系统势在必行。图书馆管理系统是学校管理机制中重要的一环。图书馆的建设代表着一所学校或一个地区的文化。图书馆丰富的图书资源能够提供给我们重要并且优越的学习资源。通过对图书管理系统的运行管理机制的调查研究,开发了此图书馆管理系统。

本系统解决了学校图书管理事务常用基本问题以及相关统计工作。本系统包含9个功能模块:首页展示,系统设置,读者管理,图书管理,图书借还,系统查询,更改口令,退出系统和读者模块。我主要负责的模块有:首页展示,系统设置,图书借还,系统查询,管理员更改口令功能和部分读者模块。

本系统基于MVC设计模式,使用JSP进行网页界面的设计,采用Microsoft SQL Server 2008的后端的数据库,通过JDBC驱动和数据库进行无缝连接。该系统具有较高的完整性,一致性和安全性。

关键词:图书馆管理 Microsoft SQL Server 2008 JSP Servlet

I

Abstract

With the fast development of computer technology, electronics and information technology gradually replaced the traditional management business management practices. This is a modern popular business model, and management system is used to improve management efficiency. Therefore, a simple and convenient small library management system that it can be online is necessary. Library management system is the school management system in the important part. Libraries represent a school or district's cultural. The library that it can bring a wealth of library resources is important for us to learn excellent resources. We develop the Library management system by the investigation and studying of the Library management system operation and management mechanism.

This system solved the school library management affairs of common basic problems and related statistical work. This system contains nine functional modules: featured listing, system settings, the reader management, library management, books borrowing, system query, change the password, log out and reader module. I will finish functional modules: featured listing, system settings, books borrowing, system query, the administrator change password and some reader module.

This system uses JSP for web interface design, is based on MVC design model and uses backend database of Microsoft SQL Server 2008, by JDBC driver and database to a seamless connection to the back end database. The system has a high integrity, consistency and security.

Keywords: Library Management Microsoft SQL Server 2008 JSP Servlet

II

目 录

第1章 绪 论 ............................................................................................................................... 1 1.1 课题现状 ........................................................................................................................ 1 1.2 课题背景及意义 ............................................................................................................ 1 1.3 选题的现实价值 ............................................................................................................ 1 1.4 课题研究的主要内容 .................................................................................................... 2 1.5 系统开发工具及相关技术 ............................................................................................ 2 第2章 需求分析 ......................................................................................................................... 4 2.1 可行性分析 .................................................................................................................... 4 2.2 系统功能分析 ................................................................................................................ 4 2.3 系统用例图分析 ............................................................................................................ 4 2.4 设计模式分析 ................................................................................................................ 9 2.5 开发及运行环境 .......................................................................................................... 10 第3章 概要设计 ....................................................................................................................... 11 3.1 总体功能的设计 .......................................................................................................... 11 3.2 各功能模块的设计 ...................................................................................................... 11 3.2.1 图书借阅模块设计 ........................................................................................... 11 3.2.2 系统查询模块设计 ........................................................................................... 12 3.2.3 系统设置模块设计 ........................................................................................... 13 3.2.4 更改口令模块设计 ........................................................................................... 13 3.2.5 首页展示模块设计 ........................................................................................... 13 第4章 数据库设计 ................................................................................................................... 14 4.1 数据总体结构设计 ...................................................................................................... 14 4.2 各信息表的结构设计 .................................................................................................. 15 第5章 界面设计 ....................................................................................................................... 18 5.1 首页设计 ...................................................................................................................... 18 5.2 登录页面的设计 .......................................................................................................... 18 5.3 首页的设计 .................................................................................................................. 19 5.4 系统设置的设计 .......................................................................................................... 19 5.4.1 管理员设置 ....................................................................................................... 19 5.4.2 参数设置 ........................................................................................................... 19 5.4.3 图书馆设置 ....................................................................................................... 20 5.4.4 书架设置 ........................................................................................................... 20 5.4.5 出版社设置 ....................................................................................................... 20 5.5 图书借还的设计 .......................................................................................................... 21

III

5.5.1 图书借阅 ........................................................................................................... 21 5.5.2 图书续借 ........................................................................................................... 21 5.5.3 图书归还 ........................................................................................................... 21 5.6 系统查询的设计 .......................................................................................................... 22 5.6.1 图书借阅查询 ................................................................................................... 22 5.6.2 图书档案查询 ................................................................................................... 22 5.6.3 借阅到期提醒 ................................................................................................... 22 5.6.4 上传图书查询 ................................................................................................... 23 5.7 更改口令的设计 .......................................................................................................... 23 5.8 添加网上阅读图书 ...................................................................................................... 23 5.9 读者留言和上网阅读界面的设计 .............................................................................. 23 第6章 详细设计与实现 ........................................................................................................... 24 6.1 功能实现所需的类图 .................................................................................................. 24 6.2 各页面分页功能的实现 .............................................................................................. 25 6.3 图书馆系统设置模块的实现 ...................................................................................... 25 6.3.1 管理员设置的实现 ........................................................................................... 26 6.3.2 参数设置和图书馆设置的实现 ....................................................................... 27 6.3.3 书架和出版社设置的实现 ............................................................................... 27 6.4 图书馆主页面模块的实现 .......................................................................................... 27 6.5 图书馆图书借还模块的实现 ...................................................................................... 28 6.5.1 图书借阅 ........................................................................................................... 28 6.5.2 图书归还 ........................................................................................................... 29 6.5.3 图书续借 ........................................................................................................... 29 6.6 图书馆系统查询模块的实现 ...................................................................................... 29 6.6.1 图书借阅信息查询 ........................................................................................... 30 6.6.2 图书档案查询 ................................................................................................... 31 6.6.3 借阅到期提醒 ................................................................................................... 31 6.7 更改口令模块的实现 .................................................................................................. 31 6.8 退出系统模块的实现 .................................................................................................. 31 6.9 管理员添加网上图书的实现 ...................................................................................... 31 6.10 读者留言及网上阅读功能的实现 ............................................................................ 33 总结与展望 ................................................................................................................................... 34 致 谢 ............................................................................................................................................. 35 参考文献 ....................................................................................................................................... 36

IV

毕业设计(论文)

第1章 绪 论

1.1 课题现状

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

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

1.2 课题背景及意义

随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。书籍作为人们获取并增长知识的主要途径,使得图书馆在人们生活中占有了一定位置。传统图书管理的特点是一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、数据繁多、容易丢失、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。

图书馆管理系统是一项非常有意义的开发工作,其发展的潜力巨大,现今使用计算机操作的图书馆管理系统来实现对图书馆的管理,这就为图书馆管理系统提供了市场需要,而图书馆管理系统在现代社会是最热门的行业,国际上在线图书管理系统前景看好,而国内的在线图书,数量上也有了新的增长。数字图书,各学校的电子图书室等在线图书的出现,证明了在线图书管理系统的前景是好的。它的建立使图书馆管理摆脱传统摆脱用手工操作,实现通过互连网而进行的远程图书借阅,其发展前景将是非常深远的。

1.3 选题的现实价值

一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱,因此建立一个基于JSP的图书馆管理系统,使图书管理工作规范化,系统化,程序化,避

1

毕业设计(论文)

免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况,具有十分重大的价值和现实意义。

1.4 课题研究的主要内容

本次毕业设计能够实现动态站点的开发与维护的技术—JSP。JSP用于页面显示部分, JDBC用于存取数据库,数据库用于数据存储。JSP通过对数据库的数据处理,实现图书馆书籍的管理。本系统主要采用的是B/S结构。

在MyEclipse开发环境下,以J2EE为平台,运用JSP网络编程语言、Servlet和Microsoft SQL Server 2008数据库完成了B/S模式的图书馆管理系统。

网站主要实现两大模块的功能,管理员具有的功能有首页展示、系统查询、系统设置、读者管理、图书管理、图书借阅、更改口令和退出系统;读者具有的功能有网上阅读、通过留言板与图书馆交互、查看图书馆信息及自己的借阅信息、修改口令和修改个人信息。该系统需要两个人合作,我负责界面设计,管理员管理的首页展示、系统设置、系统查询、图书借阅和更改口令,读者模块的界面设计,及部分功能的实现。

1.5 系统开发工具及相关技术

(1)JSP技术

Java Server Pages 技术是一个纯Java平台的技术,它主要用来产生动态网页内容。在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立简单易行、完全面向对象、平台无关、安全、快速和跨平台的动态网页。

(2)JDBC

JDBC由一组Java语言编写的类和接口组成,使用内嵌式的SQL,主要实现三方面的功能:建立与数据库的连接,执行SQL声明以及处理SQL执行结果。JDBC支持基本的SQL功能,使用它可方便地与不同的关系型数据库建立连接,进行相关操作,并无需再为不同的DBMS分别编写程序。

(3)Servlet

Servlet是JAVA 2.0中新增的一个全新功能。它是与Applet相对应的,Applet是运行在客户端的浏览器,而Servlet是运行在服务器端的。 Java Servlet 是运行在请求/面向请求服务器上的模块。

(4)Microsoft SQL Server 2008

·可信任性:使得系统可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。

· 高效性:使得公司可以降低开发和管理他们的数据基础设施的时间和成本。

2

毕业设计(论文)

· 能性:提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。

(5)Tomcat

Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好且有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好.

(6)MyEclipse

MyEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

(7)B/S结构 本系统采用B/S模式来实现客户端对服务器端的调用,是一种从传统的二层C/S模式发展起来的新的网络结构模式。采用该结构软件的优势在于:无须开发客户端软件,维护和升级方便;可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;具有良好的开放性和可扩充性;保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。

3

毕业设计(论文)

第2章 需求分析

2.1 可行性分析

(1)技术可行性

技术的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用JSP开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用 Microsoft SQL Server 2008,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。

(2)经济可行性

鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在经济可行性上时可行的。

2.2 系统功能分析

本系统有两个参与者:管理员和读者。管理员的部分职能有:首页展示、系统设置、系统查询、图书借还、更改口令和退出系统。读者的部分职能有:我的管理和查看信息,其中我的管理包括留言、查找图书、在线阅读和查看我的借阅;查看信息包括查看借阅排行及图书馆信息。

(1)首页展示:读者指南,增加了友好界面的设计,可以让读者或管理员了解本系统的一些基本信息,包括程序说明、开馆时间、入馆须知、证件须知、借阅须知及注意事项;图书借阅排行,提供图书的排行榜让管理员能知道那些图书受到大家的欢迎。

(2)系统设置:包括管理员设置、参数设置、图书馆设置、书架设置及出版社设置。 (3)登录页面:包括读者登录和管理员登录,每个操作员或读者均有自己的密码,可以防止非本系统人员进入本系统;又因每个人的权限不一致,故可以防止越权操作。

(4)系统查询:包括图书借阅查询、上传图书查询、图书档案查询及借阅到期提醒。 (5)图书借还:包括图书借阅、续借和归还。

(6)更改口令:操作人员可以根据自己的需要随时更改自己密码。

(7)我的管理:包括个人资料修改、我要留言、在线阅读、我的借阅、查找图书和更改口令。

2.3 系统用例图分析

4

毕业设计(论文)

用图书馆管理系统的用例图来介绍项目需求情况:读者、管理员用例图如图2-1所示,管理员代替读者进行借、还、续图书的用例图如图2-2所示, 管理员代替读者进行借、还、续图书的用例图如图2-3所示。 图书馆管理系统 在线阅读或查看信息 系统设置 图书归还 <> <> 图书借还 图书续借 <> 系统查询 图书借阅 管理员 读者 个人信息修改 图2-1 读者、管理员用例图

上传图书查询 书籍借阅处理 密码修改 登录 <> <> 书籍续借处理 <> 超期借阅信息 借阅信息 <> 归还图书处理 <> 管理员 图书档案

图2-2 管理员代替读者进行借、还、续图书的用例图

5

毕业设计(论文)

书架设置 登录 <> <> <> <> <> 密码修改 管理员

出版社设置 参数设置 管理员设置 图书馆设置 系统设置

图2-3 管理员代替读者进行借、还、续图书的用例图

(1)登录用例说明

登录用例具体说明如表2-1所示。

表2-1 登录用例说明

用例名称 功能简述 前置条件 后置条件 基本流 登录 管理员、读者需提供正确的用户名和密码才能进入本系统 无 用户登录成功 1、用户在登录页面中输入用户名和密码,并提交 2、系统判断用户名和密码是否合法 3、根据用户的类型显示不同的主页面 如果用户名或密码不合法,则返回登录页面并给出错误信息 扩展流 (2)系统查询用例说明

系统查询用例具体说明如表2-2所示。

表2-2 系统查询用例说明

用例名称 功能简述 前置条件 后置条件 基本流 扩展流 系统查询 管理员完成图书借阅查询、图书档案查询和借阅当期提醒 已经登录的管理员 管理员需要维护图书信息 1、管理员需要查询图书借阅信息、图书档案信息或借阅到期信息 2、根据不同的需要,点击相关按钮,执行相关操作。 若该管理员没有系统查询权限,则无法完成次操作并弹出错误信息,返回首页。 6

毕业设计(论文)

(3)图书借阅用例说明

图书借阅用例具体说明如表2-3所示。

表2-3 图书借阅用例说明

用例名称 功能简述 前置条件 后置条件 基本流 图书借阅 管理员代替读者完成图书借阅 已经登录的管理员 读者请求借阅图书 1、管理员点击图书借阅,输入读者姓名及图书卡号,点击验证。 2、读者信息填写正确后,若该读者所借图书未超过最大数量且未有超期未还图书,便进入图书借阅页面,刷入图书卡号及图书名称,点击借阅,否则会显示相关错误提示。 3、若系统查到该图书,则会显示借阅成功,否则显示借阅失败。 扩展流 若该管理员没有图书借还权限,则无法完成次操作并弹出错误信息,返回首页。 (4)图书续借用例说明

图书续借用例具体说明如表2-4所示。

表2-4 图书续借用例说明

用例名称 功能简述 前置条件 后置条件 基本流 图书续借 管理员代替读者完成图书续借 已经登录的管理员 读者请求续借图书 1、管理员点击图书续借,输入图书图书卡号,点击续借。 2、系统从数据库中检测该图书。 3、若图书卡号正确,则会弹出续借成功,若借阅此图书的读者已有超期未还图书,否则会显示相关错误提示,若图书卡号不正确,则也会显示相关错误提示。 若该管理员没有图书借还权限,则无法完成次操作并弹出错误信息,返回首页。 扩展流 (5)图书归还用例说明

图书续借用例具体说明如表2-5所示。

7

毕业设计(论文)

表2-5 图书归还用例说明

用例名称 功能简述 前置条件 后置条件 基本流 图书归还 管理员代替读者完成图书归还 已经登录的管理员 读者请求归还图书 1、管理员点击图书归还,输入图书图书卡号,点击归还。 2、系统从数据库中检测该图书。 3、若此图书是当天借阅的,则会显示相关错误提示,若图书卡号不正确,则也会显示相关错误提示。 4、图书卡号正确,则会弹出归还成功。 扩展流 若该管理员没有图书借还权限,则无法完成次操作并弹出错误信息,返回首页。 (6)在线阅读或查看信息用例说明

该用例说明中,查看信息包括查看图书信息、读者指南信息,读者借阅信息,图书借阅排行信息等。在线阅读或查看信息用例具体用例说明如表2-6所示。

表2-6 在线阅读或查看信息用例说明

用例名称 功能简述 前置条件 后置条件 基本流 在线阅读或查看信息 读者根据自己需要阅读自己感兴趣的图书、查看自己、图书或图书馆的一些具体信息 已经登录的读者 读者阅读图书、查看一些信息 1、若读者阅读图书,则点击网上阅读,便可根据自己的需要阅读自己感兴趣的图书。 2、若读者想了解图书馆的一些信息,则可浏览读者指南,根据自己的需要点击相关按钮进行查看。 3、若读者想查看自己信息,根据自己的需要,点击相关按钮进行查看。 若该读者用户名或密码不合法,则返回登录页面并给出错误信息。 扩展流 (7)系统设置用例说明

系统设置包括管理员权限的设置、书架的设置、出版社的设置、参数设置和图书馆设置。系统设置用例的具体说明如表2-7所示。

8

毕业设计(论文)

表2-7 系统设置用例说明

用例名称 功能简述 前置条件 后置条件 基本流 系统设置 管理员完成管理员权限的设置、书架的设置、出版社的设置、参数设置和图书馆设置 已经登录的管理员 管理员权限置、书架的设置、出版社的设置、参数设置和图书馆设置需要更新 1、管理员权限、书架、出版社置、参数和图书馆信息需要更新。 2、管理员根据具体情况,点击相关按钮,执行相关操作。 3、操作成功或失败,都会提示相关信息。 若该管理员没有系统设置权限,则无法完成次操作并弹出错误信息。 扩展流 (8)个人信息修改用例说明

个人信息修改用例具体说明如表2-8所示。

表2-8 个人信息修改用例说明 用例名称 功能简述 前置条件 后置条件 基本流 个人信息修改 读者或管理员可以修改自己密码 已经登录的读者、管理员 读者或管理员对自己的密码不满意 1、点击人信息修改或更改口令,填写原密码、新密码和确认密码,点击保存按钮 2、如果原密码不正确或新密码与确认密码不一致,则会弹出相关错误信息。 3、系统验证无误后,会弹出修改成功提示。 若该读者或管理员用户名或密码不合法,则返回登录页面并给出错误信息返回首页。 扩展流 2.4 设计模式分析

本系统开发采用目前一种目前广泛流行的软件设计模式MVC,体现JSP、Servlet和JavaBean三种技术的运用,JavaBean负责执行特定功能,Servlet实现页面控制转向功能,JSP实现页面显示功能。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表 视图(View)界面,显示模型提供的数据;C代表控制器(Controller)。MVC实现了模式、视图和控制的有效分离,其模式图如图2-4所示。

9

毕业设计(论文)

状态查询 更新 View 抽象数据表达,表示 针对用户的数据。 Modle 抽象系统应用功能,处理业务逻辑,数据持久化。 调用 Controller 定义应用系统的行为将用 户请求映射到模型更新,选择视图作为请求的回应。 选择视图 请求 图2-4 MVC模式图

2.5 开发及运行环境

(1)硬件环境

CPU:一台Pentium 4 cpu 以上的微机及兼容

内存:512MB以上(最好1GB内存) 显示屏:VGA 彩显一台 (2)软件环境

操作系统:Windows XP 、Windows 7

数据库:Microsoft SQL Server 2008 开发环境:MyEclipse 开发工具包:JDK JSP服务器:Tomcat

浏览器:IE6.0及以上版本

1 0

毕业设计(论文)

第3章 概要设计

3.1 总体功能的设计

在MyEclipse开发环境下,以J2EE为平台,运用JSP网络编程语言和Servlet和SQL 2008数据库完成了B/S模式的图书馆管理系统。根据实际图书馆管理系统的实际需求,图书馆管理系统:管理员:首页展示,系统设置,系统查询,图书借还,图书管理,更改口令和退出系统;读者:我的管理和查看相关信息。各个部分的具体功能的系统功能结构图如图3-1所示。

图书馆管理

管理员 读者 图 书 管 理 图书借还 更改口令 系统查询 首页展示 系统设置 我的管理 查看相关信息 图书归还 图书借阅 图书续借 借阅到期提图书借阅查上 传 图 书查图图 书档案查添加网上图书 读者指南 图书借阅排行

醒 询 询 询 管理员设置 图书馆设置 书架设置 参数设置 出版社设置 图3-1 系统功能结构图

3.2 各功能模块的设计

3.2.1 图书借阅模块设计

(1)借书处理

1 1

毕业设计(论文)

借书前要先根据读者的姓名和图书卡编号进行登录,若在数据库中找到该读者相应的信息,则通过所要借阅的图书名称和图书条形码完成借阅过程。若该读者已有过期未还图书则不能借阅,在此过程中如有填写错误,会有相应JavaScript验证。若借书成功,则根据读者姓名、图书编码、读者图书卡号和图书名称,把该读者的借阅信息插入到借阅表中和借阅历史记录表中,当借阅历史记录表中已有此记录时,把数据项num置0,是否归还数据项ifBack置1,同时在图书信息表中删除该记录。所借图书数目根据读者类型而定,不同的图书类型所要求借的天数也不同,所以在此结束过程中,需要读者信息表,读者类型表,图书类型表,图书信息表发生关联。

(2)还书处理

根据图书条形码可以完成图书的归还,若已超期,则需要缴纳罚款金额。若还书成功,则在则根据图书编码,在借阅表中及在图书信息表中删除读者的借阅信息,同时在图书信息表中插入该图书信息,在借阅历史记录表,把是否归还数据项ifBack置0。 (3)图书续借

根据读者需求,可以根据图书编码完成续借功能。在此过程中,对超期欲续借及当天借书欲续借情况作了相应JavaScript验证:当天借书欲续借情况验证依据是根据相应当前系统日期与借书日期是否相等判定,超期欲续借验证依据是在续借前先判断借阅时间至今的天数是否超过此类图书的借书天数,续借成功后,根据图书编码,把该读者的借阅信息插入到借阅表中和借阅历史记录表中,当借阅历史记录表中已有此记录时,把数据项num置0,ifBack置1。

3.2.2 系统查询模块设计

(1)图书借阅查询

可以通过借阅时间和选择查询依据两种方式查看图书借阅信息,两种方式只能选择其一,否则会弹出相关失败查询提示。查询依据包括图示名称、作者和图书条形码,当查询依据与所填写的内容不对应时,会弹出相关失败查询提示。此查询包括:图书编号、图书名称、借阅证编号、 读者名称、借书日期、还书日期、是否归还。

(2)借阅档案查询

根据相应的借阅信息进行所需查询。此查询包括:图书编号、图书名称、 图书类型、出版社、 书架、作者、价格、管理员、入库时间。 (3)借阅到期提醒

根据相应的图书信息归还日期进行判断结果及查看。根据借阅表和图书类型表查出相应图书借阅天数i1和借阅时间borrowTime,利用函数dateadd(dd,\"+i1+\计算出还书日期aa,datediff(dd,'\"+aa+\"',getdate())计算超期天数,从参数设定表查出每天罚款金额。此查询包括:图书编号、图书名称、图书类型、借阅证编号、读者名称、借书数量、借书日期、还书日期、借书时间、超期天数、罚款金额。

(4)上传图书查询

1 2

毕业设计(论文)

根据相应的上传图书信息进行所需查询。此查询包括:图书名称、 图书类型、出版社、作者、阅读和下载。

3.2.3 系统设置模块设计

(1)图书馆信息:包括图书馆名称及相关资料信息的显示。 (2)参数设置:包括办证费,有效期和罚款金额的修改。 (3)书架设置:包括书架名称的添加,查看,修改以及删除功能,各操作添加了JavaScript验证:添加操作时,如该系统已有该书架,会弹出添加失败警告;删除操作时,若该系统的书架上还有此图书,执行此操作时会弹出删除失败警告,修改书架时,若该系统已有此书架,此次操作失败,修改书架成功后,相应图书的书架信息也会随之改变。

(4)管理员管理:包括管理员名称及相关权限的添加,修改和删除。不同的管理员根据不同的权限执行不同权利。

(5)出版社设置:包括出版社的添加,删除和查看功能。

3.2.4 更改口令模块设计

更改管理员的用户名和密码,新密码与确认密码不一致时,会弹出相关提示,用户名与密码跟数据库的信息不一致时会弹出相关提示,在这里也用到了JavaScript验证。

3.2.5 首页展示模块设计

读者指南:增加了友好界面的设计,可以让读者或管理员了解本系统的一些基本信息,包括最新动态、程序说明、开馆时间、入馆须知、证件须知、借阅须知及注意事项。

图书借阅排行榜:提供图书的排行榜让用户能知道那些图书受到大家的欢迎。

1 3

毕业设计(论文)

第4章 数据库设计

4.1 数据总体结构设计

完成以上功能模块包括的信息有读者信息、图书信息、图书馆信息、图书借阅信息、图书借阅历史记录信息、出版社信息、书架信息、管理员信息、读者类型信息、图书类型信息、参数信息、读者留言信息、读者密码信息、网上图书和管理员权限信息共15张表。图书馆管理系统的数据模型的描述方法使用了E-R图。涉及的实体及关系如图4-1所示。

名称 证件号码 图书卡编号 图书馆信息 姓名

图4-1 系统的数据模型的E-R图

1 4

邮箱 读者 名称 m 参数信息 m m 设置 查看 n 设置 n n 姓名 读者类型 m1m 查询 借阅 设置 n m 管理员 密码 查询 n图书n 图书 图书条图书出版社名 生产 n n 摆放 1 书架信息 1 书架名 n n设置 m m m 编号 设置 设置 n 编号 n 编号 出版社信息 毕业设计(论文)

4.2 各信息表的结构设计

(1)图书借阅历史信息表结构设计

该表用于存放读者借阅图书的详细信息,它为管理员提供参考,该表为图书借阅排行和图书借阅查询提供相关数据。其中ID是借阅历史信息唯一标识,设为主键;图书卡编号及读者名称唯一记录借阅者,图书条形码、图书名称、图书类型、出版社、借书数量、作者、译者、价格、入库时间、页数及书架用于记录图书的详细信息;借阅日期用于记录借阅图书的日期;操作员是对借阅进行操作的人员的记录方便日后的查询;首次出现标记用于记录在借阅历史信息表中首次出现图书,依据时图书的条形码,若首次出现则置num为1,否则至0;是否归还用于标记借书借还情况,如借书未还则置ifBack为1,否则至0。 具体结构设计如表4-1所示。

表4-1 图书借阅历史信息表 tb_borrow

字段名称 编号 图书卡编号 读者名称 图书条形码 图书名称 借书数量 操作员 图书类型 作者 译者 出版社 价格 页数 书架 借阅日期 入库日期 首次出现标记 是否归还

字段名 ID readerbarcode readername barcode bookname bookstatus operator typeid author translator ISBN price page bookcase borrowTime intTime num ifBack

数据类型 字段长度 是否为空 int varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar int int

50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 2 2

No No No No No No No No No No No No No No No No No No

备注 主键 唯一 无 唯一 无 1 无 无 无 无 无 无 无 无 无 无 首次为1 归还为0

(2)图书类型信息表结构设计

该表的设计主要是方便对图书的分类、管理,管理员可以根据不同的图书类型放到相应的书架上,ID时图书类型编号,为唯一标示,书架名称为日后操作图书类型提供依据,

1 5

毕业设计(论文)

天数为每类图书的借书期限,为读者借书提供依据。管理员对图书类型的管理使图书更有调理,人性化。

(3)读者信息表结构设计

该表的设计是为了图书馆管理员对读者进行管理。编号ID为读者编号,是唯一的,设为主键;图书卡编号是唯一的,提供了对读者身份进行识别的信息,凭借此卡号,读者才能进入图书馆;操作员对读者进行操作的人员的记录方便日后的查询;读者类型决定了读者一次性可借阅的图书的数量;姓名,性别,出生年月,有效证件,证件号码,注册时间,电话,邮箱信息是读者注册所需的必要信息,也便于与读者联系;备注记录读者的一些特殊备注信息。

(4)读者类型信息表结构设计 此表的设计是为了对不同身份的读者进行分类,方便读者的管理,用于规定不同类型读者一次可借阅图书的最大数量,类型名为日后操作读者类型提供依据。

(5)图书信息表结构设计

该表的设计主要用于存储图书的相关信息,此表主要用于读者和图书管理员对图书的查询。图书所在书架属性是便于读者借阅时对图书的寻找,编号ID为图书编号,是唯一的,设为主键;图书条形码也是唯一的,提供了对图书进行识别的信息;图书价格是在读者不慎将图书遗失时对遗失图书进行赔偿的依据;图书类型提供了图书分类的依据,由图书类型可以确定每类图书借书期限;书架,可以决定图书存放的书架,由操作员设定;操作员管理图书的详细信息。该表的具体结构设计如表4-2所示。

表4-2 图书信息表tb_bookinfo1

字段名称 图书条形码 书名 作者 译者 出版社 图书价格 图书所在书架 图书入库时间 操作员 图书页码 图书类型 编码

字段名 barcode bookname author translator ISBN price bookcase inTime operator page typeid id

数据类型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar int

字段长度 30 70 30 30 20 50 10 50 30 10 50 10

是否为空 No No No No No No No No No No No No

备注 主键 无 无 无 无 无 无 无 无 无 无 主键

(6)图书借阅信息表结构设计

该表的设计用于存放读者借书未还的详细信息。其中“ID”是借阅图书信息唯一标识,

1 6

毕业设计(论文)

设为主键;图书卡编号及读者名称唯一记录借阅者,图书条形码、图书名称、图书类型、出版社、作者、译者、价格、入库时间、页数及书架用于记录图书的详细信息;借书数量由于记录读者借阅图书的数量;借阅日期用于记录借阅图书的日期;操作员是借阅进行操作的人员的记录方便日后的查询。

(7)管理员信息表结构设计

该表的设计用于记录图书管理系统用户的信息,方便对用户的管理,表中包括用户ID 和用户的登录密码。

(8)图书馆信息表结构设计

该表包含了图书馆的名称,馆长,地址,联系方式,建馆时间,简介等信息,是对图书馆基本属性信息的描述,方便外界读者对图书馆的了解。

(9)书架信息表结构设计

该表的设计是为保存书架信息,包括编号,书架名称。

(10)出版社信息表结构设计

该表的设计是保存出版社信息,包含了出版社的名称,编码信息。 (11)参数信息表结构设计

该表的设计是为保存办卡信息及超期每天罚款金额,包括办卡费,有效期,每天罚款金额和编号。

(12)读者密码信息表结构设计

该表的设计是为了保存注册读者的用户名,编号,图书卡号,和密码。 (13)权限信息表结构设计 该表用来保存管理员权限信息,包括编号ID、系统设置、读者管理表、读者管理、图书管理、图书借还和系统查询。管理员根据不同的权限组合行使不同的权力。编号ID是唯一的,与管理员表的编号ID是一一对应的。

(14)留言信息表结构设计

该表用来存放读者的留言信息,数据项包括读者姓名,留言时间,留言内容和编号。其中编号是唯一的。

(15)网上阅读图书表结构设计

该表用来保存网上阅读图书信息,数据项包括图书名名称,图书源文件路径,转换后的SWF执行路径,图书作者,出版社,入库时间和图书类型。

1 7

毕业设计(论文)

第5章 界面设计

5.1 首页设计

整个系统的布局采用T字型框架,背景色时庄重的蓝色,该框架是由三个jsp页面构成,分别为:top.jsp,right.jsp和left.jsp,其中top.jsp为框架的标头,right.jsp作为框架的可编辑区域,left.jsp作为正各框架的导航栏,在运行过程中是不变的。

(1)管理员界面

left.jsp页面的设计:左侧框架分为上下两部分,上部分导航栏采用折叠式面板,包括8大模块:首页,系统设置,读者管理,图书管理,图书借还,系统查询,更改口令及退出系统。每一模块的下级导航都采用了.MM样式和层;下部分是连接其他页面的接口。

top.jsp页面的设计:作为该图书馆的logle,提示是哪位管理员或读者登陆的本系统,右侧添加了快速退出该系统的按钮。

right.jsp页面的设计:该部分是可编辑的,根据点击的菜单按钮会显示相关的页面,达到人性化设计的需求。

(2)读者界面

left.jsp页面的设计:左侧框架分为上下两部分,上部分导航栏包括我的管理、借阅排行和查看图书馆信息的接口;下部分是连接其他页面的接口。其中我的管理包括个人资料修改、查找图书、我要留言、在线阅读、我的借阅和更改口令。

top.jsp页面的设计:最左边是该图书馆的logle,右边分两部分,上部分:中间提示是哪位读者登陆的本系统及用户角色,左边为首页、个人信息修改和提出;下部分为导航栏。

right.jsp页面的设计:该部分是可编辑的,根据点击的菜单按钮会显示相关的页面,达到人性化设计的需求。

5.2 登录页面的设计

该登录页面采用的背景颜色为浅绿色,使用了Spry菜单栏,登录页面分为管理员登录和读者登录。

管理员登录的设计:在表单中添加了一个表格,包括的文本框为用户名和密码,提交按钮为登录和关闭。若管理员登录成功则转发到main.jsp页面,否则提示登录失败对话框。当用户提交表单时,会把相应的信息提交给相应的Servlet,JavaBean处理完成后,由Servlet转发给相应的jsp页面,在Servlet中使用了相应的JavaScript验证,以此弹出相应的提示对话框。

读者登录页面的设计:在表单中添加了一个表格,包括的文本框为用户名和密码,提交按钮为登录,注册和关闭。若读者登录成功则转发到rMain.jsp页面,否则提示登录失败对话框。当读者提交表单时,会把相应的信息提交给相应的Servlet,JavaBean处理完成后,

1 8

毕业设计(论文)

由Servlet转发给相应的jsp页面,在Servlet中使用了相应的JavaScript验证,以此弹出相应的提示对话框。

5.3 首页的设计

首页包括读者指南和图书借阅排行两部分,当点击读者指南时,在右侧会显示right.jsp页面,包括相关提示,最新动态,程序说明,入馆须知,开馆时间,办卡须知,注意事项及借阅须知,用于用户了解本系统的相关信息;点击图书借阅排行按钮时,在右侧会显示图书借阅的相关信息,包括图书条形码,图书名称,书架,图书类型,出版社,作者,定价,入库时间,借阅次数。

5.4 系统设置的设计

系统设置包括管理员设置,参数设置,图书馆设置,书架设置和出版社设置。

5.4.1 管理员设置

当点击管理员设置时,首先判断该管理员是否有系统设置权限,验证成功后,在右边会显示manager.jsp页面,该页面表单包括:管理员名称,系统设置,读者管理,图书管理,系统设置,图书借还,删除,修改权限,添加管理员信息,否则会转到欢迎页面即right.jsp页面。当点击权限修改时,会转到相应管理员的权限是修改页面managerModify.jsp,此表单内容包括管理员名称、系统设置、图书管理、读者管理、系统查询、图书借阅、确认和关闭按钮,此时该管理员的用户名不能修改。当点击确定修改页面时,若修改成功,会弹出相关修改成功对话框,点击确定会在转到manager.jsp页面。点击添加管理员信息时会转到manageAdd.jsp页面,该页面包括管理员名称、密码、确认密码,确认和关闭按钮,添加成功时,若添加成功,会弹出相应添加成功对话框,否则会弹出添加失败对话框,之后再次转到manager.jsp页面。当点击删除时,会转到managerDel.jsp页面,该页面包括管理员名称,确认和关闭按钮,点击确定按钮会弹出删除成功按钮,之后转到manager.jsp页面。

5.4.2 参数设置

当点击参数设置时,首先判断该管理员是否有系统设置权限,验证成功后,在右边会显示canshuModify.jsp页面,表单中包括办证费、有效期、每天罚款金额,保存和重置按钮,否则会转到欢迎页面即right.jsp页面。当点击保存按钮会弹出保存成功对话框,当点击重置时,会恢复到canshuModify.jsp页面。背景添加了一张浅蓝色图片,页面字号为18。

1 9

毕业设计(论文)

5.4.3 图书馆设置

当点击参数设置时,首先判断该管理员是否有系统设置权限,验证成功后,在右边会显示libraryModify.jsp页面,表单中包括图书馆名称、馆长、联系方式、联系地址、联系邮箱、图书馆网址、建馆时间、图书馆简介,保存和重置按钮,否则会转到欢迎页面即right.jsp页面。当点击保存按钮会弹出保存成功对话框,当点击重置时,会恢复到libraryModify.jsp页面。

5.4.4 书架设置

当点击书架设置时,首先判断该管理员是否有系统设置权限,验证成功后,在右边会显示bookCase.jsp页面,表单中包括书架名称、添加、修改和删除,否则会转到欢迎页面即right.jsp页面。当点击添加时会转到bookCaseAdd.jsp页面,该页面表单包括书架名称,确认和关闭按钮,点击确认按钮时,若添加成功会弹出添加成功对话框,否则弹出添加失败对话框,点击关闭按钮,则返回bookCase.jsp页面。点击修改按钮时,会转接到bookCaseXiu.jsp页面,该页面表单包括旧书架名称、新书架名称、确认和关闭按钮,点击确认按钮时,若添加成功会弹出修改成功对话框,否则弹出修改失败对话框,点击关闭按钮,则返回bookCase.jsp页面。单击删除按钮时,转到bookCaseDel.jsp页面,该页面包括书架名称、确定和返回按钮,点击确定按钮,若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回bookCase.jsp页面。

5.4.5 出版社设置

当点击出版社设置时,首先判断该管理员是否有系统设置权限,验证成功后,在右边会显示bookISBN.jsp页面,表单中包括出版社名称、添加、修改和删除,否则会转到欢迎页面即right.jsp页面。当点击添加时会转到bookISBNAdd.jsp页面,该页面表单包括出版社名称,确认和关闭按钮,点击确认按钮时,若添加成功会弹出添加成功对话框,否则弹出添加失败对话框,点击关闭按钮,则返回bookISBN.jsp页面。点击修改按钮时,会转接到bookISBNXiu.jsp页面,该页面表单包括旧出版社名称、新出版社名称、确认和关闭按钮,点击确认按钮时,若添加成功会弹出修改成功对话框,否则弹出修改失败对话框,点击关闭按钮,则返回bookISBN.jsp页面。单击删除按钮时,转到bookISBNDel.jsp页面,该页面包括出版社名称、确定和返回按钮,点击确定按钮若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回bookISBN.jsp页面。

5.5 图书借还的设计

2 0

毕业设计(论文)

图书借还的下拉菜单包括图书借阅、图书续借和图书归还。

5.5.1 图书借阅

当点击图书借阅时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边会显示rbookBorrow.jsp页面,否则会转到欢迎页面即right.jsp页面。在rbookBorrow.jsp页面的表单中包括借阅证号、借阅者名称,验证和重置按钮,点击验证按钮,若验证失败,会弹出“该借阅者不存在,请确认后再输入”对话框,否则会转到rbookBorrow1.jsp页面,如果该读者所借图书已超过最大数目,则会弹出“您的借阅图书的数量已经超过最大限量”对话框,否则会进入rbookBorrow1.jsp页面,该页面包括:在表格上方提示该读者已借图书数目和还可以再借图书数,在表单中包含图书证号、读者姓名、读者类型、证件类型、证件号码、图书编号、图书名称、借书和重置,点击借书按钮,若借书成功,则会相应弹出结束成功对话框,点击确定会重新定位rbookBorrow.jsp页面,若该读者已有过期未还图书,则会相应弹出“您已有过期,但未还图书,暂停借阅!”对话框,点击确定会重新定位rbookBorrow.jsp页面,若输入的图书条形码和图书名称,则会相应弹出“请确认书的编号,名称”对话框,点击确定会重新定位rbookBorrow.jsp页面,在此过程中点击重置,会恢复到刚打开的状态。

5.5.2 图书续借

当点击图书续借时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边会显示rbookXuJie.jsp页面,否则会转到欢迎页面即right.jsp页面。在rbookXuJie.jsp页面的表单中包括图书条形码,续借和重置按钮,输入条形码,点击续借按钮,若该图书已过期则会相应弹出“您所借的图书已过期,按期还书,请确认后再续借!”对话框,点击确定会重新定位rbookXuJie.jsp页面,若输入的条形码有误,则会相应弹出“输入信息错误,请确认”对话框,点击确定会重新定位rbookXuJie.jsp页面,若续借成功,则会相应弹出“续借成功”对话框,点击确定会重新定位rbookXuJie.jsp页面,点击重置,则会清除刚刷入得条形码。

5.5.3 图书归还

当点击图书归还时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边会显示rbookBack.jsp页面,否则会转到欢迎页面即right.jsp页面。在rbookBack.jsp页面的表单中包括图书条形码,归还和重置按钮,输入条形码,点击归还按钮,若该图书是当天借阅的图书,则会相应弹出“不能在同一天,对同一本书进行借、还两操作”对话框,点击确定会重新定位rbookBack.jsp页面,若输入的条形码有误,则会相应弹出“条形码错误,还

2 1

毕业设计(论文)

书失败”对话框,点击确定会重新定位rbookBack.jsp页面,若还书操做成功,则会相应弹出“还书操做成功!”对话框,点击确定会重新定位rbookBack.jsp页面,点击重置,则会清除刚刷入得条形码。

5.6 系统查询的设计

该模块的下级菜单包括图书借阅查询、图书档案查询和借阅到期提醒三部分。

5.6.1 图书借阅查询

当点击图书借阅查询时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边会显示bookQuery.jsp页面,否则会转到欢迎页面即right.jsp页面。进入bookQuery.jsp页面,其中的表单包括按借阅时间和选择查询依据两种查询方式、表格中包括图书条形码、图书名称、读者条形码、读者名称、借阅时间、应还时间、是否归还和查询按钮。当读者什么方式都不选,点击查询按钮,则会相应弹出“选择其中的一种方式进行查寻,确定后再查询!”对话框,点击确定会重新定位bookQuery.jsp页面,当读者选择的查询方式跟填写内容不对应或文本框全部填满时,点击查询按钮,则会相应弹出“暂时没有您所要查寻的图书信息,原因可能是你选的方式与所填内容不对应,确定后再查询!”对话框,点击确定会重新定位bookQuery.jsp页面。当选择第一种方式时,选择条形码,跟相应图书条形码,点击查询,若有相应记录,则转到bookQuery1.jsp页面,会看到查询的相应记录,否则不显示记录。选择图书名称,跟相应图书名称,点击查询,若有相应记录,则转到bookQuery3.jsp页面,会看到查询的相应记录,否则不显示记录。选择作者,跟相应作者,点击查询,若有相应记录,则转到bookQuery2.jsp页面,会看到查询的相应记录,否则不显示记录。当选择第二种方式时,填写两个日期,点击查询,若有相应记录,则转到bookQuery4.jsp页面,会看到查询的两个日期之间的相应记录,否则不显示记录。

5.6.2 图书档案查询

点击图书档案查询时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边会显示bookDangAnS.jsp页面,否则会转到欢迎页面即right.jsp页面。在bookDangAnS.jsp页面的表单中包括图书条形码、图书名称、图书类型、出版社、书架、作者、价格、管理员和入库时间,该页面会显示图书的详细信息。

5.6.3 借阅到期提醒

点击借阅到期提醒时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边

2 2

毕业设计(论文)

会显示bookRemind.jsp页面,否则会转到欢迎页面即right.jsp页面。在bookRemind.jsp页面的表单中包括图书条形码、图书名称、图书类型、读者借阅证号、读者姓名、借书数量、借书时间、借书天气、还书时间、超期天数和罚款金额,该页面会显示到期未还图书及读者信息。

5.6.4 上传图书查询

点击上传图书查询时,首先判断该管理员是否有图书借阅权限,验证成功后,在右边会显示list.jsp页面,否则会转到欢迎页面即right.jsp页面。在list.jsp的表单中包括所上传的图书名称、作者、出版社、入库时间、图书类型、文件下载和在线阅读。若点击在线阅读,则会浏览相应图书;若点击文件下载,则会下载相应图书。

5.7 更改口令的设计

点击更改口令菜单,进入pwdModify.jsp页面,在pwdModify.jsp页面的表单中包含管理员名称、原密码、新密码、确认密码、重置和保存按钮。若修改成功,则会相应弹出“修改操作成功!”对话框,点击确定,则会重新定位到pwdModify.jsp页面。若填写的管理员和密码与数据库的相应记录不对应,则会相应弹出“您的原密码不正确”对话框,点击确定,则会重新定位到pwdModify.jsp页面。若填写的新密码与确认密码不相同,则相应弹出“你的新密码与你的确认密码不一致”对话框,点击确定,则会重新定位到pwdModify.jsp页面。

5.8 添加网上阅读图书

当点击添加网上阅读图书信息时,首先判断该管理员是否有图书档案管理权限,验证成功后,在右边会显示upload1.jsp页面,否则会转到欢迎页面即right.jsp页面,在upload1.jsp页面的表单中包括图书名称、图书类型、作者、出版社、图书内容、浏览和长传按钮。当点击浏览按钮选择要上传的图书内容,点击上传,若上传成功,都弹出上传成功提示。如果上传的文件格式不对,则会提示上传失败信息。

5.9 读者留言和上网阅读界面的设计

读者留言界面的设计:当读者点击我的管理中的我要留言时,转到content.jsp页面,该页面中包括一个文本框,保存和返回按钮。点击保存时,若保存成功则弹出相关提示信息,反之亦然。点击返回时,转到right1.jsp页面。

上网阅读界面的设计:当读者点击我的管理中的在线阅读时,转到webBook.jsp页面,该页面的表单中包括图示的相关信息和阅读按钮,点击阅读便可阅读此书。

2 3

毕业设计(论文)

第6章 详细设计与实现

6.1 功能实现所需的类图

(1)系统设置、管理员更改口令及读者更改口令的类图

系统设置、管理员更改口令及读者更改口令的类图如图6-1所示。

图6-1 系统设置、管理员更改口令及读者更改口令的类图

(2)图书借还及读者留言类图

图书借还及读者留言类图如图6-2所示。

2 4

毕业设计(论文)

图6-2 图书借还及读者留言类图

6.2 各页面分页功能的实现

在src中添加实现分页的Pagination.java类,strPage为page参数变量,inPages为page参数内部的值,m_rows设置每页显示的记录数,Pages为总页数,在每个页面中利用getPages()函数取得总页数,getPageSet(rs,inPages)函数获得指针的结果集参数是结果集页数,setRows(int i)函数设置每页显示记录,要获得显示的页数则调用inPages(m_pages. strPage(request,\"inPages\"))函数。

6.3 图书馆系统设置模块的实现

系统设置模块包括管理员设置、书架设置、出版社设置、图书馆设置和参数设置。执行以上功能时,需要首先验证该管理员是否具有系统设置权限,如果具有此权限则可执行以上功能,否则无权访问,系统设置模块的流程图如图6-3所示。

2 5

毕业设计(论文)

管理员设置 首页 管理员 错误信息提示 系统设置权限 Y 出版社设置 图书馆设置 书架设置 参数设置 N 结束 图6-3 系统设置模块的流程图

6.3.1 管理员设置的实现

管理员及其权限的显示:通过tb_manager 和tb_purview表中的id联立两张表,查出管理员的相关信息,如果管理员的相应的权限为1,则在相应复选框打对号,实现代码为if(readerset==1){out.println(\"checked\");}。该页面的添加管理员、权限设置和删除,利用实现页面与页面之间传递参数,通过管理员名称找到id,然后通过id在复选框中显示相关权限。管理员的删除和权限修改利用了MVC的思想,两操作都是通过提交表单的方式把相关信息转交给systemServlet在systemServlet利用request.getParameter(\"\")获得表单的内容,由system.java中的函数public boolean managerQuanXianModify(name, sysset1, readerset1, bookset1, borrowback1, sysquery1)和mangerDel(name)分别实现管理员的权限的修改和删除。操作完成后,由systemServlet重定向到相应的页面。对于管理员的添加功能,在systemServlet获得表单的内容时,若密码与确定密码不相同或添加的管理员已存在则提示相关添加失败信息,满足添加条件后,会调用system.java中的函数managerAdd(name, pwd)把管理员添加到tb_manager表中,

2 6

毕业设计(论文)

purviewAdd()函数相应的在tb_purview权限表中添加该管理员的相应权限。

6.3.2 参数设置和图书馆设置的实现

参数设置与图书馆的设置的详细实现:两操作是运用了MVC思想,通过提交表单的方式,把表单的内容提交给systemServlet,该systemServlet通过system.java中的函数ModifyUpdate()把图书馆信息的修改信息更新到tb_library表中,函数systemUpdate()把参数设置的修改信息更新到tb_parameter表中。操作完成后,由systemServlet重定向到相应的页面。

6.3.3 书架和出版社设置的实现

修改书架,利用实现页面与页面之间传递参数。在bookCaseModify.jsp中通过request.getParameter(\"name\")获得相应修改书架的名称,并且旧书架的名称设为只读,当点击确定修改时,通过提交表单的方式,把表单的内容提交给systemServlet,systemServlet通过调用system.java中的函数bookCaseUpdate(oldname, newname)把书架的信息更新到tb_bookcase表中。删除书架,用实现页面与页面之间传递参数。在bookCaseDel.jsp中通过request. getParameter\"name\")获得相应删除书架的名称,当点击确定删除时,通过提交表单的方式,把表单的内容提交给systemServlet,systemServlet通过调用system.java中的函数bookCaseDel(name)把书架的信息更新到tb_bookcase表中。添加书架,通过提交表单的方式,把表单的内容提交给systemServlet,systemServlet通过调用system.java中的函数bookCaseAdd(name)把书架的信息更新到tb_bookcase表中。出版社设置实现与书架类似,区别在于调用system.java中的函数不同,修改、删除和添加,调用函数bookISBNUpdate(oldname, newname)、bookISBNDel(name)、bookISBNAdd(name)把出版社的信息更新到tb_bookISBN表中。操作完成后,由systemServlet重定向到相应的页面。

6.4 图书馆主页面模块的实现

首页包括读者指南和图书借阅排行两部分。

顶部logle部分,中间提示哪位管理员登陆的本系统及进入该页面放入具体时间,右侧添加了快速退出该系统的按钮。

左侧分为上下两部分,上部分导航栏采用折叠式面板,包括8大模块:首页,系统设置,读者管理,图书管理,图书借还,系统查询,更改口令及退出系统。每一模块的下级导航都采用了.MM样式和层;下部分是连接其他页面的接口。

右侧为读者指南,包括相关提示,最新动态,程序说明,入馆须知,开馆时间,办卡

2 7

毕业设计(论文)

须知,注意事项及借阅须知,以便让用户了解本系统的相关信息。图书借阅排行显示图书借阅的相关信息,包括图书条形码,图书名称,书架,图书类型,出版社,作者,定价,入库时间,借阅次数。具体的实现:从tb_borrow表中查询所用记录,并且每一书只显示一次,利用\"select count(*) as t from tb_borrow wherebarcode='\"+ barcode+\"'\"语句来统计每一本书的借阅次数。

6.5 图书馆图书借还模块的实现

图书借还模块包括图书借阅、图书续借和图书归还。执行以上功能时,需要首先验证该管理员是否具有图书借还权限,如果具有此权限则可执行以上功能,否则无权访问,图书借还模块的流程图如图6-4所示。

首页

管理员 错误信息提示 N 图书借还权限 Y 图书续借 图书借阅 图书归还 结束 图6-4 图书借还模块的流程图

6.5.1 图书借阅

在rbookBrrow.jsp通过提交表单的方式,把表单的内容传给rbookBrrow1.jsp页面,在rbookBrrow1.jsp页面中获得参数,并显示在该页面的表当中,为了实现不同读者类型借阅不同数目的书,不同类型的图书所借阅的图书期限不同,首先利用获得读者的图书卡号,找到其读者类型,在表tb_readertype表中找到该读者类型对应的所接图书数目,若该读者

2 8

毕业设计(论文)

所借图书数目超过最大数目,则无权在继续借书。当点击借书按钮时,在页面通过提交表单的方式把该图书及读者信息提交给LibrbianServlet,LibrbianServlet会通过获得参数通过查询语句查出该类图书借阅的最大期限,利用datediff(dd,'\"+borrowTime+\"',getdate())判断该读者是否已有过期未还图书,若成立,则不能继续借书。LibrbianServlet通过library.jsp中的insertjie()函数把该读者的借阅信息插入到借阅表中(tb_borrow1),函数borrowHistory()把该读者的借阅信息插入到借阅历史记录表中(tb_borrow),当tb_borrow表中已有此记录时,把数据项num置0,ifBack置1,否则把数据项num置1,ifBack置1,同时调用函数delBook()在图书信息表中(tb_bookinfo1)删除该记录。若借书成功,由systemServlet弹出借书成功提示,并重定向到相应的页面。

6.5.2 图书归还

在rbookBack.jsp中,当点击归还按钮时,在页面通过提交表单的方式把该图书条形码提交给LibrbianServlet,LibrbianServlet会通过获得参数做不同的处理,如为空,则提示条形码错误,还书失败,否则LibrbianServlet通过library.jsp中的huanBorrowHistory(barcode)判断该图书是否是当天借阅图书,如是则不能归还,否则则调用delJie(barcode)函数在借阅表中(tb_borrow1)删除读者的借阅信息,同时调用inserthuan()函数图书信息表中(tb_bookinfo1)插入该图书信息,在tb_borrow表,把是否归还数据项ifBack置0。若还书成功,由systemServlet弹出还书成功提示,并重定向到相应的页面。

6.5.3 图书续借

在rbookXuJie.jsp中,当点击续借按钮时,在页面通过提交表单的方式把该图书条形码提交给LibrbianServlet,LibrbianServlet会通过获得参数做不同的处理,如为空,则提示条形码错误,续借失败,否则LibrbianServlet会通过获得参数通过查询语句查出该类图书借阅的最大期限,利用datediff(dd,'\"+borrowTime+\"',getdate())判断该图书是否已有过期未还,若成立,则不能继续借,LibrbianServlet会弹出相关提示。否则LibrbianServlet通过library.jsp中的,borrowHistory()函数把该读者的借阅信息插入借阅历史记录表(tb_borrow),把数据项num置0,ifBack置1,xuBorrowHistory(barcode,borrowTime1)函数把借阅历史记录表中(tb_borrow)中原先的该记录的ifBack置0,调用bookBorrow(barcode)函数在tb_borrow表中更新借阅时间。若续借成功,由systemServlet弹出续借成功提示,并重定向到相应的页面。

6.6 图书馆系统查询模块的实现

系统查询模模块包括图书借阅查询、图书档案查询和借阅到期提醒。需要首先验证该

2 9

毕业设计(论文)

管理员是否具有系统查询权限,如果具有此权限则可执行以上功能,否则无权访问,系统查询模模块如图6-5所示。

首页

管理员 错误信息提示

无N

系统查询权限

Y

图6-5 系统查询模块的流程图

图书借阅查询 图书档案查询 借阅到期提醒 结束 6.6.1 图书借阅信息查询

点击图书借阅查询进入bookQuery.jsp页面,当管理员点击查询时,该页面通过提交表单的方式,把表单的相关内容提交给bookBorrowServlet,bookBorrowServlet会通过获得参数做不同的处理,即当什么方式都不选,点击查询按钮,则会相应弹出“选择其中的一种方式进行查寻,确定后再查询!”对话框,点击确定会重新定位bookQuery.jsp页面,当选择的查询方式跟填写内容不对应或文本框全部填满时,点击查询按钮,则会相应弹出“暂时没有您所要查寻的图书信息,原因可能是你选的方式与所填内容不对应,确定后再查询!”对话框,点击确定会重新定位bookQuery.jsp页面。当选择其中的一种方式,并填写内容与所选方式一致时,bookBorrowServlet会调用bookSearch.jsp类中的findBookBarcode(tiao, select),findBookAuthor(tiao,select),findBookName(tiao,select),findBookDate(date1,date2)函数查找tb_borrow表中的符合条件的相关图书信息,然后再通过bookBorrowServlet 中的方法getSession().equestDisetAttribute(\"tiao\设定相关参数的值,再通过bookBorrowServlet 中request.getRspatcher(\"\").forward(request,response)重定向到相关页面,在相关页面中通过request.getSession().getAttribute(\"tiao\")获得bookBorrowServlet中的相关

3 0

毕业设计(论文)

值,显示符合条件的相应记录,否则不显示记录。

6.6.2 图书档案查询

点击图书借阅查询进入bookDangAnS.jsp页面,在该页面中通过查询语句,从图书信息表tb_bookinfo1中查询图书相关信息。

6.6.3 借阅到期提醒

点击借阅到期提醒时进入bookRemind.jsp页面。在bookRemind.jsp页面中通过借阅表tb_borrow1和图书类型表tb_booktype 查出借阅图书的每种类型所借阅的总天数a,通过datediff(dd,borrowTime,getdate())>查出过期未还图书,通过dateadd(dd,”+a+”,'\"+borrowTim +\"')计算每本图书应还日期aa,然后利用datediff(dd,'\"+aa+\"',getdate())计算超期天数。

6.7 更改口令模块的实现

管理员更改口令:点击更改口令菜单,进入pwdModify.jsp页面。在pwdModify.jsp页面中通过session获得登录本系统管理员对象,并通过提交表单的方式,把表单的相关内容提交给systemServlet,该Servlet调用system.java类中的managerAddFind(name, oldpwd)函数验证该管理员填写的原密码是否正确,利用pwd.equalsIgnoreCase(repwd)判断新密码与确认密码是否相同,调用managerModify(name, pwd)函数修改管理员表tb_manager中相应信息。

6.8 退出系统模块的实现

点击退出系统,转到ExitSystemServlet中,利用request.getSession().removeAttribute (\"manager\")销毁该登录用户,然后定位到登录页面。

6.9 管理员添加网上图书的实现

在upload1.jsp中利用表单把相关数据提交给SmartUpladServlet,并把表单的enctype设为multipart/form-data。表单中enctype=\"multipart/form-data\"是设置表单的MIME编码为上传二进制数据。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了次属性值,用request

3 1

毕业设计(论文)

就会传递不成功,取表单值时,用SmartUpload su = new SmartUpload()来新建一个SmartUpload对象;取单个参数单个值用到su.getRequest().getParameter( )。

在SmartUpladServlet中获得表单的内容后,调用webBook.java中的insertWebBook()的方法,把图书信息插入tb_webBook中,在SmartUpladServlet中的doGet()方法中添加如下代码:

public void doGet(HttpServletRequest request, HttpServletResponse response){ String filePath = getServletContext().getRealPath(\"/\") + \"smartUpload\"; ......

SmartUpload su = new SmartUpload();

su.initialize(getServletConfig(), request, response);

su.setAllowedFilesList(\"doc,txt,gif\"); try

{

su.setDeniedFilesList(\"jsp,js,html,css,jpg,bmp\"); su.upload(); } ......

for (int i = 0; i < su.getFiles().getCount(); i++) { ......

com.jspsmart.upload.File tempFile = su.getFiles().getFile(i);

String saveUploadAddr=\"smartUpload\"+\"/\";

book.setSourceFileDir(saveUploadAddr+tempFile.getFilePathName()); book.setSwfFileDir(saveUploadAddr+\"swf/\"+fileName +\".swf\"); BookService.bookAdd(book); webBook W=new webBook();

W.insertWebBook(book.getBookName(),book.getSourceFileDir(),book.getSwfFleDr (),book.getAuthor(),book.getISBN(),book.getBookType()); try {

FlashPaperUtil.converter(realAddr+\"\\\\\"+tempFile.getFilePathName(),realAddr+ \"\\\\swf\\\\\"+realFileNameStr+\".swf\"); } ...... } }

其中 FlashPaperUtil.java中的converter(String sourceFilePath,String targetFilePath)方法,把相应的文档转化成flash格式。在FlashPaperUtil.java中首先要获得flash.properties中配置资源,方法是Name=extcuteFilePath ,Value=D:\\sofeware\\FlashPaper2.2\\FlashPrinter.exe。利用flash.properties配置资源的好处是,当外在的FlashPrinter.exe位置改变时,可以直接

3 2

毕业设计(论文)

在flash.properties中修改Value的值。还需定义输入流inputStream来获得flashPaper执行路径。

具体实现代码如下:

public class FlashPaperUtil {

private static String extcuteFilePath; static{

Properties prop=new Properties();

InputStream inputStream=FlashPaperUtil.class.getClassLoader().getResourceAsStre

am(\"flash.properties\"); try {

prop.load(inputStream); } ...... extcuteFilePath=prop.getProperty(\"extcuteFilePath\"); } }

实现flash转化的具体代码如下:

public static void converter(String sourceFilePath,String targetFilePath) throws Exception{ try { }

Runtime pro = Runtime.getRuntime(); String converter=extcuteFilePath+\" -o \"+targetFilePath+\" \"+sourceFilePath; pro.exec(converter); } ......

6.10 读者留言及网上阅读功能的实现

读者留言功能的实现:在content.jsp页面中添加<% ReaderLogin=(ReaderLogin) session.getAttribute(\"reader\");%>,通过readerLogin. getReadername ()获得登录读者的姓名readername,当读者留言后,点击保存,该页面通过提交表单的方式,把表单的内容提交给contentServlet,该Servlet会通过Library.java中的inSertContent(readername, content)函数把留言插入到tb_content表中,随后该Servlet通window.location ='right1.jsp'把页面转发到right1.jsp页面,并显示全部留言。

网上阅读功能的实现:在webBook.jsp中利用查询语句从数据库中读出数据,点击阅读时,通过tb_webBook表中的swfFileDir找到相应flash的执行路径。

3 3

毕业设计(论文)

总结与展望

本图书馆管理系统是基于B/S设计模式,在MyEclipse开发环境下,以J2EE为平台,运用JSP作为网络编程语言,采用Servlet技术和SQL Server 2008数据库完成。

本系统基本上实现了预期的各项功能,达到了任务书中的主要设计内容的各项任务,整个系统也在经过测试和不断地改正之后能够顺利运行。尤其是读者的上网阅读功能,实现了图书进行联网交流,使读者可以远程查询图书馆的藏书等信息,形成网上图书资源共享平台,使读者可以在线阅读电子书资料,并修改个人信息,使管理员可以上传图书资料信息,从而实现信息资源最大化共享。此次毕业设计使我的技术素质和实践能力有了进一步的提高,对提出问题、思考问题与解决问题有了更深刻的认识。

本系统通过调试运行,结果表明系统具有可行性,但系统还有待于进一步完善。主要针对以下几个方面:

(1)JavaScript技术的运用及CSS的设计并没有各自封装到一起,而是在每个页面单独编写,这给日后界面设计带来了极大的不便,应该更注重代码的可重用性和适应性,使系统更具有可维护性和扩展性。

(2)在首页设计方面,有些地方及不合理,在管理员管理图书馆时并没有设置更新首页信息的接口,而只是采用静态页面显示图书馆的一些必要信息,为使日后维护系统带来了方便,应注重系统每个环节的详细设计。

(3)尽量采用满足模式要求的MVC开发,使模型、视图和控制器得到有效分离,使系统具有高的可重用性和适应性以及良好的可维护性。

(4)有些界面对读者,图书信息验证不是很全面,使本系统存在一些漏洞,为增强系统的安全性,应多注重这方面的设计。

(5)添加网上图书时,并没有添加图书图片,致使系统不能通过图书封面吸引读者。 此系统是我和沈磊共同完成的,这既要有相互合作的精神,又要分工明确。每个人都必须充分了解整个设计的全过程。经过两个月的不断学习和设计开发,加上老师同学的帮助,终于完成了我的毕业设计题目“基于MVC的小型图书馆管理系统设计与实现”的开发,真正实现了理论与实际的结合。在配置开发工具过程中对Tomcat和MyEclipse的连接部署有了清晰地认识,对开发JSP程序的步骤有了总体性认识。数据库设计阶段我尝试了几个不同版本的数据库,它们在配置操作上各有不同,又各有优缺点,在它们的一些基本操作上也有了进一步提高。从编写代码到运行代码过程中也出现了一些错误,正是这些错误让我懂得:不管面对什么困难,只要敢于面对自己的错误,敢于去挑战,敢于坚持,相信明天一定阳光明媚!

3 4

毕业设计(论文)

致 谢

此次毕业设计是我大学四年最后一次作业了,我从开始选题到完成该项目,伴随着从思绪凌乱到思路清晰,最终课题顺利完成。在此过程中,我不仅学到了文化知识,真正实现了理论与实际的结合,更形成了我的许多价值观,除了自己的成长和收获,我真的很想感谢很多人。

首先,我要感谢我的毕业设计指导老师,她严谨治学,适时督促,她的耐心指导使我的设计顺利完成。感激之情,溢于言表。并且在整个毕业设计期间,她始终在思想、生活上给予我细心的指导和不懈的支持,使我不止完成了我的设计任务还学到了很多相关的专业知识,还为我的未来发展、学业、工作等方面提出了很多宝贵的意见,在我整个毕业设计的指导过程中她给我的印象就是认真负责,在此谨向马老师致以诚挚的谢意和崇高的敬意。

其次,我要感谢我的搭档和身边一直帮助我的同学,当我在毕业设计过程中遇到问题和困难时,他们不仅不厌其烦的帮我解决实际问题并提出关键性的建议和意见,而且还在思想上给我以不懈的支持,使我对整个毕业设计的思路有了总体的把握。他们的执着、勤奋和不畏惧,不自觉给我无言的启发,在此我要真诚地对他们说声:“谢谢!”

最后,谢谢我的母校对我的教育,我将以更加饱满的热情投入到下一阶段的学习中去,充实自己,完善自己,向着自己的目标不断地前进,用我的所学去实现我心中的梦想!

3 5

毕业设计(论文)

参考文献

[1] 杨树林,胡洁萍.Java语言最新实用案例教程.北京:清华大学出版社,2010年7月。

[2] 张海藩,倪宁. 软件工程. 北京:人民邮电出版社,2010年2月。

[3] 张银鹤,刘治国,冉小.JSP 完全学习手册.北京:清华大学出版社,2008年6月。 [4] 杨俊生,唐琳.JSP开发技术.北京:清华大学出版社,2011年6月。 [5] 温谦.HTML+CSS 网页设计与布局. 北京:清华大学出版社,2000年。 [6] 周桓,王殊宇.JSP 项目开发全程实录.北京:清华大学出版社,2007年。 [7] 王珊,萨师煊.数据库系统概论.北京:高等教育出版社,2010年。 [10] Hans Bergsten.数据库系统概论.北京:中国电力出版社,2004年。

[11] 王萍萍,孙强.JavaScript应用开发技术详解.北京:科学出版社,2008年7月。 [12] 郝军启,刘治国,赵喜来.Dreamweaver CS4网页设计与网站建设标准教程.北京:清华大学出版社,2010年10月。

3 6