JSP图书管理系统论文Word下载.doc
《JSP图书管理系统论文Word下载.doc》由会员分享,可在线阅读,更多相关《JSP图书管理系统论文Word下载.doc(25页珍藏版)》请在冰点文库上搜索。
3.4管理员设置 19
3.5图书借阅管理 22
3.6会员信息管理 23
结束语 25
参考文献 25
摘要
随着网络技术的发展、计算机应用水平的提高的扩大,原来系统的时效性、数据的正确性、操作的方便性上都存在不足,已影响到系统的正常使用。
经过考察比较,决定利用自己的力量对图书管理系统重新设计,使系统能利用软件开发技术的成果,方便图书的管理。
图书管理系统是典型的信息管理系统。
系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能.利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
本次课程设计利用JSP开发工具和SQLSERVER2000数据库来开发这个图书管理系统。
该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。
该系统能根据用户的需求,快捷方便的为读者提供借阅服务。
关键词:
图书管理系统信息管理JSP
第1章开发环境
本系统采用面向对象的软件开发方法,以JavaServerPages2.0开发环境作为主要开发工具,使用MicrosoftSQLserver2005作为关系数据库,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好地实现了预定的需求功能。
1.1JavaServerPages开发环境
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
(1)一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
JavaServerPages2.0通过事件来执行对象的操作。
一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。
例如,命令按钮是一个对象,用户单击该按钮时,将产生一个“单击”事件,而产生该事件时将执行一段程序,用来实现指定的操作。
1.2SQLSERVER简介
SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。
SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;
1998年,SQLServer7.0版本和用户见面;
SQLServer2005是Microsoft公司于2005年推出的版本。
1.2.1SQLServer特点
1.真正的客户机/服务器体系结构。
2.图形化用户界面,使系统管理和数据库管理更加直观、简单。
3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
4.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。
5.SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。
第2章系统分析
2.1模块设计
本系统主要开发目的是方便图书管理人员进行图书信息管理,增加工作效率,面向的客户群体是各级图书馆的工作人员。
根据本系统的需求,结合实际管理情况,本系统应用有如下功能模块:
1.基本信息设置:
如操作人员的编辑,操作人员密码的修改。
2.用户的管理:
可以增加(给用户办卡)、修改、删除用户信息。
3.图书信息管理:
可以增加、删除、修改图书信息。
4.查询图书信息。
5.添加图书借阅信息。
6.借阅还书功能。
7.根据借阅日期自动计算借阅费用。
2.2功能模块图
管理系统
图书信息管理
基本信息
设置
用户借阅管理
查询图书管理
添加图书管理
修改图书管理
2.3数据库设计概述
计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。
对于数据库应用开发人员来说,为使现实世界的信息流计算机化,并对计算机化的信息进行各种操作,就是如何利用数据库管理系统、系统软件和相关硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于实现用户新的要求的过程。
确切的说,数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。
2.4数据库设计周期
根据软件工程的思想,数据库设计的周期可以划分为六个阶段:
1、规划阶段
确定开发的总目标,给出计划开发的软件系统的功能、性能以及可靠性等方面的设想。
2、需求分析阶段
认真细致地了解用户对数据的加工要求,确定系统的功能与边界。
本阶段的最终结果能够提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一整套完善的数据流程图。
3、设计阶段
把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。
4、程序编制阶段
以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。
程序编制时应遵循结构化程序设计方法。
5、调试阶段
对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。
6、运行和维护阶段
这是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。
在运行中,必须保持数据库的完整性,必须有效地处理数据故障和进行数据库恢复。
同时解决开发过程的遗留问题,改正错误进行功能完善。
数据是系统的灵魂所在,整个系统的运行基础是系统数据库,因而数据库的设计质量对整个系统的功能与效率有很大影响,所以我们在进行数据文件和数据库设计时,充分考虑了数据存储的完整性、可靠性、安全性和数据的一致性及便于操作等方面的问题。
一个完整的信息系统的建设并不是一步到位的。
在实际的建设过程中,在时间上各子系统有先建、后建之分,在开发人员的分配上有他建、我建之别,这就涉及到各子系统之间的兼容问题。
在现有的软件水平下,追求应用系统间的相互兼容存在困难,但对于数据的兼容也就是数据的共享来说,既非常重要,又相对应用系统的兼容较易实现。
在提高数据共享性方面,可主要从数据的一致性方面来考虑。
在我们的数据库系统建设中,着重考虑了以下两个标准保证数据的一致性:
1)字段标准:
字段标准不统一是造成数据库难以共享的一个主要原因,因为字段的设计处于数据库设计的最底层,或者可以说是最基本的一层,如果这一层都不能统一的话,会直接影响到数据库中数据的共享。
2)代码标准:
代码的引入为保持数据库中数据的一致性提供了一个重要手段。
此外本数据库设计主要遵循以下原则:
数据库文件的实用性。
数据库文件的安全性。
数据库文件的独立性。
节省磁盘空间。
数据库设计是要在一个给定的应用环境(DBMS)中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求。
物理结构设计的原则如下:
(1)尽可能的减少数据冗余和重复。
(2)结构设计与操作设计相结合。
(3)数据结构具有相对的稳定性。
基于以上设计原则,本系统设计了一个数据库,包含基本信息表(如图书信息表、系统用户表等)及几个实体联系建模后的表(如借阅信息表、会员信息表等)。
为了加快系统访问的速度把这些表放在一个数据库中。
2.5SQL查询语言及使用
SQL语言是结构化语言(StructureQueryLanguage)的缩写,是一种用于数据库查询和编程的语言,已经成为关系型数据库普遍使用的标准,使用这种标准数据库语言对程序设计和数据库的维护都带来了极大的方便,广泛地应用于各种数据查询。
JSP和其他的应用程序包括SQLserver2000、Foxpro、Orcale、SQLSERVER2000等都支持SQL语言。
SQL语言的常用操作有:
建立数据库数据表(CREATETABLE),如本系统中的学生及成绩备份就用到该语句;
从数据库中筛选一个记录集(SELECT),这是最常用的一个语句,功能强大,能有效地对数据库中一个或多个数据表中的数据进行访问,并兼有排序、分组等功能;
在数据表中添加一个记录(INSERT);
删除符合条件的记录(DELETE);
更改符合条件的记录(UPDATE);
JSP中的数据库操作对象都提供了对SQL语句的支持。
其一般的用法是以JSP的各种控件接收用户对数据库访问的请求,在事件响应程序代码中将其转换成对数据库的SQL查询语句,并以字符串的形式存在,然后将其传递给相应的数据库操作对象,最终完成对数据库的访问。
2.6处理流程设计
2.6.1系统操作流程图
错误信息
系统主界面
系统登录界面
系统管理
输入操作员及密码
密码错误
数据库
检查
密码正确
功能界面
功能处理
2.6.2数据增加流程
添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。
数据增加流程图:
开始
自动生成编号
输入数据
是否合法
写入数据库
结束
图3.2数据增加流程图
2.6.3数据修改流程
在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。
数据修改流程图如图3.3所示。
选择需要修改记录
图3.3数据修改流程图
2.6.4数据删除流程
当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。
数据删除流程图如图3.4所示。
选择需要删除记录
是否删除
更新数据库
图3.4数据删除流程图
第3章系统设计
3.1用户登陆
当系统登陆时,首先出现的是一个用户权限登陆的界面,权限设置主要是维护系统的安全性和完整性。
拥有管理员权限的操作员能对其他操作员进行相应的权限设置,没有权限的操作员不能对相应的窗口进行操作。
如下图所示:
Login.jsp:
<
%@pagelanguage="
java"
contentType="
text/html;
charset=UTF-8"
pageEncoding="
UTF-8"
%>
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
"
http:
//www.w3.org/TR/html4/loose.dtd"
>
html>
head>
metahttp-equiv="
Content-Type"
content="
title>
图书管理系统<
/title>
styletype="
text/css"
--
.STYLE1{
font-size:
36px;
font-weight:
bold;
}
-->
/style>
/head>
body>
formname="
form1"
method="
post"
action="
valid.jsp"
<
tablewidth="
400"
height="
120"
border="
1"
align="
center"
<
caption>
<
spanclass="
STYLE1"
图书管理系统<
/span>
/caption>
tr>
tdwidth="
166"
账号:
/td>
318"
inputname="
username"
type="
text"
id="
/tr>
td>
密码:
password"
tdcolspan="
2"
inputtype="
submit"
name="
Submit"
value="
登录"
reset"
Submit2"
取消"
/table>
/form>
/body>
/html>
这是进入系统时的身份验证,用户首先要从软件开发者那里申请用户名和密码,才可以进入。
该过程的流程图如下图:
输入姓名及口令
记录在口令表吗中
进入主界面
继续吗
提示信息
N
Y
3.2添加图书信息
身份验证通过以后,点击可以使用系统的基本信息管理界面,这是管理员主要的输入信息部分,它即可以对数据进行输入。
填写好各项信息后,单击保存按钮,系统将对这些信息进行处理。
界面见下图:
BookAdd.jsp:
添加图书信息<
action="
bookSaveAdd.jsp"
divalign="
class="
添加图书信息<
/div>
300"
74"
图书类别:
210"
name"
图书名称:
图书作者:
出版社:
publish"
<
ISBM号码:
inputisbn="
001"
图书价格:
price"
数量:
inputnumber="
200"
<
简介:
inputIntroduction="
借阅价格:
提交"
3.3图书类别管理
点击可以使用系统的基本信息管理界面,这是管理员主要的输入信息部分,它即可以对数据进行输入。
bookEdit.jsp:
%@pageimport="
java.sql.*"
%>
图书类别管理<
% StringstrId=request.getParameter("
id"
);
Class.forName("
com.mysql.jdbc.Driver"
Connectioncon=DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/bk"
"
root"
123456"
PreparedStatementps=con.prepareStatement("
select*fromt_bookwhereid=?
"
ps.setInt(1,Integer.parseInt(strId));
ResultSetrs=ps.executeQuery();
if(rs.next()){
bookSaveEdit.jsp"
hidden"
%=rs.getInt("
)%>
%=rs.getString("
录入时间:
inputEntrytime<