资源描述
学校代码:10410
序 号:1174
本 科 毕 业 论 文
谁有个人图书管理系统源代码JAVA版本_baidu知道
1个回复 - 最新回复: 6月19日
最好答案: .net
题目:基于JAVA学校图书馆管理系统设计和实现
学 院:计算机和信息工程学院
姓 名:陈 操
学 号:1174
专 业:计算机科学和技术
年 级:计科051班
指导老师:胡亚平老师
二00九 年 五 月
摘 要
伴随计算机及网络技术飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化作用也越来越大。从而使我们从繁杂事务中解放出来,提升了我们工作效率。
现在学校图书馆借阅工作部分还是手工管理,工作效率很低,而且不能立即了解图书种类和学生们比较需求图书等,不能愈加好适应该前学生借阅要求。手工管理还存在这很多弊端,因为不可避免人为原因,造成数据遗漏、误报。计算机信息化管理有着储存量大,速度快等很多优点,提供给我们处理信息立即快捷,所以我们利用计算机提供给我们信息对学生们借阅过程形成一整套动态管理。
本系统将会包含到图书馆日常管理工作基础常见细节,诸如新图书入库登记,图书馆全部书籍分类管理,图书查询,图书借阅、退还手续登记,费旧图书清理撤消等,本系统所要实现这些功效基础上涵盖了图书馆日常管理工作,基础能够满足校园图书馆工作人员管理需要。
在对本系统具体开发过程当中,将采取Java语言进行开发,以Access实现后台数据库,本系统是完全基于图形化用户界面(GUI)单机版本。
【关键字】信息化 软件工程 软件生命周期 图形化用户界面
Abstract
The full name of our System is: The Management Information System of Campus’s Library. At present, the computer technology is developing ever-growing, and the campus’s information construction also have pushing on, by contrast, the method of management in many university library is still by man, the library’workers must face to the large number of books, and also face to fall into the trouble. Actually, the work can be done by the computer which have a management information system. Then the heavy work will not be done by people, the library’workers can use computer to manage the books, and the everyday work will be easy.
This is the goal which our system want to achieve finally.
The principle of development to our system will be following with Software Engineering, we use the traditional model which be called Waterfall, and the course of development will be divided into six stage. We will develop the system in sequence.
Our system contains many operations about library’s everyday work, such as Register New Books, Classify Books according to their subjects, Find Books, Dispose old books, and so on, our system can finish all of the work, and can meet the requirements of the library’sworkers.
During the development of our system, we use the tool of JAVA to develop it, our system is on the basis of the Access Database.
【KeyWords】Management Information System, Software Engineering, Ja
目 录
一 引论 1
(一)问题定义 1
(二) 可行性分析 2
(1) 技术可行性 2
(2) 经济可行性 3
二 需求分析 3
数据库需求分析 3
(1) 数据流图 4
(2) 数据库逻辑结构设计 5
(3) 数据库概念结构设计 6
三 系统设计 7
(一)总体设计 7
(二)具体设计 8
(1)各个模块介绍 8
(2)步骤图 9
(3)数据字典 10
(4)代码实现 11
四 总 结 21
五 致 谢 22
六 参考文件 23
一 引论
(一)问题定义
首先,图书馆管理直接关系到我们大学生怎样愈加好使用图书,更充足利用现有资源学习,提升本身素质。针对当今大学图书馆藏书越来越多,学生借书越来越频繁,图书管理较为繁琐,图书馆管理工作人员付出工作时间越来越多,得到效率却很低这个现实状况。为提升工作效率,减轻图书馆工作人员工作负担,决定开发学校图书馆管理系统软件,以帮助愈加好实现图书馆管理,让我们能更便捷借阅图书,让老师能花最少时间办理好借阅图书手续。
开发此图书馆管理系统软件,以供图书馆工作人员管理使用及学生和老师查询或借书使用,方便操作者随时添加、查询、修改等。为了我们提升软件开发能力,学习JAVA编程技巧,提升工作设计思想,经过此次软件工程开发,开发人员和指导老师,能从中学习知识吸收经验,在技术和软件思想上同时得到锻炼和提升,从而使总体水升到一个新高度。
开发此图书馆管理系统软件,也是对实现数字化图书馆管理支持,现今各大学普遍存在着一个现象,图书借阅手续全部是由专门老师来实现办理,每当借阅高峰期时,排队借书场面屡见不鲜,这么即花费时间又使原本不太大借书大厅拥挤不堪。图书馆管理系统实现,能够着眼于数字化借阅,简化学生图书查询步骤,简化图书外借登记手续,即提升借阅效率又可实现图书借阅完整进出统计,确保图书合理使用,让广大师生受益。
(二) 可行性分析
(1) 技术可行性
图书借阅系统建立,需要进行用户需求调查和分析,以确定系统目标,提出处理问题具体方案,这是系统建设关键步骤。要想使学生能够有效借阅,功效上对系统要求是全方面。所以对用户需求可分为三个方面:首先是图书管理人员对需要进行图书借阅同学进行信息注册,取得借书证;二方面是学生经过计算机进行图书浏览;三方面是学生经过计算机进行图书借阅。
这三个方面形成了图书借阅一个工作整体,利用计算机自动化处理,可方便快捷地共享信息、交流信息,高效地协同工作。
在软硬件方面对系统需求,软件要求易学,界面友好,轻易掌握,能够很简单方便进行图书借阅信息管理。硬件配置要求不能太高,这么能够很好适应该前学校图书馆借阅。
图书馆长久人工管理工作所投入人力物力财力是相当之多,本系统建设成功,将在这多个方面大大节省资源,更关键是,系统带来轻松、便捷,使图书馆日常管理工作不再那么烦琐。从个人价值上看,本系统开发成功亦是对本人长久学习结果一个检验和一次实践,在个人能力水平上得到了很好锻炼和提升,其价值也是显著。
因为本系统管理对象单一,全部是校图书馆里书,且每个数据内容含有较强关联性,包含计算过程不是很复杂。所以,比较适合于采取数据库管理。且学校用于图书馆管理全部是个人计算机,在存放量、速度方面全部能满足数据库运行要求。在技术难度方面,因为有指导老师指导和相关参考文件,尤其是网上资料,尤其是参考其它程序功效,所以完全能够实现。
本系统设计是在Windows XP汉字版操作系统环境下,使用 Java汉字版开发成功。数据库是MIS中关键支持技术,在MIS开发过程中,怎样选择数据库管理是一个关键问题,现在,数据库产品较多,每种产品全部含有各自特点和适用范围,所以,在选择数据库时,应考虑数据库应用特点及适用范围,本系统所使用后台数据库是Access数据库。
本系统选择开发语言介绍以下:
选择了美国SUN企业推出Java开发工具。Java 是第一个全方面支持面向对象程序设计数据库语言工具。Java关键特点有:
1、语言是简单、小型、结构中性
2、强大数据库开发功效
3、扩大了对SQL语言支持
4、是面向对象、高性能、多线程
5、是分布式、面向网络
6、含有平台无关性
7、语言含有可移植性、是动态
(2) 经济可行性
此系统是由在校大学生开发学校图书馆管理信息系统。此系统在开发方法上对系统需求,因为学校图书馆借阅是一个无商业利益,所以系统设计开发周期要短,在短时间内完成,降低开发成本,提升开发效率,方便、简单、实用是作为系统开发指导思想。
本系统完全能够在校园图书馆管理工作中发挥关键作用,而作为个人,能在软件开发能力方面得到锻炼和提升也是十分关键,本系统在此不重视担何社会经济目标。
二 需求分析
设计数据库系统时,应该充足了解用户各方面需求,包含现有和未来可能增加需求,数据库设计通常包含以下多个步骤:
1、数据库需求分析
2、数据库概念结构设计
3、数据库逻辑结构设计
数据库需求分析
用户需求具体表现在多种信息提供,保留,更新和查询。这就要求数据库结构能充足满足多种信息输入和输出。在仔细分析调查相关图书馆管理信息需求基础上设计出图所表示数据步骤。
(1) 数据流图
(1)、顶 层 数 据 流 图
查 询
图书名/号
图
书
库
图书名/号
借 书
注册信息
借书证
学生注册
图书名/号
学
生
库
图书名/号
还 书
学 生
借 书 证
图3-1 数据流图
(2)、0层数据流图
毕业生借书证注销
借书证
借
书
库
将借书证设置为借书状态
可借书
学生信息是否有效
有 效
图书名/号
图书名/号
图书名/号
借书证
无效
办理借书证
有效
还
书
库
可还书
目前日期
图3-2 数据流图
针对图书馆管理系统需求,经过对图书馆管理工作过程内容和数据步骤分析,设计出以下数据项
①、图书入库信息,包含数据项有:图书编号、书名、图书类别、出版日期、出版社名称、作者、定价、入库总数。
②学生信息,包含数据项有:学生学号、姓名、性别、系别、班级
③、图书查询信息,包含数据项有:图书编号、书名、图书类别、出版日期、出版社名称、作者、定价、入库总数。
④、借书信息,包含数据项有:图书编号、书名、学生学号、姓名、系别、班级、是否归还。
(2) 数据库逻辑结构设计
图书馆管理系统中数据库各个表格设计结果以下:
(1)、图书入库信息表
列名
数据类型
说明
BookNo
Char
图书编号
BookName
Text
书名
BookClass
Text
图书类别
BookPub
Text
出版社
Author
Text
作者
BookTotal
Int
入库总数
Price
Currency
图书定价
Isorin
Boolean
是否在书库中标志
Bookbirth
Date
图书入库日期
Bookdemo
Text
图书简单介绍
表3-1 图书入库信息表
(2)、学生信息表
列名
数据类型
说明
StuNO
Int
学生学号,唯一
StuNane
Char
学生姓名
StuSex
Boolean
性别
StuSpecial
Text
学生系别
StuClass
Char
学生所在班级
表3-2学生信息表
(3)、用户信息表
列名
数据类型
说明
UserName
Char
用户姓名
Password
Char
用户密码
UserType
Char
用户类型
表3-3 用户信息表
(4)、图书信息表
列名
数据类型
说明
BookNO
Int
图书编号
BookName
Text
图书名称
BookTotal
Int
剩下库存量
BookDate
Date
借书日期
ReaderNo
Int
图书证号码
表3-4图书信息表
(3) 数据库概念结构设计
得到上面数据项就能够设计出以下多种实体和它们关系。
设计计划出实体有:图书信息实体、学生信息实体、管理员信息实体。
E-R图以下:
学生
姓名
学生学号
系别
班级
性别
借
图书
书名
入库总数
作者
出版社名称
出版日期
定价
图书类别
图书编号
办理
管理员
姓名
编号
性别
图3-3 E-R图
三 系统设计
(一)总体设计
本课题设计在充足进行用户需求分析基础上把系统划分为九个子模块:用户登陆、学生注册、图书入库、图书查询、图书删除、图书借阅、办理登记、借书证注销、用户退出。这九个模块之间,紧密结合,共享信息资源,形成一个完美学校图书馆借阅管理处理方案。图4-1
图书馆管理信息系统
图书删除
图书查询
图书入库
图书借阅
办理登记
借书证注销
用户退出
用户登陆
用户注册
读者还书
图4-1 系统功效结构图
(二)具体设计
(1)各个模块介绍
1、 学生注册:工作人员经过本系统对学生进行信息注册,发放借书证;
2、 用户登陆:工作人员用管理员用户登陆,学生用一般用户登陆;
3、 图书入库:工作人员经过本系统输入图书信息;
4、 图书删除:工作人员经过此模块删除无用图书信息;
5、 图书查询:学生们经过此模块来查询自己所需要图书;
6、 读者借书:学生经过此模块来完成借阅图书;
7、 读者还书:学生经过此模块来完成退还图书;
8、 办理登记:图书管理人员经过此模块来完成借书证办理;
9、 借书证注销:图书管理人员经过此模块来完成借书证注销;
10、用户退出:退出此系统。
(2)步骤图
start
学生注册
填写注册表
图书入库
学生库
图书信
息录入
发放借书证
N
借书
还书
图书信息管理
Y
输入图书名/号
图书库
此书是否存在
N
Y
正常借书,并将借书证设置为借书状态
end
图5-1 系统步骤图
(3)数据字典
(1)、名字:注册信息
别名:
描述:
定义:注册信息=学生学号+{ 系+级+班+姓名 }
位置:学生信息表
(2)、名字:图书
别名:图书信息
描述:标识图书部分相关信息
定义:图书信息=书名+作者+出版社名+出版日期+图书编号+图书类别+入库总数+定价
位置:图书信息表
(3)、名字:入库总数
别名:
描述:图书管所买进图书总数
定义:入库总数=1{数字}100
位置:图书信息表
(4)、名字:剩下库存量
别名:
描述:在书被借出时,图书库里所剩图书总数
定义:剩下库存量=1{数字}100
位置:图书信息表
(5)、名字:图书证号码
别名:借书证编号
描述:唯一标识借书证关键字
定义:图书证号码=1{数字}8
位置:图书信息表
(6)、名字:用户姓名
别名:用户名
描述:用户登录名
定义:用户姓名=字母字符+字母数字串
位置:用户信息表
(7)、名字:图书编号
别名:ISBN
描述:图书条形码
定义:图书编号=字符串+字母数字串
字母数字串=0{字母或数字}9
位置:图书信息表
(8)、名字:学生学号
别名:学号
描述:唯一标识学生关键字
定义:学生学号=1{数字}8
位置:学生信息表
(4)代码实现
1、系统默认界面
2、系统登陆界面
部分代码以下:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class 登录 {
JLabel l1=new JLabel("用户名:");
JLabel l2=new JLabel("密 码:");
JLabel l3=new JLabel("请选择用户类型:");
JButton b1=new JButton("确定");
JButton b2=new JButton("取消");
JButton b3=new JButton("新用户注册");
JTextField t1,t2;
t1.setText("");
t1.setEditable(true);
t2.setEditable(true);
t2.setText("");
t2.setEchoChar('*');
JComboBox ch;
ch.add("----------");
ch.add("系统管理员");
ch.add("一般用户");
JPanel p=new JPanel(new BorderLayout());
JPanel g=new JPanel(new GridLayout(4,1));
JPanel j=new JPanel(new FlowLayout());
j.add(b1);
j.add(b2);
j.add(b3);
p.add(j,BorderLayout.SOUTH);}
}
public Login()
{
JLabel l1=new JLabel("用户名:");
JLabel l2=new JLabel("密 码:");
JLabel l3=new JLabel("请选择用户类型:");
JButton b1=new JButton("确定");
JButton b2=new JButton("取消");
JButton b3=new JButton("新用户注册");
t1.setText("");
t1.setEditable(false);
t2.setEditable(false);
t2.setText("");
t2.setEchoChar('*');
ch.add("----------");
ch.add("系统管理员");
ch.add("一般用户");
JPanel p=new JPanel(new BorderLayout());
JPanel g=new JPanel(new GridLayout(4,1));
JPanel j=new JPanel(new FlowLayout());
j.add(b1);
j.add(b2);
j.add(b3);
p.add(j,BorderLayout.SOUTH);
3、登陆后界面
4、图书录入界面
部分代码:
public InputBook(){
JLabel l1=new JLabel("图书编号:");
JLabel l2=new JLabel("图书名称:");
JLabel l3=new JLabel("图书类别:");
JLabel l4=new JLabel("图书出版日期:");
JLabel l5=new JLabel("出版社名称:");
JLabel l6=new JLabel("图书入库总数:");
JButton b1=new JButton("入库登记");
JButton b2=new JButton("重 置");
ch.add("----------");
ch.add("计算机类");
ch.add("医学类");
ch.add("农业类");
ch.add("文学类");
ch.add("工程类");
Container c=f.getContentPane();
c.setLayout(new BorderLayout());
JPanel p=new JPanel(new BorderLayout());
JPanel g=new JPanel(new GridLayout(7,1));
JPanel j=new JPanel(new FlowLayout());
5、图书查询界面
部分代码:
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println("SQLException:"+e.getMessage());
}
try{
Connection conn=DriverManager.getConnection("jdbc:odbc:Library");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from book");
while(rs.next()){
if(t1.getText().equals(rs.getString("BookNo"))){
t2.setText(rs.getString("BookName"));
t3.setText(rs.getString("BookBirth"));
t4.setText(rs.getString("BookTotal"));
t5.setText("");
}
else if(t1.getText().equals("")){
JOptionPane.showMessageDialog(null,"请输入您要查找图书!", "警告",JOptionPane.WARNING_MESSAGE);
break;
}
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,ex.getMessage(), "警告",JOptionPane.WARNING_MESSAGE);
}
6、图书删除界面
部分代码:
//删除图书按钮事件
bt2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent E) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println("SQLException: "+e.getMessage());
}
try{
if(t1.getText().equals("")){
JOptionPane.showMessageDialog(null,"删除失败!请输入您要删除图书", "提醒信息",JOptionPane.INFORMATION_MESSAGE);
}
else{
Connection conn = DriverManager.getConnection("jdbc:odbc:Library");
Statement stmt = conn.createStatement();
if(JOptionPane.showConfirmDialog(null,"单击'是'删除该统计,单击'否'取消该操作!","警告",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION){
String sql = "delete from book where BookNo='"+t1.getText()+"'";
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"该条统计已被删除成功!", "提醒信息",JOptionPane.INFORMATION_MESSAGE);
stmt.close();
conn.close();
7、办理图书证界面
部分代码:
//登记按钮事件
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException ex){
System.out.println("SQLException:"+ex.getMessage());
}
try{
if(t1.getText().equals("")||t2.getText().equals("")||t4.getText().equals("")||t5.getText().equals("")||t6.getText().equals("")){
JOptionPane.showMessageDialog(null,"请输完该学生完整信息!", "警告",JOptionPane.WARNING_MESSAGE);
}
else{
Connection conn=DriverManager.getConnection("jdbc:odbc:Library");
Statement stmt=conn.createStatement();
String sqlstr="insert into student values('"+t1.getText()+"','"+t2.getText()+"','"+gettext()+"','"+t4.getText()+"','"+t5.getText()+"','"+t6.getText()+"')";
stmt.executeUpdate(sqlstr);
stmt.close();
conn.close();
JOptionPane.showMessageDialog(null,"注册登记办理成功!","提醒信息",JOptionPane.INFORMATION_MESSAGE);
}
8、借阅管理界面
部分代码:
public ReadBook(){
JLabel l1=new JLabel("请输入借阅图书学生学号:");
JLabel l2=new JLabel("请输入退还图书学生学号:");
JButton b1=new JButton("借 书");
JButton b2=new JButton("还 书");
Container c=f.getContentPane();
c.setLayout(new BorderLayout());
JPanel p=new JPanel(new BorderLayout());
JPanel g=new JPanel(new GridLayout(2,1));
JPanel p1=new JPanel(new FlowLayout());
JPanel p2=new JPanel(new FlowLayout());
9、借阅管理界面
部分代码:
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent E) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
System.out.println("SQLException: "+e.getMessage());
}
try{
if(t.getText().equals("")){
JOptionPane.showMessageDialog(null,"删除失败!请输入您要注销学生学号!", "提醒信息",JOptionPane.INFORMATION_MESSAGE);
}
else{
Connection conn = DriverManager.getConnection("jdbc:odbc:Library");
Statement stmt = conn.createStatement();
if(JOptionPane.showConfirmDialog(null,"单击'是'注销该统计,单击'否'取消该操作!","警告",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION){String sql = "delete from student where StuNo='"+t.getText()+"'";
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"该学生借阅证注销成功!", "提醒信息",JOptionPane.INFORMATION_MESSAGE);
f.setVisible(false);
stmt.close();
conn.close();
10、菜单界面
10、制作人信息界面
部分代码:
JLabel l=new JLabel("欢迎使用校园图书馆管理系统",JLabel.CENTER);
l.setForeground(Color.red);
l.setFont(new Font("华文彩云",Font.PLAIN,30));
JLabel l1=new JLabel("制作人:陈操",JLa
展开阅读全文