资源描述
第一章 需求分析
1.1 开发背景
伴随计算机技术飞速发展,计算机所在生活中应用普及,利用计算机实现图书管理势在必行。现在,部分中小规模图书馆还是继续采取借书证+图书卡片+手工登记操作方法进行管理。工作人员在日常工作中要面对图书、读者等枯燥资料大量反复操作,而且靠手工进行相关数据统计很困难,而且在实际工作中会因为人工处理疏漏、不慎造成一定问题,整体上讲,原始图书管理方法一定程度上造成了工作效率无法深入提升。为了能愈加好为教育服务,把握好学生们需求,做好服务工作,图书管理信息化是一条切实可行改革之路。原始手工管理图书馆方法,要整理图书馆图书、读者、进出库信息全部相当困难,而且手写数据一旦被毁,要重新整理就相当不轻易。图书管理信息化,能够使相关数据统计能够轻松、正确实现,而且数据备份、恢复也很轻易,只要有良好操作习惯,碰到怎样数据灾难全部能够从容应对。图书馆管理信息化能够降低人力资源浪费,能够使少许人员就能够负担好图书馆日常工作任务。
本系统结合图书馆实际需要分析,采取功效很强大NewBeans作为开发工具,使用php作为开发语言,来开发B/S(Browser/Server)模式图书管理系统。整个系统符合操作简便、界面友好、灵活、实用、安全要求出发,完成借书、还书全过程,包含读者资源、书籍资源、借书信息、还书信息能够立即地了解各个步骤信息变更。
1.2 系统需求分析
经过计算机对图书进行管理,不仅为图书馆管理注入了新生机,而且在运行过程中
省了大量人力、物力、财力和时间,能够提升图书馆效率,还为图书馆在读者群中树立了一个全新形象,并为图书馆以后发展奠定一个良好基础。经过对部分图书馆实际考察、分析,并结合图书馆要求和实际市场调查,要求本系统含有一下功效:
1、 网站设计页面要求美观大方、个性化,功效全方面,操作简单。
2、 要求实现基础信息管理平台。
3、 要求对全部读者进行管理。
4、 要求实现图书借书排行、了解目前畅销书。
5、 商品分类详尽,可按不一样类别查看图书信息。
6、 提供快速图书信息、图书借阅检索功效,确保数据查询灵活性。
7、 实现图书借阅、图书续借、图书归还功效。
8、 实现综合条件查询,如按用户指定条件查询、按日期时间段查询、综合条件查询等。
9、 要求图书借阅、续借、归还时记下每一笔统计操作员。
10、 实现对图书借阅、续借和归还过程全程数据信息跟踪。
11、 提借阅到期提醒功效,使管理者能够立即了解到已经抵达归还日期图书借阅信息。
12、 提供灵活、方便权限设置功效,使整个系统管理分工明确。
13、 含有易维护性和易操作性。
1.3 可行性论证
经过对图书各个方面进行了具体了解以后,现对开发图书管理系统可行性进行分析。
技术上可行:系统所需硬件设备,市场上销售且价格较低,甚至能够使用原有设备,软件上,操作系统采取Windows系列操作系统,系统开发工具NetBeans采取PHP语言开发,后台数据库采取MySQL5.0这些软件在MIS开发中已被大量应用,技术上全部比较成熟,所以在技术上是可行。
经济上可行:因为中小型企业急需采取计算机来进行图书管理,所以对开发图书管理系统大力支持。
管理上可行:中小型企业对图书有很多管理体制,每位借书人全部有会员卡号,同时图书馆还为每位借书人建立了档案。所以管理上可行。另外,同时制订了培训计划,并进行了实施MIS物质准备和工作准备。
总而言之,开发图书管理系统在技术上、经济上、管理上全部是可行。
第二章 系统设计
系统概要设计是系统实现一个关键前期工作。本章节将结合功效设计、模块划分和子模块功效设计及步骤三个方面对该系统概要设计做具体说明。
2.1功效设计
本系统是基于B/S模式旅游管理系统设计和实现。系统开发使用软件有NetBeans6.9、MySQL5.0等,系统功效关键包含登录,系统设置,读者管理,图书管理,图书借还,系统查询等。
本系统设计实现了用户登录、系统设置、读者管理、图书管理、图书借还、系统查询等模块。系统模块结构参考图2-1。
图2-1图书管理系统模块
图书管理系统
读者管理模块
用户登录模块
系统设置模块
更改口令
模块
图书借还模块
图书管理模块
系统查询模块
2.2模块具体划分
系统关键划分为四大模块,分别是用户登录模块、系统设置模块、读者管理模块、图书管理模块和图书借还等模块。其模块具体划分参考图2-2。
图书馆管理系统
系统设置
读者管理
图书借还
图书管理
图书馆信息
管理员设置
读者类型管理
读者档案管理
图书类型管理
图书档案管理
图书借阅
图书归还
系统查询
参数设置
书架设置
图书续借
图书档案查询
图书借阅查询
借阅到期提醒
更改口令
退出系统
2.3系统步骤图
图2-3图书管理系统步骤图
2.4 子模块功效设计及步骤
为了能愈加好地完成系统实现,本文对系统各子模块功效设计和步骤做了具体说明。
2.4.1 登录模块
用户输入用户密码,系统验证,失败时返回登录页面,成功时进入主界面。登陆成功,将用户信息保留Session里,便于用户信息提取。设计步骤图参考图2-4-1。
图2-4-1 登录模块程序步骤
用户登录
访问login.jsp
信息录入
错误提醒
登录验证
error
success
User——>Session
进入main.jsp
2.4.2 系统设置模块
关键操作:对管理员、书架等增加、修改、删除、查询。基础操作步骤参考图2-4-2-a。操作说明:
增加——验证录入信息是否正确,确定正确,成功后显示信息列表。
修改——验证修改信息是否正确,确定修改,成功后显示信息列表。
删除——选择删除项,确定删除后,删除选择数据,成功后显示回信息列表。
查询——查询全部管理员、书架等信息。查询步骤参考图2-4-2-b。
图2-4-2-a 系统设置基础操作
系统设置
信息输入
查询数据
录入数据
修改、删除数据
图2-4-2-b基础操作程序步骤
基础操作
删除
增加、修改
选择数据
录入信息
信息判定
错误提醒
删除判定
错误提醒
N N
Y Y
信息列表
信息列表
2.4.3 读者管理模块
关键操作:对读者信息维护,包含增、删、查、改等。程序步骤参考图2-4-2-a和图2-4-2-b。
2.4.4 图书管理模块
关键操作:对图书信息维护,包含增、删、查、改等。程序步骤参考图2-4-2-a和图2-4-2-b。
2.4.5 图书借还模块
关键操作:对图书管理,包含图书借阅、图书续借、图书归还等。程序步骤参考图2-4-5-a、图2-4-5-b和图2-4-5-c。
图2-4-5-a图书借阅程序步骤
录入读者条形码
选择图书
输入图书条形码或书名
完成图书借阅
显示读者信息
确定 确定
图2-4-5-b图书续借程序步骤
显示该读者所借全部书籍
录入读者条形码
选择续借图书
显示读者信息
完成图书续借
图2-4-5-c图书续借程序步骤
显示该读者所借全部书籍
录入读者条形码
选择归还图书
显示读者信息
完成图书归还
2.4.6 系统查询模块
关键操作:对图书相关查询,包含图书档案查询、图书借阅查询、借阅到期提醒等。程序步骤参考图2-4-6。
图2-4-6 查询操作步骤图
信息查询
模糊查询
等值查询
选择条件
选择条件
录入部分信息
录入完整信息
错误提醒
查询判定
查询判定
错误提醒
N N
Y Y
查询
查询
结果信息列表
结果信息列表
第三章 数据库设计
3.1数据库设计概述
计算机信息系统以数据库为关键,在数据库管理系统支持下,进行信息搜集、整理、存放、检索、更新、加工、统计和传输等操作。
为了使现实世界信息流计算机化,并对计算机化信息进行多种操作,就是怎样利用数据库管理系统、系统软件和相关硬件系统,将用户要求转化成有效数据结构,并使数据库结构易于实现用户新要求过程。 确切说,数据库设计是指对于一个给定应用环境,提供一个确定最优数据模型和处理模式逻辑设计,和一个确定数据库存放结构和存取方法物理设计,建立起既能反应现实世界信息和信息联络,满足用户数据要求和加工要求,又能被某个数据库管理系统所接收,同时能实现系统目标,并有效存取数据数据库。
依据软件工程思想,数据库设计周期能够划分为六个阶段: 计划阶段、需求分析阶段 、设计阶段、程序编制阶段 、调试阶段、运行和维护阶段 。数据库设计是要在一个给定应用环境(DBMS)中,经过合理逻辑设计和有效物理设计,结构较优数据库模式、子模式,建立数据库和设计应用程序,满足用户多种信息需求。物理结构设计标准以下:(1) 尽可能降低数据冗余和反复(2) 结构设计和操作设计相结合(3) 数据结构含有相正确稳定性。
基于以上设计标准,系统设计了一个数据库,包含基础信息表(图书信息表、系统用户表等)及多个实体联络建模后表(如借阅信息表、会员信息表等)。为了加紧系统访问速度把这些表放在一个数据库中。
3.2数据字典
有了系统数据流图后,还有相当多数据信息图书、借阅、归还等信息需要深入描述,这就是需要定义数据字典,才能把现有系统描述清楚。列出系统关键数据字典。
名称:管理员
描述:统计管理员信息
定义:管理员信息=管理员ID+管理员密码
输入数据:管理员信息
输出数据:管理员信息
名称:图书信息表结构
描述:统计全部图书基础情况
定义:图书信息=图书编号+ISBN号+索引号+图书类别+图书名称+语种+原名+页码+作者+价格+出版社+出版时间+登记日期+备注
输入数据:图书信息
输出数据:图书信息
名称:读者信息表结构
描述:统计全部读者基础情况
定义:读者信息=读者编号+性别+姓名+类别+身份证号+办证日期+证使用期+工作单位+E-mail+联络电话
输入数据:读者信息
输出数据:读者信息
名称:借书记录表结构
描述:统计全部图书借阅情况
定义:借书信息=读者编号+读者编号+读者类别+图书编号+图书类别+图书名称+原名+
作者+出版社+借出日期+应还日期
输入数据:借书信息
输出数据:借书信息
名称:统计归还记录表结构
描述:统计全部图书归还情况
定义:归还信息=读者编号+读者编号+读者类别+图书编号+图书类别+图书名称+原名+作者+出版社+借出日期+应还日期+实还日期+罚款
输入数据:归还信息
输出数据:归还信息
3.3数据库逻辑设计
在需求分析阶段已完成该系统全部数据分析。依据该阶段所建立概念模型,已经得出满足系统设计要求多个关系描述,该阶段关键工作就是把前一阶段结果转化为具体数据库。下面给出概念结构设计得E-R图。
1:管理员实体E-R图:
图3.1 管理员实体E-R图
管理员
密码
用户ID
2:会员信息实体E-R图:
图3.2 读者实体E-R图
编号
电话
读者
姓名
条形码
电子邮件
职业
类型
3:图书信息实体E-R图:
图3.3 图书实体E-R图
出版日期
条形码 图书
登记日期
编号
出版社
名称
类别
数量
价格
作者
4:借书信息实体E-R图:
图3.4 借书实体E-R图
出版
读者编号 借书
读者姓名
书籍类别
书籍编号
应还日期
借出日期
书籍名称
书籍作者
读者类别
6:还书信息实体E-R图:
图3.5还书实体E-R图
实还日期
读者编号 还书
操作员
读者姓名
书籍类别
书籍编号
应还日期
书籍名称
借出日期
读者类别
书籍作者
7:表示系统E-R图(图4.6):
图4.6 系统E-R图
读者管理
管理员
图书管理
读者
图书
归还
借阅
1 1
N N
M M N
N N
3.4 数据库表
tb_manager表是用户统计用户信息(管理员信息表)
管理员信息表关键用来保留管理员信息。表tb_manager结构如表3-4-1所表示。
表3-4-1
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
Int(10)unsigncd
NO
YES
ID自动编号
name
Varchar(30)
YES
NULL
管理员名称
pwd
Varchar(30)
YES
NULL
密码
tb_purview(权限表)
权限表关键用来保留管理员权限信息,该表中id字段和管理员信息表(tb_ purview)中id字段关联。表tb_ purview结构如表3-4-2所表示。
表3-4-2
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
Int(11)
NO
YES
0
管理员ID号
sysset
Tinyint(1)
YES
0
系统设置
readerset
Tinyint(1)
YES
0
读者管理
bookset
Tinyint(1)
YES
0
图书管理
borrowback
Tinyint(1)
YES
0
图书借还
sysquery
Tinyint(1)
YES
0
系统查询
tb_parameter(参数设置表)
参数设置表关键用来保留办证费及书证使用期限等信息。表tb_parameter结构如表3-4-3所表示
表3-4-3
tb_booktype(图书类型表)
关键用来保留图书类型信息。表tb_booktype结构如表3-4-4所表示。
表3-4-4
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
Int(10)unsigncd
NO
YES
ID(自动编号)
typename
Varchar(30)
YES
NULL
类型名称
days
Int(10)unsigncd
YES
NULL
可借天数
tb_bookcase(书架信息表)
书架信息表关键用来保留书架信息。表tb_bookcase结构如表3-4-5所表示。
表3-4-5
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
Int(10)unsigncd
NO
YES
ID(自动编号)
name
Varchar(30)
YES
NULL
书架名称
tb_bookinfo(图书信息表).
该表用于保留图书信息。表tb_bookinfo结构如表3-4-6所表示。
表3-4-6
字段名称
数据类型
是否为空
是否主键
默认值
描述
barcode
varchar(30)
YES
NULL
条形码
bookname
varchar(70)
YES
NULL
书名
typeid
int(10)unsigned
YES
NULL
类型
author
varchar(30)
YES
NULL
作者
translator
varchar(30)
YES
NULL
译者
ISBN
varchar(20)
YES
NULL
出版社
price
float(8,2)
YES
NULL
价格
page
int(10)unsigned
YES
NULL
页码
bookcase
int(10)unsigned
YES
NULL
书架
intTime
date
YES
NULL
录入时间
operator
varchar(30)
YES
NULL
操作员
del
tinyint(1)
YES
0
是否删除
id
int(11)
NO
YES
ID(自动编号)
tb_borrow(图书借阅信息表)
用于保留图书信息。表tb_borrow如表3-4-7所表示。
表3-4-7
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
int(10)unsigned
NO
YES
ID(自动编号)
readerid
int(10)unsigned
YES
NULL
读者编号
bookid
int(10)
YES
NULL
图书编号
borrowTime
date
YES
NULL
借书编号
backtime
date
YES
NULL
应还时间
operator
varchar(30)
YES
NULL
操作员
ifback
tinyint(1)
YES
0
是否归还
tb_giveback(图书归还信息表)
图书归还信息表关键用来保留图书归还信息。表tb_giveback结构如表3-4-8所表示。
表3-4-8
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
int(10)unsigned
NO
YES
ID(自动编号)
readerid
int(11)
YES
NULL
读者编号
bookid
int(11)
YES
NULL
图书编号
backTime
date
YES
NULL
归还时间
operator
varchar(30)
YES
NULL
操作员
tb_publishing(出版社信息表)
出版社信息表关键用来保留出版社信息。表tb_publishing结构如表3-4-9所表示。
表3-4-9
字段名称
数据类型
是否为空
是否主键
默认值
描述
ISBN
varchar(30)
YES
NULL
ISBN号
pubname
varchar(30)
YES
NULL
出版社名称
tb_reader(读者信息表)
读者信息表关键用来保留读者信息。表tb_reader结构如表3-4-10所表示。
表3-4-10
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
int(10)unsigned
NO
YES
ID(自动编号)
name
varchar(20)
YES
NULL
姓名
sex
varchar(4)
YES
NULL
性别
barcode
varchar(30)
YES
NULL
条形码
vocation
varchar(50)
YES
NULL
职业
birthday
date
YES
NULL
出生日期
paperType
varchar(10)
YES
NULL
有效证件
paperNO
varchar(20)
YES
NULL
证件号码
tel
varchar(20)
YES
NULL
电话
email
varchar(100)
YES
NULL
电子邮件
createDate
date
YES
NULL
登记日期
operator
varchar(30)
YES
NULL
操作员
remark
text
YES
NULL
备注
typeid
int(11)
YES
NULL
类型
tb_readertype(读者类型信息表)
读者类型信息表关键用来保留读者类型信息。表tb_readertype结构如表3-4-11所表示。
表3-4-11
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
int(10)unsigned
NO
YES
ID(自动编号)
name
varchar(50)
YES
NULL
名称
number
int(4)
YES
NULL
可借数量
tb_library(图书馆信息表)
图书馆信息表关键用来保留图书馆基础信息。表tb_library结构如表3-4-12所表示。
表3-4-12
字段名称
数据类型
是否为空
是否主键
默认值
描述
id
int(10)unsigned
NO
YES
ID(自动编号)
libraryname
varchar(50)
YES
NULL
馆名
curator
varchar(10)
YES
NULL
馆长
tel
varchar(20)
YES
NULL
联络电话
address
varchar(100)
YES
NULL
联络地址
email
varchar(100)
YES
NULL
E—mail
url
varchar(100)
YES
NULL
网址
creatDate
date
YES
NULL
建馆日期
introduce
text
YES
NULL
介绍
第四章 系统设计
系统给图书馆提供了系统设置、读者管理、图书管理、图书借还、系统查询等功效。本章节具体地介绍了每个子模块实现过程,同时也列出了部分关键源代码以供参考。
4.1 登录模块
实现过程:登录界面(login.php文件),输入用户名和密码,经过调用(chklogin.php文件)checkinput()方法进行验证用户登陆。运行页面效果以下图4-1:
图4-1 登录页面
登录实现关键代码:
function checkinput(){
include("conn/conn.php"); //连接数据源
$sql=mysql_query("select * from tb_manager where name='".$this->name."' and pwd='".$this->pwd."'",$conn);
$info=mysql_fetch_array($sql); //检索管理员名称和密码是否正确
if($info==false){ //假如管理员名称或密码不正确,则弹出相关提醒信息
echo "<script language='javascript'>alert('您输入管理员名称错误,请重新输入!');history.back();</script>";
exit;
}
else{ //假如管理员名称或密码正确,则弹出相关提醒信息
echo "<script>alert('管理员登录成功!');window.location='index.php';</script>";
$_SESSION['admin_name']=$info[name];
$_SESSION['pwd']=$info[pwd];
}
}
4.2 管理员设置
增加系统管理员,能够增加、修改、删除系统管理员用户。以下图4-2所表示:
图4-2 管理员设置页面
管理员设置manager_del.php文件关键实现代码:
<?php
include("conn/conn.php");
$id=$_GET['id'];
$sql=mysql_query("delete from tb_manager where id='$id'");
$query=mysql_query("delete from tb_purview where id='$id'");
if($sql==true and $query==true ){
echo "<script language=javascript>alert('管理员删除成功!');history.back();</script>";
}
else{
echo "<script language=javascript>alert('管理员删除失败!');history.back();</script>";
}
?>
4.3添加图书信息
身份验证经过以后,点击能够使用系统基础信息管理界面,这是管理员关键输入信息部分,它即能够对数据进行输入。填写好各项信息后,单击保留按钮,系统将对这些信息进行处理。界面见下图4-3所表示:
图4-3 添加图书信息页面
添加图书信息为book_add.php文件关键实现代码:
<form name="form1" method="post" action="book_ok.php">
<table width="600" height="432" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="173" align="center">条 形 码:</td>
<td width="427" height="39">
<input name="barcode" type="text" id="barcode"></td>
</tr>
<tr>
<td align="center">图书名称:</td>
<td height="39"><input name="bookName" type="text" id="bookName" size="50"> * </td>
</tr>
<tr>
<td align="center">图书类型:</td>
<td>
<select name="typeId" class="wenbenkuang" id="typeId">
<?php
include("Conn/conn.php");
$sql=mysql_query("select * from tb_booktype");
$info=mysql_fetch_array($sql);
do{
?>
<option value="<?php echo $info['id'];?>"><?php echo $info['typename'];?></option>
<?php }while($info=mysql_fetch_array($sql));?>
</select>
</td>
</tr>
<tr>
<td align="center">作 者:</td>
<td><input name="author" type="text" id="author" size="40"></td>
</tr>
<tr>
<td align="center">译 者:</td>
<td><input name="translator" type="text" id="translator" size="40"></td>
</tr>
<tr>
<td align="center">出 版 社:</td>
<td>
<select name="isbn" class="wenbenkuang">
<?php
$sql2=mysql_query("select * from tb_publishing");
$info2=mysql_fetch_array($sql2);
do{
?>
<option value="<?php echo $info2['ISBN'];?>"><?php echo $info2['pubname'];?></option>
<?php }while($info2=mysql_fetch_array($sql2));?>
</select>
</td>
</tr>
<tr>
<td align="center">价 格:</td>
<td><input name="price" type="text" id="price">(元)</td>
</tr>
<tr>
<td align="center">页 码:</td>
<td><input name="page" type="text" id="page"></td>
</tr>
<tr>
<td align="center">书 架:</td>
<td><select name="bookcaseid" class="wenbenkuang" id="bookcaseid">
<?php
$sql3=mysql_query("select * from tb_bookcase");
$info3=mysql_fetch_array($sql3);
do{
?>
<option value="<?php echo $info3['id'];?>"><?php echo $info3['name'];?></option>
<?php }while($info3=mysql_fetch_array($sql3));?>
</select>
<input name="operator" type="hidden" id="operator" value="<?php echo $info3['name'];?>"></td>
</tr>
<tr>
<td align="center"> </td>
<td><input name="Submit" type="submit" class="btn_grey" value="保留" onClick="return check(form1)">
<input name="Submit2" type="button" class="btn_grey" value
展开阅读全文