图书馆管理系统报告.docx
- 文档编号:23744719
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:112
- 大小:392.70KB
图书馆管理系统报告.docx
《图书馆管理系统报告.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统报告.docx(112页珍藏版)》请在冰豆网上搜索。
图书馆管理系统报告
Java课程设计
题目:
图书管理系统
专业:
计算机科学与技术
班级:
******
学号:
**********
姓名:
*********
2012年1月10日
摘要
随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。
学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。
我们本次的Java课程设计的最终目标是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员日志、管理员添加、管理员退出、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、书籍借阅与归还等功能。
因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用Java编程为我们本次程序的编写提供了方便。
在设计中我们主要进行了数据库及类的设计,把整系统分成了15个类和5个表。
通过应用awt、swing、sql、util等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过建立JDBC-ODBC桥接器连接到Access数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。
本文主要分为绪论、系统功能介绍、数据库需求分析、系统功能实现、结论5大块。
在绪论中介绍了本次课设选题的缘由及思想。
系统功能介绍中详细介绍了本图书管理系统的整体思想及其具体功能。
在数据库需求分析中详细说明了数据库的需求分析、概念设计及表的设计。
在系统功能实现中主要通过抓图来体现设计的结果。
总之,我们的整体设计思想均在报告中体现。
第1章绪论
随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。
与此同时,为了管理大量的图书,图书管理系统也大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题。
现已有的图书管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理和读者的查询,图书管理系统为管理员提供了管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能。
大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。
设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总。
而这就是我们所说的数据库设计的第一阶段:
需求分析。
在这一阶段除了对具体情况诸如实行对管理员的管理、对读者的管理、书籍管理、书籍的借阅与归还、借阅超时等功能的实现,还需要对用户的需求进行调查和分析,否则就失去了设计这个系统的意义了。
对于界面的设计我们应该追求的是:
美观、易读性强、清晰度高;原则是:
不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃对易读性的追求。
再设计的过程中我们应该根据实际的情况进行设计,做到具体问题具体分析,不刻意追求原则。
在对应的界面与Access数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。
并运用捕捉异常的方法,将异常信息显示出来。
实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成。
对于读者而言他们的需求是了解图书的基本情况,自己的借阅情况。
总而言之就是实现对各个信息表的查询。
对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、Access数据库表的创建、系统的维护等等,这些都需要设计和实现的。
第2章系统功能介绍
2.1系统功能总框图
图书馆管理系统功能总框图,如图2-1所示。
图2-1系统功能框架图
2.2模块功能介绍
2.2.1管理员模块
1.管理员登陆
此模块主要是实现进入各个模块如修改密码、管理员添加、管理员切换、读者添加、读者修改、读者查询、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。
2.修改密码
此模块可以修改管理员的密码。
3.管理员添加
此模块功能是增加新管理员的登陆帐户。
在图书馆管理系统中必须有每一个管理者的帐户让其可以正常进行新图书证的办理、借阅书籍和归还书籍等系统管理。
所以在管理员功能模块中增加了管理员添加这个功能。
4.管理员切换
此模块的主要功能是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就可以在管理员切换窗口中的用户名和密码两栏中通过输入自己的用户名和密码直接进入该系统。
2.2.2读者管理
1.读者添加
此模块主要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。
其中信息分别包括图书证号、学生姓名、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回。
2.读者信息与借阅查询
此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。
本模块通过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级。
此处可分别实现对该功能的修改、重置、返回。
3.删除或修改肚子信息
此模块主要可对所要了解的读者信息。
即把读者的信息从数据库调出来,显示在该窗口中的文字区域。
查询方式分别有按图书证查询、按姓名查询、按班级查询、按年级查询,并可通过办理入相应的关键字,更加缩小查询范围。
此处可实现查询和返回功能。
2.2.3书籍管理模块
1.新书入库
此模块主要的实现功能是将新来的图书输入到图书馆管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有
一个更详细的了解。
其中包括如下信息:
新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。
2.书籍查询
在图书馆管理系统中书籍查询是最基本的功能,读者可以根据自己的需求来查询想要借阅的书籍。
本系统是用Java应用程序和Access数据库一起开发的其中利用Java来编程实现功能的代码和布置运行界面。
界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按入库时间查询等基础查询。
选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就可以在显示文本区中显示出来。
用户可以根据显示的信息得知自己所要借阅书籍的情况。
2.2.4书籍借阅与归还
1.借阅书籍功能介绍
此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。
输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。
通过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、是否借出、价格)。
借阅成功后,将该图书证号、书号、借阅日期、应还日期信息插入到数据库的表中进行记录。
2.归还书籍功能介绍
此模块主要实现读者凭所要归还图书的图书证号归还图书。
输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。
还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。
2.2.5借阅超时
此模块主要实现显示过期图书的信息(包括图书编号、书号、借阅日期、应还日期)提醒读者还书。
第3章数据库设计
在此图书馆管理系统中,使用到了一个重要的连接,即与数据库Accesss相连。
数据库中存有图书馆中所信息,包括读者信息、管理员资料、借阅与退还记录。
所有与管理有关的数据皆在其中,是保证系统能够正常实现各种功能的一架桥。
3.1数据库需求分析
⒈Admin表,即管理员表,记录了用户名和密码。
⒉reader表,即管理日志表,记录了书号、书名、图书证号、借/还、操作日期、已付款额。
⒊book表,即图书表,记录了书号、书名、作者、出版社、入库时间、是否借出、价格。
⒋borrowbook表,即借阅表,记录了图书编号、书号、借阅日期、应还日期。
⒌lossbook表,即读者表,记录了图书编号、姓名、性别、系别、班级。
3.2数据库概念结构设计
图书馆管理系统E-R图,如图3-1。
图3-1图书馆管理系统E-R图
3.3数据库表的设计
⒈Admin表
表中记录了可以使管理员进入该系统的用户名及密码,如表3-1所示。
表3-1管理员信息表
字段名称
数据类型
长度
备注
用户名
文本
10
密码
文本
15
⒉reader表
表中记录读者的相关信息(如学号、姓名、班级、系别等等),如表3-2所示。
表3-2读者表
字段名称
数据类型
长度
备注
图书证号
文本
10
姓名
文本
15
性别
文本
15
系别
文本
15
班级
文本
15
⒊book表
表中记录了库内所有图书的所有资料,如表3-3。
表3-3图书表
字段名称
数据类型
长度
备注
书号
文本
10
书名
文本
15
作者
文本
15
出版社
文本
15
入库时间
DATE
15
数量
文本
10
价格
文本
10
⒋borrowbook表
表中记录库中所有读者的相关信息,如表3-4所示。
表3-4借阅表
字段名称
数据类型
长度
备注
图书编号
文本
10
书号
文本
15
借阅日期
DATE
15
应还日期
DATE
15
⒌lossbook表
表内记录了丢失图书的情况,如表3-5所示。
表3-5丢失表
字段名称
数据类型
长度
备注
图书编号
文本
10
书号
文本
15
借阅日期
DATE
15
应还日期
DATE
15
丢失日期
DATE
15
第4章系统功能实现
4.1管理员模块
4.1.1管理员登陆
此模块是整个系统最主要的部分,管理员可以通过此模块实现进入其余各个模块如修改密码、管理员添加、管理员切换、读者添加、读者修改、读者查询、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出等功能。
图书管理系统管理员界面如图4-1所示。
图4-1图书管理系统管理员
主要程序代码如下:
packagenet.sfte.htlibrary.database;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
publicclassAdminOperation{
publicAdminOperation(ConnectionaConnection){
con=aConnection;
if(con==null)
con=HtConnection.getConnection();
}
publicbooleandeleteAdmin(Adminadmin){
try{
PreparedStatementpstmt=con.prepareStatement("DELETEFROMadmin"
+"WHEREadmin_name=?
");
pstmt.setString(1,admin.getName());
intresult=pstmt.executeUpdate();
if(result==1)
returntrue;
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;
}
}
publicbooleanupdateAdmin(Adminadmin){
try{
PreparedStatementpstmt=con.prepareStatement("UPDATEadmin"
+"SETphone=?
email=?
"+"WHEREadmin_name=?
");
pstmt.setString(1,admin.getPhone());
pstmt.setString(2,admin.getEmail());
pstmt.setString(3,admin.getName());
intresult=pstmt.executeUpdate();
if(result==1)
returntrue;
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;
}}
publicbooleanaddAdmin(Adminadmin){
try{
PreparedStatementpstmt=con.prepareStatement("INSERTINTOadmin"
+"VALUES(?
?
?
?
?
?
)");
pstmt.setNull(1,java.sql.Types.NULL);
pstmt.setString(2,admin.getName());
pstmt.setString(3,newString(admin.getPassword()));
pstmt.setDate(4,newjava.sql.Date(admin.getCreateDate().getTime()));
pstmt.setString(5,admin.getPhone());
pstmt.setString(6,admin.getEmail());
intresult=pstmt.executeUpdate();
if(result==1)
returntrue;
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;}}
privateConnectioncon=null;}
4.1.2修改密码
此模块管理员可以自行修改密码,实现功能如下图4-2。
图4-2修改密码
主要程序代码如下:
packagenet.sfte.htlibrary.database;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
publicclassAdminPasswordUpdate{
publicstaticbooleanupdatePassword(Adminadmin){
Connectioncon=HtConnection.getConnection();
Stringname=admin.getName();
Stringpassword=newString(admin.getPassword());
try{
PreparedStatementpstmt=con
.prepareStatement("UPDATEadminSETpassword=?
"
+"WHEREadmin_name=?
");
pstmt.setString(1,password);
pstmt.setString(2,name);
intamounts=pstmt.executeUpdate();
//passwordupdatesucceed
if(amounts==1)
returntrue;
else
returnfalse;
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
con.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnfalse;
}
}
4.1.3管理员添加
功能介绍:
该程序主要实现管理员的添加,以便于让实行对图书管理员的管理。
按照标签提示输入信息,然后点击确定按钮。
首先判断管理员名文本框中输入的文本信息是否符合规则,如果不符合规则,则提示错误,如果符合规则,再到Admin表中进行查询,如果相同则用提示框提示错误。
若无相同则可注册。
但还需要保证前后两次的密码相同,才能成功注册,管理员登陆窗口如图4-3所示。
图4-3管理员添加成功界面
主要程序代码如下:
packagenet.sfte.htlibrary.ui;
importjava.awt.BorderLayout;
importjava.awt.Component;
importjava.awt.Dimension;
importjava.awt.Frame;
importjava.awt.GridBagLayout;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.text.DateFormat;
importjavax.swing.BorderFactory;
importjavax.swing.Box;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JFormattedTextField;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JScrollPane;
importjavax.swing.JTable;
importjavax.swing.JTextField;
importjavax.swing.ListSelectionModel;
importjavax.swing.SwingUtilities;
importnet.sfte.htlibrary.database.Admin;
importnet.sfte.htlibrary.database.AdminOperation;
importnet.sfte.htlibrary.database.HtConnection;
publicclassAdminSettingDialogextendsJPanel{
privatestaticfinallongserialVersionUID=1L;
publicAdminSettingDialog(){
setLayout(newBorderLayout());
prepareDatabase();
finalAdminOperationadminOperation=newAdminOperation(con);
addButton=newJButton("添加");
addButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
addButton.setEnabled(false);
modifyButton.setEnabled(false);
deleteButton.setEnabled(false);
saveButton.setEnabled(true);
cancelButton.setEnabled(true);
adminName.setEditable(true);
adminName.setText("");
createdDate.setValue(newjava.util.Date());
phoneField.setEditable(true);
phoneField.setText("");
emailField.setEditable(true);
emailField.setText("");
oldPassword.setEditable(true);
oldPassword.setText("");
newPassword.setEditable(true);
newPass
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 报告