Javaee图书馆管理系统.docx
《Javaee图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《Javaee图书馆管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
![Javaee图书馆管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/4/60d5f0fa-b0ce-4344-9922-b498ef167479/60d5f0fa-b0ce-4344-9922-b498ef1674791.gif)
Javaee图书馆管理系统
实验报告
实验课程名称:
JAVAEE应用程序开发
本次实验名称为:
图书馆管理系统
学生姓名:
张铭烨班级中加132
学号:
13416418
学院(系):
国际教育交流学院指导教师:
倪彤光
1.实验目的
(1)读者身份设置:
用于设置不同类型读者所具有的借书权限(借阅数量、续借次数)等;
(2)读者信息管理:
读者图书证的生成、管理读者信息等;
(3)新增图书:
图书馆新添图书,为图书入库编号等;
(4)图书信息管理:
图书基本信息的增删与修改;
(5)图书类型管理:
图书分类及不同类型图书具有不同的借阅权限(借阅天数);
(6)图书借阅:
管理读者借书过程;
(7)图书过期名单:
产看是否有过期图书。
(1)读者信息表,包括:
条形码、编号、姓名、性别、类型、出生日期、有效证件、证件号码、联系方式、登记日期、有效期限、操作员、备注、图书借阅次数、是否挂失等;
(2)读者类型表,包括:
类型、图书册书。
续借次数、限制图书等;
(3)新增图书信息表,包括:
入库编号、图书编号、订购者、经手者联系方式、定购数量、是否验收、验收日期、操作员等;
(4)书架信息表,包括:
书架名、书架类型等;
(5)图书类型表,包括:
可借天数、图书类型、类型编号等;
(6)图书借阅表,包括:
借阅编号、读者编号、图书编号、操作时间;
(7)图书归还表,包括:
故还编号、图书编号、读者编号、归还时间、操作员;
2.功能模块图
(1)根据上述的功能,可以设计出系统的总体功能模块,如图3-1所示。
图3-1图书信息管理系统—管理员登陆与操作模块功能示意图
(2)“员工管理”功能模块用于增加员工,删除员工,修改员工已有信息,查询已有员工相关信息。
其功能模块如图3-2所示。
图3-2员工管理
(3)“读者管理”功能模块用于新生入校时增加使用本系统的读者信息,以及老生毕业离校时删除相关读者信息,清楚数据库,查询读者的借阅书籍情况。
其功能模块如图3-3所示。
图3-3读者管理
(4)“图书信息管理”功能模块用于新书入库,丢失或者陈旧不可用的书籍的出库,已有书籍的查询。
其功能模块如图3-4所示。
图3-4图书信息管理
(5)“图书借还管理”功能模块用于读者借书和还书的登记,其其功能模块如图3-5所示。
图3-5图书借还管理
本系统将用户划分为三种类型,即系统管理员、员工和读者。
系统管理员为Admin,他可以管理其他用户和员工的信息,在其他方面的权限相同。
3详细设计
3.1主界面
用户登陆系统以后,将出现主界面,用户可以选择要执行的操作,点击即可实现各功能模块相应的操作,如图4-1所示。
图4-1主界面
3.2读者管理模块功能实现
(1)读者添加
功能介绍:
添加新的读者,使其能够进入图书系统阅览图书,读者添加如图4-2所示。
图4-2读者添加
(2)读者修改功能介绍:
对读者需要修改的资料进行重定义,读者信息修改如图4-3所示。
图4-3读者信息修改
(3)读者查询
功能介绍:
可以对数据库中已有的读者信息进行查询。
读者查询如图4-4所示。
图4-4读者信息查询
(4)读者删除
功能介绍:
删除数据库中已有信息。
读者删除如图4-5所示。
图4-5读者删除
3.3书籍管理模块功能实现
(1)书入库实现
功能介绍:
此界面主要完成的功能是往数据库book表中添加新书的记录,在book表中可查看最新的记录。
在新书信息输入的过程中,会出现一些异常处理,如某个字段的信息没有填写;新书信息输入字段的过程中,输入的字段类型与给定的字段类型与输入不匹配(如:
货币、日期);输入的信息长度超过给定的字段长度等。
如果填写的内容正确则可以成功将新书添加入库,新书入库窗口如图4-6所示。
图4-6添加新书入库界面
(2)查询功能实现
功能介绍:
本系统包含两项一是检索项令一个是检索词,在检索项中用户可以根据自己的需求来选择所要查询的项目并在检索词中添写自己所要查询的内容。
本系统副带四个按钮:
确定、取消、查看全库,该图书馆管理系统的查询界面如图4-7所示。
图4-7查询系统界面
在该系统中为了用户使用方便还设有查看全库一项,用户可以通过这一功能来查看全库的图书,所查询的内容将在下方的文本区中显示,其界面如图4-8所示。
图4-8查看全库信息
使用检索词必须得满足一定的查询条件才可以执行,用户必须得在检索项中选择查询方式并添好检索词才可查询否则系统会显示未找到您要查找的内容并给以提示,如图4-9所示。
图4-9检索
3.4书籍借阅与归还功能实现
(1)借阅书籍功能实现
输入图书证号“0001”后点击查看按钮,可显示该读者信息,若输入图书证号错误,点击查看按钮则会弹出借书证错误对话框,如图4-10所示。
输入图书编号“0000003”按回车键,可显示该图书信息,若输入图书编号错误,按回车键则会弹出图书编号错误对话框,如图4-11所示。
点击借阅按钮则会弹出图书借阅成功对话框。
借阅书籍功能的具体实现如图4-12所示。
图4-10借书证错误
图4-11图书编号错误
图4-12借阅书籍
(2)归还书籍功能实现
输入图书编号“0000003”点击回车键,则该界面右侧会显示借书者的信息,若图书编号错误则会弹出图书编号错告对话框,如图4-13所示。
点击还书按钮会弹出归还成功对话框。
归还书籍功能的具体实现,如图4-14所示。
图4-13图书编号错误
图4-14归还书籍
4.数据库设计
4.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
用户E-R图,如图4-15所示。
用户
用户名
密码
用户类型
图4-15用户E-R图
4.2逻辑结构设计
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
数据库Bookmanage包含以下5个表:
员工信息表yuangong、用户信息表Users、读者信息表duzhe、图书信息表tushu、图书借还信息表jiehuan。
(1)员工信息表yuangong
用来保存员工编号,姓名,性别,密码,备注等信息。
表yuangong的结构如表4-1所示。
表4-1员工的结构
编号
字段名称
数据结构
说明
1
yid
char
记录编号
2
yname
Varchar2(30)
记录员工姓名
3
ysex
Varchar(6)
记录员工性别
4
ybirthday
date
记录员工生日
5
ynote
Varchar2(100)
记录员工是否迟到或者是否需要删除
6
ypassword
char(6)
记录员工登陆系统密码
(2)图书信息表
表4-2图书的结构
编号
字段名称
数据结构
说明
1
tid
char(6)
记录图书编号
2
tname
varchar2(30)
记录图书名称
3
tpress
varchar2(30)
记录图书出版地址
4
tprice
number(5,2)
记录图书价格
本系统将用户划分为三种类型,即系统管理员、员工和普通用户。
系统管理员为Admin,他可以管理其他用户的信息,在其他方面的权限相同。
前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强图书信息管理系统的安全性。
4.3数据库表的建立
本次课程设计使用的是SQLSever数据库,可以在新建的SQLWINDOW里面创建表。
(1)创建表yuangong
创建表yuangong(员工信息表),它的代码如下:
createtableyuangong(
yidchar(5),
ynamevarchar2(30),
ysexvarchar2
(2),
ybirthdaydate,
ypasswordchar(6),
ynotevarchar2(100),
constraintsyuangong_pkprimarykey(yid)
);
insertintoyuangongvalues('00001','张三','男',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
insertintoyuangongvalues('00002','李四','男',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
insertintoyuangongvalues('00003','王二','女',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
insertintoyuangongvalues('00004','刘一','女',to_date('1991-01-01','yyyy-mm-dd'),'123456','无');
(2)创建表tushu
创建表tushu(图书基本信息表),它的代码如下:
createtabletushu(
tidchar(6)primarykey,
tnamevarchar2(30),
tpressvarchar2(30),
tpricenumber(5,2),
tcountnumber(4)
);
insertintotushuvalues('000001','Java入门教程','高等教育出版社','39','20');
insertintotushuvalues('000002','数据库','高等教育出版社','39','20');
insertintotushuvalues('000003','数据结构','高等教育出版社','39','20');
insertintotushuvalues('000004','数据库系统概论','高等教育出版社','59','20');
insertintotushuvalues('000005','三国演义','清华出版社','49','20');
insertintotushuvalues('000006','西游记','高等教育出版社','39','20');
insertintotushuvalues('000007','C语言','高等教育出版社','39','20');
insertintotushuvalues('000008','JAVA语言','高等教育出版社','39','20');
insertintotushuvalues('000009','JavaEE框架','清华出版社','39','20');
insertintotushuvalues('000010','网页制作','高等教育出版社','39','20');
insertintotushuvalues('000011','组成原理','高等教育出版社','39','20');
insertintotushuvalues('000012','操作系统','清华出版社','39','20');
(3)创建关系用户数据表user
创建关系用户数据表user的代码如下:
createtableuser(
uidchar(8)primarykey,
upasswordvarchar2(30),
unotevarchar2
(2),
);
创建读者基本信息数据表duzhe
创建读者基本信息数据表duzhe的代码如下:
createtableduzhe(
hidchar(8)primarykey,
hnamevarchar2(30),
hsexvarchar2
(2),
hbirthdaydate,
htelvarchar2(11)
);
importjava.awt.EventQueue;
importjava.awt.Frame;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
importjavax.swing.border.EmptyBorder;
import.csuinfo.listener.QuXiaoactionlistener;
import.csuinfo.listener.QueDingActionListener;
publicclassFrmDengLuextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtxtYongHuMing;
privateJPasswordFieldtxtPassWord;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
FrmDengLuframe=newFrmDengLu();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicFrmDengLu(){
setTitle("南华大学图书信息管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,374,183);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabellblYongHuMing=newJLabel("\u7528\u6237\u540D");
lblYongHuMing.setBounds(84,28,54,15);
contentPane.add(lblYongHuMing);
txtYongHuMing=newJTextField();
txtYongHuMing.setBounds(190,25,90,21);
contentPane.add(txtYongHuMing);
txtYongHuMing.setColumns(10);
JLabellblKouLing=newJLabel("\u53E3\u4EE4");
lblKouLing.setBounds(84,58,54,15);
contentPane.add(lblKouLing);
txtPassWord=newJPasswordField();
txtPassWord.setBounds(190,55,90,21);
contentPane.add(txtPassWord);
JButtonbtnQueDing=newJButton("\u786E\u5B9A");
btnQueDing.setBounds(91,118,77,23);
contentPane.add(btnQueDing);
btnQueDing.addActionListener(newQueDingActionListener(this));
JButtonbtnQuXiao=newJButton("\u53D6\u6D88");
btnQuXiao.setBounds(200,118,93,23);
contentPane.add(btnQuXiao);
btnQuXiao.addActionListener(newQuXiaoactionlistener(this));
}
publicJTextFieldgetTxtYongHuMing(){
returntxtYongHuMing;
}
publicJPasswordFieldgetTxtPassWord(){
returntxtPassWord;
}
}
程序功能说明:
管理员登陆之后进入的系统主界面
程序作者:
package.csuinfo.gui;
importjava.awt.EventQueue;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTabbedPane;
importjavax.swing.JTable;
importjavax.swing.JTextField;
importjavax.swing.ScrollPaneConstants;
importjavax.swing.border.EmptyBorder;
importjavax.swing.table.DefaultTableModel;
import.csuinfo.listener.ChaZhaojiehuanxingxiactionlistener;
import.csuinfo.listener.ChaoZhaoActionListener;
import.csuinfo.listener.ChaoZhaoshiyanhuiyuanactionlistener;
import.csuinfo.listener.Chaozhaotushuactionlistener;
import.csuinfo.listener.ShanChushiyanactionlistener;
import.csuinfo.listener.Shanchuhuiyuanactionlistener;
import.csuinfo.listener.Shanchutushuactionlistener;
import.csuinfo.listener.XinZengshiyanactionlistener;
import.csuinfo.listener.XinZengshiyanhuiyuanactionlistener;
import.csuinfo.listener.Xingzengshiyantushuactionlistener;
import.csuinfo.listener.ZengTainjiehuanxingxiactionlistener;
publicclassFrmGuanLiXiTongextendsJFrame{
privateJPanelcontentPane;
privateJTabletableYuanGong;
privateJTabletableHuiYuan;
privateJTabletableTuShu;
privateJTabletableJieHuanXinXi;
privateJTextFieldtextHuiYuanBianHaoj;
privateJTextFieldTxtYuanGongBianHao;
privateJTextFieldTxtYuanGongXingMing;
privateString[]ColumnNames=newString[]{
"编号","姓名","性别","生日","密码","备注"
};
privateString[]ColumnNames1=newString[]{
"会员编号","姓名","性别","生日","电话"
};
privateString[]ColumnNames2=newString[]{
"图书编号","图书名","出版社","单价","数量"
};
privateString[]ColumnNames3=newString[]{
"图书编号","图书名","出版社","单价","借书日期","还书日期","是否归还"
};
privateJTextFieldtextHuiYuanBianHao;
privateJTextFieldtextHuiYuanXingMing;
privateJTextFieldtexttushuchazhao;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
FrmGuanLiXiTongframe=newFrmGuanLiXiTong();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
5系统实现
5.1.数据库的连接
//获取与数据库之间的连接
Stringuser="scott";
Stringdbpassword="tiger";
Stringurl="jdbc:
oracle:
thin:
@localhost:
1521:
student";
conn=DriverManager.getConnection(url,user,dbpassword);
//创建发送sql语句的Statement对象
st=conn.createStatement();
//发送sql语句,并用ResultSet类型的对象保存查询的数据行
5.2.系统功能模块设置
在该系统中设置管理员登陆后进入的界面如下图所示:
图5-1员工管理框架
图5-2读者管理界面
图5-3图书管理