资源描述
基于JAVA的图书管理系统设计(完整资料)
(可以直接使用,可编辑 优秀版资料,欢迎下载)
《Java核心技术》
综合实验报告
课程名称: Java核心技术
专 业: 计算机科学与技术
姓 名: 沈倩竹
学 号: 1430110311
指导教师: 王 岩
成 绩:
完成日期: 2015年12月18日
1 系统分析与设计
1.1 需求分析
图书管理系统是高校图书馆不可缺少的一部分,通过图书管理系统可以实现计算机化的图书借阅管理,能够提供方便快速的图书信息检索功能和便捷的图书借阅和归还功能,并且能够对图书信息和读者信息进行管理,方便管理员和读者的借阅处理。(本人实现了图书添加、图书查询与修改、图书类别管理、用户添加、用户删除、修改密码功能模块的设计)要求系统具备以下特点。
(1)操作简单、易用.
(2)数据存储可靠,具备较高的处理效率。
(3)系统安全、稳定。
(4)开发技术先进、功能完善、扩展性强。
1。2 系统功能设计
根据需求分析,本系统具体的功能模块图如图1.2.1所示。
图1.2.1 图书借阅系统功能结构图
1.2.1 读者信息管理
1、读者信息添加
实现向数据库中添加读者信息的功能。
2、读者信息查询与修改
实现查询指定编号、姓名、类别以及所在部门的读者信息,并对选中的读者信息进行修改操作。
1。2。2图书信息管理
1、图书信息添加
实现向数据库中添加图书信息的功能.
2、图书信息查询与修改
实现查询指定ISBN、图书名称、类别、作者以及出版社的图书信息,并对选中的图书信息进行修改操作.
1.2。3图书借阅管理
1、图书借阅
输入读者的编号以及借阅的图书信息,记录系统当前时间为借阅时间.
2、图书归还
输入读者的编号并选择其名下已借阅的图书,记录系统当前日期为归还时间,判断是否超期并计算罚金.
1.2.4基础信息维护
1、图书类别设置
实现显示数据库中图书类别的功能,并对选中的图书类别进行增、删、改、查功能。
2、读者类别设置
实现显示数据库中读者类别的功能,并对选中的读者类别进行增、删、改、查功能。
3、罚金设置
可以指定超期一天的罚金标准.
1。2。5用户管理
1、修改密码
实现当前用户登陆后,修改用户自己密码的功能。
2、用户添加
实现向数据库中增加用户的功能。
3、用户删除
实现显示数据库中的用户信息,并对选中的用户进行删除的功能。
1.3 数据库设计
根据需求分析,创建6个数据表,即图书表、图书类型表、读者表、读者类型表、图书借阅表以及用户表。
1、图书表,表名为book,包括ISBN、图书类型编号、图书名称、作者、出版社、出版日期、印刷次数和单价,其中ISBN为主键,如表1.1所示。
表1.1 图书信息表book
列名
数据类型
长度
是否为空
说明
ISBN
char
10
否
ISBN(主键)
typeid
varchar
10
是
图书类型编号
bookname
varchar
30
是
图书名称
author
varchar
30
是
作者
publish
varchar
30
是
出版社
publishdate
date
—
是
出版日期
printtime
int
—
是
印刷次数
unitprice
money
—
是
单价
图书表数据如图1.3.1所示.
图1。3。1 图书表数据
2、图书类型表,表名为booktype,包括图书类型编号、图书类型名称,其中图书类型编号为主键,如表1。2所示。
表1。2 图书类型表booktype
列名
数据类型
长度
是否为空
说明
id
int
—
否
图书类型编号(主键)
typename
varchar
30
是
图书类型名称
图书类型表数据如图1。3。2所示.
图1。3.2 图书类型表数据
3、读者表,表名为reader,包括读者编号、读者类型编号、读者姓名、年龄、性别、电话、所在系部、注册日期,其中读者编号为主键,如表1.3所示。
表1.3 读者信息表reader
列名
数据类型
长度
是否为空
说明
readerid
char
8
否
读者编号(主键)
type
int
—
是
读者类型编号
name
char
20
是
读者姓名
age
int
—
是
年龄
sex
char
4
是
性别
phone
char
11
是
电话
dept
varchar
20
是
所在系部
regdate
date
—
是
注册日期
读者表数据如图1。3.3所示。
图1.3。3 读者表数据
4、读者类型表,表名为readertype,包括读者类型编号、读者类型名称、最多可借图书数量、最长可借阅图书天数,其中读者类型编号为主键,如表1.4所示。
表1.4 读者类型表readertype
列名
数据类型
长度
是否为空
说明
id
int
—
否
读者类型编号(主键)
typename
varchar
20
是
读者类型名称
maxborrownum
int
-
是
最多可借图书数量
limit
int
—
是
最长可借阅图书天数
读者类型表数据如图1。3。4所示.
图1.3。4 读者类型表数据
5、用户表,表名为users,包括用户编号、用户名称、用户密码,其中用户编号为主键,如表1.5所示。
表1.5 用户信息表users
列名
数据类型
长度
是否为空
说明
idﻩ
int
-
否
用户编号(主键)
name
varchar
20
是
用户名称
password
varchar
20
是
用户密码
用户表数据如图1。3.5所示。
图1。3.5 用户表数据
6、图书借阅表,表名为borrowbook,包括读者编号、ISBN、借书日期、还书日期、罚金,其中读者编号和ISBN为联合主键,如表1.6所示。
表1。6 图书借阅表borrowbook
列名
数据类型
长度
是否为空
说明
readerid
char
8
否
读者编号(主键)
ISBN
char
10
否
ISBN(主键)
borrowdate
date
—
是
借书日期
returndate
date
-
是
还书日期
fine
money
—
是
罚金
图书借阅表数据如图1.3.6所示。
图1.3。6 图书借阅表数据
2 系统实现
2。1 系统框架
项目分为model、view、db三个包,具体项目架构的设计如图2。1。1所示.
图2。1.1 图书借阅表数据
1、在com。bbm.model包中创建图书借阅管理系统中的实体类:Book类,BookType类,Reader类,ReaderType类,Users类,BorrowBook类,如表2.1所示。
表2。1 实体类表com.bbm.model
文件名
说明
Book.java
图书类模型
BookType。java
图书类型类模型
BorrowBook.java
图书借阅类模型
Reader。java
读者类模型
ReaderType。java
读者类型类模型
Users.java
用户类模型
2、在com.bbm.view包中创建图书借阅管理系统中的界面及功能类,如表2。2所示.
表2.2 界面类表com.bbm.view
文件名
说明
Login。java
登陆界面及功能
Library。java
系统主界面及功能
BookAdd.java
图书添加界面及功能
BookBorrow.java
图书借阅界面及功能
BookReturn。java
图书归还界面及功能
BookSelectandUpdate.java
图书查询与修改界面及功能
BooktypeAdm.java
图书类型管理界面及功能
ReaderAdd.java
读者添加界面及功能
ReaderSelectandUpdate。java
读者查询与修改界面及功能
ReadertypeAdm。java
读者类型管理界面及功能
UserAdd.java
用户添加界面及功能
UserDelete.java
用户删除界面及功能
PasswordChange.java
修改密码界面及功能
FineSet。java
罚金设置界面及功能
3、在com.bbm。db包中创建图书借阅管理系统中的数据访问操作类,如表2。3所示.
表2。3 数据访问操作类表com。bbm.db
文件名
说明
Dao.java
基本数据访问操作类
ReaderDao.java
读者操作类
BookDao.java
图书操作类
ReaderTypeDao。java
读者类型操作类
BookTypeDao.java
图书类型操作类
BookBorrowDao。java
图书借阅操作类
UserDao.java
用户操作类
2。2 图书类型管理模块的实现
2。2.1 图书类型管理模块界面的设计与实现
图书类型管理模块界面的实现分为三个面板,图书类型查询面板(selectjp),其中包含查询结果面板(jspjp)位于selectjp中部,selectjp整体位于整个JFrame的北部,修改信息面板(infojp)位于整个JFrame中部,按钮面板(buttonjp)位于整个JFrame南部。如图2.2.1所示。
图2.2。1 图书类型管理模块界面
主要代码如下:
selectjp.add(jspjp,BorderLayout.CENTER);
this.add(selectjp,BorderLayout.NORTH);
this.add(infojp,BorderLayout.CENTER);
this。add(buttonjp,BorderLayout.SOUTH);
2。2.2 图书类型管理模块数据操作的设计与实现
本模块需要进行的数据操作如下:
1、获取数据库中图书类型表中的数据
主要代码如下:
publicstatic List<BookType> selectBookType() {
ﻩﻩ List<BookType〉 list = new ArrayList<BookType>();
String sql = "select * from booktype”;
ResultSet rs = Dao。executeQuery(sql);
try {
while (rs。next()) {
ﻩ BookType bt = new BookType();
ﻩ bt。setId(rs。getInt("id”));
bt。setTypename(rs.getString("typename"));
list。add(bt);
ﻩ }
ﻩ } catch (Exception e) {
e.printStackTrace();
ﻩ }
Dao.close();
return list;
}
2、对指定的图书类型的图书信息进行查询
主要代码如下:
publicstatic List<BookType> selectBookTypeName(String type) {
ﻩ List<BookType> list = new ArrayList〈BookType>();
String sql = "select * from booktype where typename like ’%"+type+"%'";
ﻩ ResultSet rs = Dao。executeQuery(sql);
try {
while (rs.next()) {
BookType bt = new BookType();
bt.setId(rs.getInt(”id”));
bt.setTypename(rs.getString("typename”));
list.add(bt);
}
ﻩ } catch (Exception e) {
e.printStackTrace();
ﻩ }
ﻩ Dao.close();
return list;
}
3、对其进行添加操作
主要代码如下:
publicstaticint insertBookType(String btno,String typename) {
int i = 0;
try {
String sql = "insert into booktypevalues("+btno+",'"+typename+"’)";
ﻩ i = Dao.executeUpdate(sql);
ﻩ} catch (Exception e) {
ﻩﻩﻩe.printStackTrace();
ﻩ }
ﻩDao.close();
return i;
ﻩ }
4、对其进行修改操作
代码同3,具体sql语句如下:
String sql = "update booktype set id="+btno+”,typename='"+typename+”'where id="+btno+"”;
5、对其进行删除操作
代码同3,具体sql语句如下:
String sql = ”delete from booktype where id="+id+”";
2。2.3 图书类型管理模块功能的设计与实现
本模块实现的功能如下:
1、 获取数据库中图书类型表中的数据到JTable中,并添加鼠标监听如上图2.2.1所示。
主要代码为:
Object[][] results=getSelect(BookTypeDao。selectBookType());//显示图书类别信息
//添加鼠标监听
class TableListener extends MouseAdapter{
@Override
publicvoid mouseClicked(MouseEvent e) {
int selRow = jt.getSelectedRow();//获取选择表中的某一行 保存信息
btnojtf.setText(jt。getValueAt(selRow, 0)。toString().trim());//获取列并赋值
btnamejtf.setText(jt.getValueAt(selRow, 1)。toString().trim());
ﻩ}
}
2、 对查询按钮添加监听器(SelectAction),对图书类别进行模糊查询,如图2.2.2所示。
图2。2。2 查询功能的实现
主要代码为:
class SelectAction implements ActionListener{
@Override
publicvoid actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ﻩ String btname=btjtf.getText().trim();
ﻩ BookTypeDao。selectBookTypeName(btname);
Object[][]results=getSelect(BookTypeDao。selectBookTypeName(btname));
jt = new JTable(results, readersearch);
jsp。setViewportView(jt);
jt.setAutoResizeMode(JTable。AUTO_RESIZE_OFF);ﻩ
ﻩ}
}
3、 对添加按钮添加监听器(AddAction),向图书类别表中添加新的图书类别信息,例如:添加编号为“8”,名称为“化学”的图书类别信息,如图2。2.3(1)所示。
4、
图2.2.3(1)添加成功
更新后,如图2。2.3(2)所示.
图2。2.3(2)添加功能的实现
主要代码为:
class AddAction implements ActionListener{
@Override
publicvoid actionPerformed(ActionEvent e) {
if (btnojtf.getText()。length()==0) {
JOptionPane.showMessageDialog(null, ”图书类型编号不能为空!”);
return;
}
if (btnamejtf.getText().length() == 0) {
JOptionPane。showMessageDialog(null, ”图书类型名称不能为空!”);
return;
ﻩ }
ﻩ String btno= btnojtf.getText().trim();
String btname=(String)btnamejtf.getText().trim();
int i=BookTypeDao。insertBookType(btno,btname);
if (i==1) {
JOptionPane.showMessageDialog(null, "添加成功");
Object[][] results = getSelect(BookTypeDao.selectBookType());
jt=new JTable(results, readersearch);
jsp。setViewportView(jt);
jt。setAutoResizeMode(JTable。AUTO_RESIZE_OFF);
}
ﻩ}
}
5、 对修改按钮添加监听器(UpdateAction),修改图书类别表中信息,例如将刚刚添加的“化学”修改为“生物”,如图2.2.4(1)所示。
图2。2.4(1)修改成功
更新后,如图2.2。4(2)所示.
图2。2。4(2)修改功能的实现
主要代码为:
class UpdateAction implements ActionListener{
@Override
publicvoid actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ﻩString btno=btnojtf。getText()。trim();
ﻩﻩString btname=btnamejtf。getText().trim();
int i=BookTypeDao.updateBookType(btno,btname);
ﻩﻩﻩSystem.out。println(i);
if(i==1){
ﻩ ﻩJOptionPane.showMessageDialog(null, "修改成功");
ﻩObject[][] results = getSelect(BookTypeDao.selectBookType());
jt=new JTable(results, readersearch);
jsp.setViewportView(jt);
jt。setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
ﻩ}
ﻩ }
}
6、对删除按钮添加监听器(DeleteAction),删除图书类别表中信息,例如将刚刚修改的“生物”删除,如图2。2。5(1)所示。
图2.2.5(1)删除成功
更新后,如图2。2.5(2)所示。
图2.2。5(2)删除功能的实现
主要代码为:
class DeleteAction implements ActionListener{
@Override
publicvoid actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ﻩﻩﻩString btno=btnojtf.getText().trim();
int i=BookTypeDao。deleteBookType(btno);
System。out。println(i);
if(i==1){
ﻩJOptionPane。showMessageDialog(null, "删除成功!");
Object[][] results = getSelect(BookTypeDao.selectBookType());
jt=new JTable(results, readersearch);
jsp。setViewportView(jt);
jt.setAutoResizeMode(JTable。AUTO_RESIZE_OFF);
ﻩ ﻩ}
ﻩ }
}
6、 对退出按钮添加监听器(OutAction),实现关闭程序功能。
主要代码如下:
class OutAction implements ActionListener{
@Override
publicvoid actionPerformed(ActionEvent e) {
// TODO Auto—generated method stub
setVisible(false);
ﻩﻩ}
2.3 用户添加模块的实现
2。3.1 用户添加模块界面的设计与实现
用户添加模块界面的实现分为两个面板,用户添加信息面板(jp1,一个2行两列的表格)位于整个JFrame的中部,按钮面板(buttonjp)位于整个JFrame的南部。如图2.3.1所示。
图2.3.1 用户添加模块界面
主要代码如下:
jp1。setLayout(new GridLayout(2,2));
this.add(jp1,BorderLayout.CENTER);
this.add(buttonjp,BorderLayout.SOUTH);
2.3。2 用户添加模块数据操作的设计与实现
用户添加模块需要进行的数据操作为向数据库的用户表中添加用名和密码。
主要代码如下:
publicstaticint insertUser(String name,String pwd){
int i = 0;
try {
String sql = ”insert into users(name,password) values(’”+name+”’,'"+pwd+”')";
i = Dao。executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}
Dao.close();
return i;
}
2.2.3 用户添加模块功能的设计与实现
1、对添加按钮添加监听器(AddActionListener),例如向数据库中添加用户名为“添加”的用户,如图2。3.2(1)所示。
图2.3。2(1) 添加成功
查看数据库中用户表的信息,如图2.3.2(2)所示。
图2.3。2(2) 用户表中的信息
主要代码为:
class AddActionListener implements ActionListener{
@Override
publicvoid actionPerformed(ActionEvent e) {
ﻩ String user=userjtf.getText().trim();
String pwd=pwdjtf.getText().trim();
int i=UserDao.insertUser(user,pwd);
ﻩﻩSystem。out.println(i);
if(i==1){
ﻩJOptionPane.showMessageDialog(null, "添加成功!");
}
}
}
2、对关闭按钮添加监听器(CloseActionListener),实现关闭程序功能。
class CloseActionListener implements ActionListener{
publicvoid actionPerformed(ActionEvent e) {
ﻩﻩsetVisible(false);ﻩ
ﻩ }
}
武汉理工大学毕业设计(论文)
基于Java的资产管理系统的设计与实现
学院(系): 国际教育学院
专业班级:通信专业 GJ1101班
学生姓名: 董沛
指导教师: 江雪梅
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。
作者签名:
年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅.本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于1、保密囗,在年解密后适用本授权书
2、不保密囗 。
(请在以上相应方框内打“√”)
(宋体小四号)
作者签名: 年 月 日
导师签名: 年 月 日
摘 要
随着社会经济的迅速发展,企业规模不断扩大,拥有的各类资产快速增长,传统的手工记录资产的方式所暴露的效率低下、错误率高、安全性差等问题已经成为制约企业发展的重要障碍。探索现代企业生产运作过程中对安全、高效、准确的追求相适应的资产管理方式已成为企业在激烈的竞争中能否把握先机的重要课题。
为了达到企业对资产进行合理分配、科学管理的要求,提高资产在企业日常运作中的利用效率,降低资产管理的成本,本文提出了基于JAVA语言,以MyEclipse作为开发平台,运用软件工程方面的技术,设计实现了一套可以对企业资产和人力资源实时了解和管理的资产管理系统。
本文首先介绍了资产管理系统的研究背景及意义,并对资产管理相关研究的现状进行了分析,接着介绍了在开发过程中所使用到的技术和工具,主要包括:Java语言与Java开发平台、Access数据管理系统、MyEclipse的开发平台等.然后对资产管理系统进行了需求分析,详细说明了系统需要解决的问题.通过需求分析,对系统进行了概要设计和详细设计,包括系统功能的划分、系统框架、概念模型等方面的设计。接着根据分析的结果,采用了基于Java平台和C/S体系结构结合Access2007数据库管理系统的开发方案进行了系统开发,保证了整个系统在实际应用过程中的简便性、安全性和易维护性。
本文设计的资产管理系统主要由系统管理、资产信息管理、类别管理、账户管理、职员管理、资产还借管理五大模块组成。本系统实现了企业管理者对公司拥有资产的数量、类型、价格、状态的整体把握;对公司职员年龄、性别、职务和相关信息的详细了解;对资产流动和使用过程中各环节的使用者、时间、用途、状态的点对点衔接.基本满足了企业对资产和人员进行管理的要求.
本文设计的资产管理系统已经能够成功运行,达到了系统的预期开发目标。该资产管理系统的开发和应用,展示了企业管理过程中自动化、信息化的发展方向,提高了企业管理人员的工作效率和管理水平,使得企业的管理工作更加的系统、科学、高效。
关键词:资产管理系统;MyEclipse开发平台;Access数据管理系统;Java语言与Java开发平台;C/S体系结构
Abstract
With the rapid socio—economic development, companies have been expanding and the amount of various types of assets they owned have been grown rapidly. It has become a major obstacle to the development of enterprises that the traditional way depending on manually record assets exposed many problems such as low efficiency, high error rate and poor security. Exploring the modern enterprise asset management operation of the process for the production safety, efficiency and accuracy has become an important issue of business to grasp the opportunity in the fierce competition.
In order to achieve reasonable distribution of assets, scientific management, improve asset utilization efficiency in daily business operations, and reduce costs of asset management, this paper designed and implemented a set of assets management system to control human resources and business assets in real-time using software engineering technology, based on the JAVA language and MyEclipse platform.
First of all, this paper describes the background and significance of asset management system, and analyzes the current situation related to asset management. Then it lists the used techniques and tools, including Java language, Java development platform, Access data management system and MyEclipse development platform. Secondly, it products the asset management system needs analysis, a detailed description of the system need to be addressed. Through needs analysis, the outline of the system design and detailed design generates, including the delineation of the system function, the system frame, the conceptual model and other aspects of the design. After that according to the results of analysis, we carried out a development program based on Java platform and C/S architecture binding Access2007 database management system to ensure simplicity, safety and ease of maintenance。
The issue of asset management system designed consists of system management, asset information management,sort management, account management, staff management and asset borrow—return management。 Relying on the system, business managers implement the overall grasp of the assets’ amount, type, price and state, the deta
展开阅读全文