JAVA图书管理系统说明Word文件下载.docx
- 文档编号:22337572
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:77
- 大小:723.65KB
JAVA图书管理系统说明Word文件下载.docx
《JAVA图书管理系统说明Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA图书管理系统说明Word文件下载.docx(77页珍藏版)》请在冰豆网上搜索。
Eclipse
SQLsevers2008
Java开发工具包
集成开发环境
中小型关系数据库管理系统
2)性能需求
硬件要求:
256M内存、10G硬盘或更高;
软件最低要求:
MicrosoftWindowsXP操作系统及MicrosoftSQLServer2000数据库系统。
4.功能需求
实现管理员对用户的增删改查,对图书信息增删查改、图书借阅信息的修改以,实现用户对图书的查找、借阅、续借、归还以及修改密码。
该系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下:
用户登录子系统:
用于数据库的连接,主界面的设计和不同身份用户的登录管理;
用户管理子系统:
用于用户信息的管理,如用户添加、用户信息修改、用户删除;
图书管理子系统:
用于图书信息的管理,如新书入库、图书信息修改、图书信息删除;
图书借阅与归还子系统:
用于用户借阅和归还图书;
图书和用户信息查询:
图书和用户信息的查询。
5.总体设计
1)软件结构设计
主要页面文件清单
文件名
功能描述
addbook.java
添加书籍界面
adduser.java
添加用户界面
Back.java
归还书籍界面
bookinformation.java
书籍信息界面
BookRecord.java
借书记录查询
booksearch.java
书籍查询界面
Borrow_Sure.java
确认借阅界面
Borrow.java
借阅书籍界面
changePassword.java
修改用户密码
Log.java
系统日志
mainFrame.java
主窗口
Mainlead.java
主界面导航菜单
ScanRecord.java
管理员查看借书历史
scanuser.java
管理员查看用户信息
start.java
系统开始运行界面
Tableeditor.java
书籍编辑右键功能
userinformation.java
用户信息界面
userlogin.java
用户登陆界面
UserRecord.java
用户查看借书历史
用户权限介绍:
用户类
权限描述
用户
用户是该系统的重要的使用角色,他们的权限可以分为两部分:
一是拥有。
二是通过该系统查询自己需要的图书信息,并可以借阅、归还图书,还可以查询自己的借书记录。
系统管理员
系统管理员主要有对所有图书以及本系统进行管理的权限。
具体有登陆本系统,查询个人信息,修改密码的权限。
并拥有浏览所有用户信息,修改、添加、删除用户的权限。
还有对所有书籍信息查询、修改、添加、删除的权限。
2)系统模块设计
1.用户管理功能:
对用户的类型和用户档案进行管理,包括添加,修改,删除用户类型和用户用户的相关信息,管理不同类型用户借阅图书的数量。
2.图书管理功能:
包括对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进行分类操作。
3.图书借阅功能:
可以完成对用户借阅和还书的操作。
4.图书查询功能:
查询图书相关资料,借阅历史和借阅到期信息。
5.修改密码功能:
可以修改自己的登录密码。
6.个人信息查询功能:
可以查询目前登录用户的用户名、权限、可借书数量和已借书籍信息。
7.借阅历史查询功能:
可以查询已登陆用户的结借书历史。
系统管理员登陆后,可以查询所有用户的借书历史。
3)数据库结构设计
数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,本节对数据库的设计进行专门阐述。
数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。
整个系统所包括的信息有图书信息、用户信息、借阅历史信息。
可将这些信息抽象为下列系统所需要的数据项和数据结构:
1)图书信息(书名,作者,出版社,出版日期,书号,书籍类型,数量)
2)用户信息(用户名,密码,权限,已借书籍数量)
3)借阅历史信息(用户名,书名,数量,借书日期,还书日期,)
图书信息表book
字段名称
数据类型
字段长度
可否为空
说明
bookname
varchar
50
No
书名
writer
作者
press
出版社
publishdate
出版日期
types
书号
ISBN
书籍类型
remnantnum
int
Default
Yes
数量
用户信息表users
Username
用户名
password
密码
power
权限
bookamount
nchar
10
已借书数量
借阅历史信息表history
username
Book_borrow_count
借阅数量
borrowdate
借书日期
backdate
Yes
还书日期
6.系统的具体实现
1)开发所用的类和接口
a)开发图形界面所用类
JFrame:
Swing的三个基本构造块:
标签、按钮和文本字段;
但是现在需要个地方安放它们,并希望用户知道如何处理它们。
JFrame类就是解决这个问题的——它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。
JPanel:
JPanel是一个容器,可以向其中添加其他的GUI组件(如按钮JButton组件);
但是JPanel不是顶层容器,因此在屏幕上显示JPanel,必须将它添加到一个顶层容器(如JFrame)中。
JSplitPane:
SplitPane(分割面版)一次可将两个组件同时显示在两个显示区中,若你想要同时在多个显示区显示组件,你便必须同时使用多个SplitPane。
JLabel:
用于短文本字符串或图像或二者的显示区。
JTextField:
是一个轻量级组件,它允许编辑单行文本。
JTextArea:
是一个显示纯文本的多行区域。
JPasswordField:
JPasswordField是一个轻量级组件,允许编辑单行文本,其视图指示键入内容,但不显示原始字符。
JButton:
"
push"
按钮的实现。
通过Action可配置按钮,并进行一定程度的控制。
JScrollpane:
提供轻量级组件的scrollable视图。
JScrollPane管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。
JComboBox:
将按钮或可编辑字段与下拉列表组合的组件。
用户可以从下拉列表中选择值,下拉列表在用户请求时显示。
JRadioButton:
实现一个单选按钮,此按钮项可被选择或取消选择,并可为用户显示其状态。
ButtonGroup:
此类用于为一组按钮创建一个多斥(multiple-exclusion)作用域。
使用相同的ButtonGroup对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的其他所有按钮。
b)开发表格接收数据并显示所使用的类
Vector:
可以实现可增长的对象数组。
与数组一样,它包含可以使用整数索引进行访问的组件。
但是,Vector的大小可以根据需要增大或缩小,以适应创建Vector后进行添加或移除项的操作。
DefaultTableModel:
这是TableModel的一个实现,它使用一个Vector来存储单元格的值对象,该Vector由多个Vector组成。
JTable:
用来显示和编辑常规二维单元表。
c)开发数据库连接所使用的类
Connection:
与特定数据库的连接(会话)。
在连接上下文中执行SQL语句并返回结果。
Connection对象的数据库能够提供描述其表、所支持的SQL语法、存储过程、此连接功能等等的信息。
Statement:
Statement对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果。
ResultSet:
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
d)开发对事件响应所实现的接口
ActionListener:
用于接收操作事件的侦听器接口。
对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的addActionListener方法向该组件注册。
在发生操作事件时,调用该对象的actionPerformed方法。
MouseListener:
用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。
然后使用组件的addMouseListener方法将从该类所创建的侦听器对象向该组件注册。
当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。
鼠标光标进入或离开组件时也会生成鼠标事件。
发生鼠标事件时,将调用该侦听器对象中的相应方法,并将MouseEvent传递给该方法。
2)登陆界面
本模块主要是用户通过图书管理系统的首页登录进入该系统。
用户输入正确的用户名和密码,系统会根据用户的身份进行相应权限划分;
如果登录信息有错误,则系统提示登入错误的信息,并且禁止系统用户进行任何操作。
图书借阅管理系统的登录主页面如图4.1所示。
图书管理系统登录首页
用户在登录页面写好用户名和密码,选择登录,登录成功则跳转到系统的首页,否则提示错误信息。
进行用户身份验证的程序流程图如图4.2程序流程图所示
用户登录流程图
实现此登陆模块的类与方法:
此模块命名为userlogin,继承了JDialog类,并实现ActionListener接口,使用JComponent的子类JPanel作为容器,以便加入GUI组件,实现ActionListener接口中的actionPerformed方法,在构造函数中进行了容器及相应标签和按钮等的布局,并针对相应的组件调用事件相应的方法。
其主要的对象及方法如下表:
主要对象与方法
功能与作用
jpl1对象
建立容器面板
username对象
实现整个程序用户名(管理员与普通用户)在各个子模块之间的传递
sure,cancel对象
确定与取消按钮,向数据库传递数据
jLabel1,jLable2对象
创建的标签,用于显示提示用户输入数据
password对象
创建的密码框,用于接收键盘输入的密码并以特殊字符显示
userName,passWord对象
创建的文本框,用于接收键盘向其输入的字符串
jbInit方法
窗口的初始化与对象的添加
userlogin()方法
此为该类的构造函数,对组件的布局及方法的调用封装在这里
sure_actionPerformed()
cancel_actionPerformed()
确定与取消按钮的侦听实现函数
userlogin类主要对象与方法
3)系统管理员权限模块的实现
a)系统管理员登陆的实现
本模块中最主要的是管理系统用户,设置图书馆信息等操作,其中管理系统用户包括对他们进行添加,修改,删除及权限划分操作。
其中系统管理员对系统用户进行管理的操作页面如下图所示:
系统管理员管理用户操作界面
其中对系统用户权限的设置是该操作的重要部分也是系统提高效率的关键所在,其主要权限有修改密码、查看个人信息、浏览用户、添加用户,以及对所有图书的管理。
b)系统管理员修改密码功能的实现
c)系统管理员查看个人信息功能的实现
该模块主要是便于用户查看个人信息,其中包括用户名、权限、可借书数量何已借书籍的信息。
d)系统管理员浏览用户功能的实现
该模块主要功能是用于管理员查看并编辑所有用户的用户信息。
e)系统管理员添加用户功能的实现
该模块主要用于系统管理员添加用户。
4)用户管理功能模块的实现
a)用户登陆界面的实现
用户管理主要实现对学生的借阅权限管理和信息管理功能模块,其中用户借阅权限管理中需要设置不同的参数判断其是否有权限编辑图书信息,用户信息管理则主要管理维护用户的基本信息,其操作界面如下所示:
用户管理操作界面
b)用户修改密码和查询个人信息功能的实现
该功能与管理员共用同一个模块,请参看管理员修改密码和查询个人信息功能的实现。
5)图书管理功能模块的实现
与用户管理模块类似,图书管理模块主要是对图书添加、查询、编辑、删除的操作。
其模块操作界面为:
图书管理操作界面
图书信息中包含图书的书名,作者,出版社,出版日期,书号,书籍类型,数量基本信息,其文本框中信息都为必填项。
addbookM对象
adtypes对象
下拉菜单的建立
adremnantnum,adISBN等对象
types对象
实现下拉表中的内容
adremnantnumF,adISBNF等对象
Addbook()方法
此为该类的构造函数,对组件的布局及方法的调用封装在这里,也实现窗口的初始化与对象的添加
sure_actionPerformed(),
cancel_actionPerformed()方法
addbook类主要对象与方法
6)图书借阅归还功能模块的实现
该功能模块分为图书借阅和图书归还功能。
1.图书借阅。
该子模块实现系统的借阅功能,用户向图书管理员提供自己的编号,再提供要借阅的图书编号,图书管理员将信息记录在系统中,借阅成功。
2.图书归还。
该子模块的实现与图书借阅大相近庭,最大的区别是对不同的数据表进行操作。
其操作界面如下图:
图书借阅预约操作界面
图书借阅成功后,系统会对图书信息表进行更新,并会创建时间对象来获取当前计算机时间以对应借阅时间,然后将此记录到record表中。
panel1对象
searchlx对象
searchjg等对象
search对象
Borrow()方法
Borrow类主要对象与方法
子模块用户名,以查询用户借阅记录
yjsj对象
创建的标签,用于显示真在还书的用户
defaultModel对象
创建一个表格,以便显示借阅书籍信息
d2对象
获取系统时间,以便添加借书日期
Back()方法
此为该类的构造函数,对组件的布局及方法的调用封装在这里,也包括对窗口的初始化与对象的添加
Back类主要对象与方法
7)图书查询功能模块的实现
图书查询模块主要实现用户对图书的信息分别可根据图书名称、出版社和作者进行查询的功能模块,其中简单查询为单一的查询,根据其中一项对数据库进行查询返回结果;
而高级查询则将查询精确化,使其根据多项数据进行查询。
其实现的操作界面如下所示:
图书查询操作界面
frombookname对象
接收传递进来的书籍名字,用来显示书籍详细信息
sure对象
jLabel1,jLable2等对象
创建的标签,用于显示书籍的详细信息名称
bookname,writer等对象
创建的书籍标签,用于显示书籍详细信息
bookinformation()方法
确定按钮的侦听实现函数
bookinformation类主要对象与方法
8)借阅历史查询功能模块的实现
借阅历史查询模块主要是帮助用户记录借阅记录,并提供查询。
用户借阅书籍后数据库会自动增加一条借阅记录,以便用户查询。
同时整个图书管理系统会记录每条借阅信息,以供图书管理员查阅。
图书借阅历史查询操作界面
7.附录:
(部分程序主要代码)
1)数据库连接
利用ODBC访问数据库包含三个步骤:
1.建立与数据库的连接;
2.通过发送SQL语句对数据库进行读写;
3.处理语句的执行结果,特别是查询语句的返回数据。
数据库连接时采用连接池技术链接SQLsevers2008,具体代码实现如下:
try{
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
//给定ODBC驱动路径
Connectioncon=DriverManager.getConnection("
jdbc:
odbc:
aspp"
"
sa"
123"
//连接以aspp为数据源的数据库
ps=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立连接
rs=ps.executeQuery("
select*fromuserswhereusername='
"
+username+"
'
//读取数据库
catch(Exceptionerr){//异常处理
Stringerror=err.getMessage();
JOptionPane.showMessageDialog(null,error);
}
2)登录模块
publicvoidjbInit(){
jpl1.setLayout(null);
this.getContentPane().setLayout(null);
jpl1.setBounds(newRectangle(0,0,452,369));
jLabel1.setFont(newjava.awt.Font("
Dialog"
0,15));
jLabel1.setText("
请输入用户名"
jLabel1.setBounds(newRectangle(20,17,101,35));
userName.setBounds(newRectangle(113,19,120,31));
jLabel2.setFont(newjava.awt.Font("
jLabel2.setText("
请输入密码"
jLabel2.setBounds(newRectangle(20,69,101,35));
sure.setBounds(newRectangle(25,120,90,35));
sure.setFont(newjava.awt.Font("
sure.setText("
确定"
sure.addActionListener(newuserlogin_sure_actionAdapter(this));
cancel.setBounds(newRectangle(140,120,90,35));
cancel.setFont(newjava.awt.Font("
cancel.setText("
取消"
cancel.addActionListener(newuserlogin_cancel_actionAdapter(this));
this.setTitle("
用户登录"
passWord.setBounds(newRectangle(114,68,120,32));
getContentPane().add(jpl1,null);
jpl1.add(jLabel1,null);
jpl1.add(sure,null);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 图书 管理 系统 说明