图书馆管理系统
更新时间:2024-06-24 03:54:01 阅读量: 综合文库 文档下载
图书馆管理系统
I
目录
摘要 .............................................................................................................................................................. III 前言 .............................................................................................................................................................. III 第一章 图书馆管理系统分析 ..................................................................................................................... 1 1.1 需求分析 ............................................................................................................................................ 1 1.2 功能分析 ............................................................................................................................................ 2 1.3 系统用例图设计 ................................................................................................................................ 2 1.4 绘制系统流程图 ................................................................................................................................ 3 1.5 系统的开发环境 ................................................................................................................................ 3 第二章 数据库分析与设计 ......................................................................................................................... 4 2.1 数据库分析 ........................................................................................................................................ 4 2.2 数据库概念设计 ................................................................................................................................ 4 2.3 数据逻辑结构设计 ............................................................................................................................ 6 2.4 各表之间的联系图 ............................................................................................................................ 8 第三章 系统设计与功能实现 ..................................................................................................................... 8 3.1 数据库Dao类的构建 ....................................................................................................................... 8 3.2 系统登录模块 .................................................................................................................................. 10 3.3 主窗体模块 ...................................................................................................................................... 12 3.4 图书类别管理模块 .......................................................................................................................... 14 3.5 图书信息管理模块 .......................................................................................................................... 16 3.6 读者信息管理模块 .......................................................................................................................... 20 3.7 图书订购管理模块 .......................................................................................................................... 22 3.8 图书借阅管理模块 .......................................................................................................................... 24 3.9 系统维护模块 .................................................................................................................................. 27
II
图书馆管理系统
摘要
图书馆管理系统是采用Java做前台,后台数据库则采用的是SQL Server 2008,本系统提供4个功能模块,分别是基础数据维护模块、新书订购管理模块、借阅模块,以及系统维护模块。这4个模块里又有许多子模块,通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。
本文将全面介绍所设计的图书馆管理系统的系统功能和业务流程,并对系统进行详细的数据分析和设计,最终使用Java完成系统开发。
关键词:图书馆管理系统,SQL Server 2008,Java
前言
随着社会的发展,人们对于知识的需求也在不断地增长。书籍作为人们获取并增长知识的主要途径,使得图书馆在人们生活中占有了一定位置。但是近几年来,随着书量的不断增长,造成了书库空间极度不足,图书挤压,管理不善。这些都直接影响了读者对图书馆藏书的充分利用。这时图书馆就特别需要开发一套图书馆管理系统,通过该系统来提高图书馆的管理效率,从而减少管理方面的工作流和成本。
一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。因此有一个智能化、系统化、信息化的图书管理系统十分重要的。充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱。方便友好的图形界面、简便的操作、完善的数据库管理。将会使得图书馆系统极大限度的应用于现代化图书管理中。
III
第一章 图书馆管理系统分析
1.1 需求分析
图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款进行自动计算。通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。
一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者的信息等等。
一个最基本的图书馆管理系统要有如下几个重要功能: (1)用户在借书超期的情况下得到来自管理员的提醒。
(2)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改。管理员管理包括管理员信息的添加,删除,修改等。
(3)用户和管理员可以修改自己的密码,修改前需先核实自己的原始密码。 (4)未注册用户(游客)也可以浏览所有的图书信息和分类信息,但是无法借阅。 (5)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。 (6)考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书,程序自动跳转该分类图书查看。删除某个用户,如果存在借书记录则不允许删除,跳转到该用户的借书记录。等待管理员确认该用户所借图书已经全部归还之后才允许删除该用户信息。
一个图书馆管理系统要是能实现以上的各种功能,那么这个图书馆管理系统也就算是比较成功的一个系统了。
1
1.2 功能分析
根据以上需求分析,我所设计的图书馆管理系统有4个功能模块,分别是基础数据维
护模块、新书订购管理模块、借阅模块,以及系统维护模块。其中各功能模块的具体说明如下:
基础数据维护模块包括:1读者信息管理模块:该模块主要负责管理图书馆的读者信息,如读者编号、读者信息、证件号码、最大借书量等信息。2图书类别管理模块:该模块主要负责管理图书馆的图书种类信息,如图书种类的名称、可借天数、罚款数目等信息。3图书信息管理模块:该模块主要负责管理图书馆的图书信息,如图书编号、图书名称、作者、出版社等信息。
新书订购管理模块:该模块主要负责管理图书馆的新书订购信息、包括新书订购和验收新书两个子模块。
图书借阅管理模块:该模块主要负责图书馆的书籍借阅和归还信息,包括图书借阅、图书归还、图书搜索3个子模块。
系统维护模块:该模块主要负责图书馆的工作人员信息,包括用户管理和更改系统口令两个子模块。
1.3 系统用例图设计
图书馆管理系统是一个内部人员使用的系统,也就是说不是所有的人都能够使用它,只有图书馆的工作人员才能使用。而图书馆的工作人员除了负责图书的借阅和归还的工作;还能够对书籍列表,书籍信息,读者信息等进行管理。下面以管理员为例绘制其所对应的用例图如图1.1所示。
图1.1 管理员用例图
2
1.4 绘制系统流程图
本系统首先需要对用户的身份进行识别,只有合法的用户才能进入系统,否则将无法进入系统。进入系统后,首先打开系统主窗体,在系统首页的菜单栏或者功能区可以选择各种导航链接来进行各种操作。下面以管理员为例,其系统流程图如图1.2所示。
身份识别否是否为合法用户是主窗体图书类别管理图书信息管理读者信息管理新书订购管理图书借阅管理系统维护图书类别添加图书类别修改图书信息添加图书信息修改读者信息添加读者信息修改新书订购验收新书图书借阅图书归还图书搜索更改口令用户管理 图1.2 系统流程图
1.5 系统的开发环境
图书馆管理系统的具体开发环境要求如下: (1)系统开发平台:MyEclipse 8.5。
(2)数据库管理系统软件:SQL Server 2008。 (3)运行平台:Windows 8。 (4)Java开发包:JDK 5.0以上。 (5)分辨率:800×600以上。
(6)GUI开发包:Swing。
3
第二章 数据库分析与设计
2.1 数据库分析
在开发图书馆管理系统时,考虑到图书量大,数据库维护大的特点,选用SQL Server 2008作为数据库管理系统。在SQL Server 2008中新增一个数据库,其数据库名为
db_library_Data。数据库中可以包含图书信息、图书类别信息、图书借阅信息、操作员信息、图书订购信息及读者信息等实体,用来存储不同的信息。
2.2 数据库概念设计
本系统一共设计规划出6个实体,分别是图书类别信息实体、图书信息实体、读者信息实体、操作员实体、图书借阅信息实体以及图书订购信息实体。
图书的类别有很多,因此可以建立一个图书馆类别信息表,专门用来保存图书的类别信息。同时因为每种类别的书籍阅读时间有所不同,所以需要在类别表中保存该类别可借天数信息。图书类别信息实体E-R图如图2.1所示。
图2.1 图书类别信息实体E-R图
对于图书馆来说最重要的就是要管理其下的书籍,所以需要建立一个图书信息表,用来保存图书的所有信息。图书信息实体E-R图如图2.2所示。
图2.2 图书信息实体E-R图
要想在图书馆借书首先需要进行登记并交付押金。领取读书卡才能借书。所以需要建
4
立一个读者信息表来保存图书馆的所有读者的登记信息。读者信息实体E-R图如图2.3所示。
图2.3 读者信息实体E-R图
图书馆里一般有一个以上的系统操作员,需要建立一个操作员信息表,用来保存操作员的身份信息。操作员信息实体E-R图如图2.4所示。
图2.4 操作员信息实体E-R图
图书馆最大的功能就是能够借书,这时需要建立一个图书借阅信息表,用来保存读者的借书信息。图书的借阅信息实体E-R图如图2.5所示。
图2.5 图书的借阅信息实体E-R图
图书馆除了借书,还需要到出版社或其他代理商订购新书,这是需要建立一个图书订
5
购信息表,用来保存所有的订购信息。图书订购信息实体E-R图如图2.6所示。
图2.6 图书订购信息实体E-R图
2.3 数据逻辑结构设计
根据设计好的各实体E-R图创建数据库的逻辑结构,数据库各表的结构如下: (1)图书类别信息采表用来储存所有的图书类别信息,包括图书类别编号、图书类别名称、可借天数以及迟还一天的罚款数目4个字段。该表的逻辑结构如表2.1所示。
表2.1 图书类别信息表
字 段 名
id typeName days fk
数 据 类 型 整数(int) 文本(varchar) 整数(int) 浮点数 是 否 主 键
是 否 否 否 描 述 图书类别编号 图书类别名称 可借天数
迟还一天的罚款数目
(2)图书信息表用来储存所有的图书信息,包括图书编号、类别编号、图书名称、作者、译者、出版社、出版日期以及书籍价格8个字段。该表的逻辑结构如表2.2所示。
表2.2 图书信息表
字 段 名
ISBN typeId bookname writer translator publisher date price
数 据 类 型 文本(varchar) 整数(int) 文本(varchar) 文本(varchar) 文本(varchar) 文本(varchar) 日期时间(datetime) 金钱货币(money) 是 否 主 键
是 否(外键)
否 否 否 否 否 否 描 述 图书编号 类别编号 图书名称 作者 译者 出版社 出版日期 书籍价格
(3)读者信息表用来储存所有的读者信息,包括读者姓名、性别、年龄、证件号码、会员证有效日期、最大借书量、电话号码、押金、证件类型、职业、读者编号以及办证日期12个字段。该表的逻辑结构如表2.3所示。
6
表2.3 读者信息表
字 段 名
name sex age identityCard
date maxNum tel keepMoney
zj zy ISBN bztime
数 据 类 型 文本(varchar) 文本(varchar) 整数(int) 文本(varchar) 日期时间(datetime)
整数(int) 文本(varchar) 金钱货币(money)
整数(int) 文本(varchar) 文本(varchar) 日期时间(datetime) 是 否 主 键
是 否(外键)
否 否 否 否 否 否 否 否 是 否 描 述 读者姓名 读者性别 读者年龄 证件号码 会员证有效日期 最大借书量 电话号码 押金 证件类型 职业 读者编号 办证日期
(4)操作员信息表用来保存操作员信息,包括操作员编号、用户名、性别、年龄、证件号码、工作时间、电话号码、是否为管理员、密码9个字段。该表的逻辑结构如表2.4所示。
表2.4 操作员信息表
字 段 名
id name sex age identityCard workdate tel admin password
数 据 类 型 整数(int) 文本(varchar) 文本(varchar) 整数(int) 文本(varchar) 日期时间(datetime) 文本(varchar) 整数(int) 文本(varchar) 是 否 主 键 是(自动递增)
否 否 否 否 否 否 否 否 描 述 操作员编号 用户名 性别 年龄 证件号码 工作时间 电话号码 是否为管理员
密码
(5)图书借阅信息表用来保存所有图书的借阅信息,包括借阅编号、书籍编号、操作员编号、读者编号、是够归还、借书日期以及应还日期7字段。该表的逻辑结构如表2.5所示。
表2.5 图书借阅信息表
字 段 名
id bookISBN operatorId readerISBN isback
数 据 类 型 整数(int) 文本(varchar) 整数(int) 文本(varchar) 整数(int)
7
是 否 主 键 是(自动递增) 否(外键) 否(外键) 否(外键)
否 描 述 借阅编号 书籍编号 操作员编号 读者编号 是否归还
}
ResultSet rs = Dao.executeQuery(sql);//执行查询 ……//插入数据,关闭连接
对书籍编号进行检测,一般是在操作员输入完书籍编号,并准备输入其他信息时来完成。这是需要新建一个ISBNFFocusListener监听类,该类继承了FocusAdoper类,并实现其中的focusLost,其实现代码如下:
class ISBNFocusListener extends FocusAdapter {
}
public void focusLost(FocusEvent e){ }
if(!Dao.selectBookInfo(ISBN.getText().trim()).isEmpty()){ JOptionPane.showMessageDialog(null, \添加书号重复!\ }
return;
3.5.3 图书信息添加
要添加书籍信息,首先要在Dao中添加一个Insertbook方法,通过该方法来接受用户输入的所有书籍信息,然后执行插入操作。其主要方法如下:
public static int Insertbook(String ISBN,String typeId,String bookname,
String writer,String translator,String publisher,Date date,Double price){ int i=0; try{
String sql=\ tb_bookInfo(ISBN,typeId,bookname,writer,translator,\
\
values('\
\
i=Dao.executeUpdate(sql);//执行插入操作 }
}
……
18
3.5.4 图书修改信息
修改图书信息同保存图书信息非常类似,首先在Dao中添加一个方法Updatebook。通过该方法来接收图书修改表单中提交的书籍信息。其代码如下:
public static int Updatebook(String ISBN,String typeId,String bookname,
String writer,String translator,String publisher,Date date,Double price){ int i=0;//更新记录数
try{ String sql=\
typeId='\
writer='\translator='\
publisher='\
date='\
price=\
i=Dao.executeUpdate(sql);//执行更新 } …… }
修改图书信息,是通过单击修改按钮执行的,上面我们已经为修改按钮注册了一个监听器,其对应的监听器类为UpdateBookActionLinter。下面来实现该监听器类,其实现代码如下:
class UpdateBookActionListener implements ActionListener {
public void actionPerformed(final ActionEvent e) {
int i=Dao.Updatebook(ISBNs, bookTypes, bookNames, writer, translators,publishers,Date.valueOf(pubDates),Double.parseDouble(prices));
if(i==1){//如果返回更新记录数为1,表示修改成功
JOptionPane.showMessageDialog(null, \修改成功\
Object[][]results=getFileStates(Dao.selectBookInfo());//重新获得书籍信息
DefaultTableModel model=new DefaultTableModel();//获得表格模型 table.setModel(model);//设置表格模型
model.setDataVector(results, columnNames);//设置模型数据和列名
19
}
} }
3.6 读者信息管理模块
读者信息管理模块包含两个子模块,分别是读者信息添加和读者信息修改与删除。其中读者信息添加模块用来录入新的读者信息,读者信息修改与删除模块用来修改和删除已有的读者信息。其系统运行界面如图3.5所示。
图3.5 读者信息管理模块运行界面
3.6.1 读者信息添加
要添加读者信息,首先要在Dao中添加一个InsertReader方法,通过该方法来接受用户输入的所有读者信息,然后执行插入操作。其主要方法如下:
public static int InsertReader(String name,String sex,String age,String
identityCard,Date date,String maxNum,String tel,Double keepMoney,String zj,String zy,Date bztime,String ISBN){ int i=0;
try{String sql=\
tel,keepMoney,zj,zy,bztime,ISBN)values('\identityCard+\,'\
'\
System.out.println(sql);
i=Dao.executeUpdate(sql);//执行插入操作
20
}
…… }
3.6.2 读者信息修改与删除
修改与删除读者信息同保存读者信息非常类似,首先在Dao中添加两个方法UpdateReader及DelReader。通过这两个方法来接收图读者修改表单中提交的读者信息。其主要代码如下:
public static int UpdateReader(String id,String name,String sex,String age,String
identityCard,Date date,String maxNum,String tel,
Double keepMoney,String zj,String zy,Date bztime,String ISBN){ int i=0;
try{String sql=\
name='\
age='\date='\tel='\zj='\
bztime='\
i=Dao.executeUpdate(sql);// 执行更新 }catch(Exception e){ }
Dao.close();//关闭连接
e.printStackTrace();
…… }
public static int DelReader(String ISBN){
int i=0;
try{ String sql=\
//System.out.println(sql); i=Dao.executeUpdate(sql);
21
}catch(Exception e){
e.printStackTrace();
}
Dao.close();//关闭连接
…… }
3.7 图书订购管理模块
图书订购管理模块包含两个子模块,分别是新书订购和验收新书。其中新书订购模块用来录入新的图书信息,验收新书模块用来验收新书信息。其系统运行界面如图3.6和图3.7所示。
图3.6 新书订购管理界面 图3.7 图书验收界面
3.7.1 新书订购管理
要添加新书订购信息,首先要在Dao中添加一个InsertBookOrder方法,通过该方法来接受用户输入的所有新书订购信息,然后执行插入操作。其主要方法如下:
public static int InsertBookOrder(String ISBN,Date date,String number,String
operator,String checkAndAccept,Double zk){
int i=0;
try{String sql=\
tb_order(ISBN,date,number,operator,checkAndAccept,zk) values('\ndAccept+\
i=Dao.executeUpdate(sql);//执行插入
}
22
…… }
3.7.2 图书验收
添加完图书订购信息后,我们还要对图书进行验收,首先要在Dao中添加一个SelectBookOrder方法,通过该方法来查找出所有录入的新书订购信息,再添加一个UpdateCheckBookOrder方法,通过该方法来对图书进行验收。其主要方法如下:
public static List selectBookOrder(boolean b) {
}
public static int UpdateCheckBookOrder(String ISBN){
int i=0;
23
List list=new ArrayList();
String sql = \ResultSet rs = Dao.executeQuery(sql);//执行查询 try {
while (rs.next()) { }
Order order=new Order();
order.setISBN(rs.getString(\order.setDate(rs.getDate(\order.setNumber(rs.getString(\order.setOperator(rs.getString(\order.setZk(\
order.setCheckAndAccept(\list.add(order);
} catch (Exception e) { }
Dao.close();//关闭连接 return list;
e.printStackTrace();
try{
String sql=\
checkAndAccept=0 where ISBN='\
}
i=Dao.executeUpdate(sql);//执行更新 }catch(Exception e){ }
Dao.close();//关闭连接 return i;
e.printStackTrace();
3.8 图书借阅管理模块
图书借阅管理模块包含三个子模块,分别是新书借阅、图书归还和图书搜索。其中图书借阅模块用来录入读者信息及所借阅的图书的信息,图书归还模块用来显示归还读者信息及所借阅的图书信息,图书搜索模块用来为读者提供图书搜索功能。其系统运行界面如图3.8、3.9和3.10所示。
图3.8 图书借阅管理界面 图3.9 图书会还管理界面
图3.10 图书查询界面
24
3.8.1 图书借阅
当读者想要对某图书进行借阅操作时,图书馆管理员必须将读者信息及所借阅的图书信息输入到数据库,此时,需要在Dao中添加一个InsertBookBorrow方法,通过该方法录入读者信息及所借阅的图书信息。其主要方法如下:
public static int InsertBookBorrow(String bookISBN,String readerISBN,String
operatorId,Timestamp borrowDate,Timestamp backDate){ int i=0;
try{String sql=\
borrowDate,backDate)values ('\\\
i=Dao.executeUpdate(sql);//执行插入
} …… } 3.8.2 图书归还
当读者到图书馆还书时,图书馆管理员需要通过输入读者信息查找出读者所借阅的图书信息,此时,需要在Dao中添加一个selectBookBack方法,通过该方法查询出读者所借图书的信息。其主要方法如下:
public static List selectBookBack(String readerISBN) {
List list=new ArrayList();
String sql = \
a.bookname, a.typeId ,b.id,b.operatorId, b.borrowDate, b.backDate, c.name AS readerName,
c.ISBN AS readerISBN FROM tb_bookInfo a INNER JOIN tb_borrow b ON
25
a.ISBN = b.bookISBN INNER JOIN
tb_reader c ON b.readerISBN = c.ISBN WHERE (c.ISBN = '\System.out.println(sql);
ResultSet rs = Dao.executeQuery(sql);//执行查询 …… } 3.8.3 图书搜索
管理员可以通过图书搜索模块对图书馆所有的图书信息进行搜索。为了查询方便,可以通过图书名称进行查询,也可以通过图书作者进行查询。此时,需要在Dao中添加selectbookmohu和selectbookmohuwriter这两个方法,通过这两个方法查询出图书信息。其主要方法如下:
public static List selectbookmohu(String bookname){
List list=new ArrayList();
String sql=\
where bookname like '%\
System.out.print(sql);
ResultSet s=Dao.executeQuery(sql);//通过图书名称执行查询 ……
public static List selectbookmohuwriter(String writer){
List list=new ArrayList();
String sql=\
where writer like '%\
} }
System.out.print(sql);
ResultSet s=Dao.executeQuery(sql);//通过图书作者执行查询 ……
26
3.9 系统维护模块
系统维护模块包含两个子模块,分别是更改口令和用户管理。其中更改口令模块用来更改管理员登陆系统口令,用户管理模块用来添加新的用户及对用户进行修改和删除。其系统运行界面如图3.11、3.12和3.13所示
图3.11 更改密码界面
图3.12 用户信息添加界面 图3.13 用户信息修改与删除界面
3.9.1 更改口令
本图书馆管理系统是需要密码才能进入的,而且每个操作员都可以根据自己的喜好更改自己的密码,此时,需要在Dao中添加Updatepass方法,通过该方法来尽心口令的更改。其主要方法如下:
public static int Updatepass(String password,String name){ int i=0;
try{String sql=\
\
i=Dao.executeUpdate(sql);//执行更新 }
27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 图书馆
- 七五普法专题活动练习题(556)
- ansysworkbench菜单翻译
- 广告牌施工方案
- 最新人教版小学语文四年级上册语文词语练习
- 佛山联合验收办事指南
- 迈普MyPower S3000系列以太网交换机配置手册
- 性格摘要
- 产房应急演练
- 17建设工程设备采购合同0518
- 食品分析计算题汇总
- 汽车故障诊断系统的设计与实现
- 2015高考二模 内蒙古包头一中2015届高三第二次模拟考试文科综合
- 简阳市新市学区2012-2013学年七年级上期中考试数学试题
- 15.危险性较大工程清单(附录A)
- 十一五园区发展调研
- 人教版《道德与法治》七年级上册(部编版)最新精品教案6.1 走近老
- 人教版物理八年级下学期期中试题(含解析)
- 2018年湖南省娄底市中考数学试卷(含答案解析版)
- 英语词汇学各章节重点、词汇解释、阅读及试卷
- 护士执业资格考试--练习题-36