JAVA图书管理系统说明.docx

上传人:b****8 文档编号:9201476 上传时间:2023-02-03 格式:DOCX 页数:77 大小:723.65KB
下载 相关 举报
JAVA图书管理系统说明.docx_第1页
第1页 / 共77页
JAVA图书管理系统说明.docx_第2页
第2页 / 共77页
JAVA图书管理系统说明.docx_第3页
第3页 / 共77页
JAVA图书管理系统说明.docx_第4页
第4页 / 共77页
JAVA图书管理系统说明.docx_第5页
第5页 / 共77页
点击查看更多>>
下载资源
资源描述

JAVA图书管理系统说明.docx

《JAVA图书管理系统说明.docx》由会员分享,可在线阅读,更多相关《JAVA图书管理系统说明.docx(77页珍藏版)》请在冰豆网上搜索。

JAVA图书管理系统说明.docx

JAVA图书管理系统说明

南华大学

计算机科学与技术学院

课程设计报告

(2012~2013学年度第1学期)

课程名称

JAVA编程技术

题目

图书管理系统

小组成员:

 

专业

计算机

班级

11级05班

教师

xxx

 

1.设计目的

软件需求分析就是软件计划期间建立的软件可行性分析求精和四化,分析各种可能的解法,并且分配给各个软件元素。

管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与科学管理相结合的产物。

MIS的开发过程不仅是一个编写应用程序的过程,而且是一个以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施到等主要阶段的规范开发过程。

根据谭院长的要求,我们选择做一个图书管理系统,通过模拟图书馆的学生借书过程和后台管理员的操作过程,让我们在实战中的学习JAVA语言。

2.设计要求

1、学会用JAVA语言做一个独立的系统;

2、以小组的形式,分工明确,完成系统的设计与制作;

3、利用JDBC驱动程序连接SQL数据库,修改、存储学生借书还书的基本信息。

了解最基本的数据库语句。

3.课程设计软硬件环境

1)系统开发工具的选择

开发语言:

前台开发语言为java,后台数据库为SQLserver2008

运行环境:

eclipse

运行环境的介绍:

Eclipse是著名的跨平台的自有(IDE)。

最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。

许多软件开发商以Eclipse为框架开发自己的IDE。

系统开发平台和工具

工具名称

用途

JDK1.7.0

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

varchar

50

No

作者

press

varchar

50

No

出版社

publishdate

varchar

50

No

出版日期

types

varchar

50

No

书号

ISBN

varchar

50

No

书籍类型

remnantnum

int

Default

Yes

数量

用户信息表users

字段名称

数据类型

字段长度

可否为空

说明

Username

varchar

50

No

用户名

password

varchar

50

Yes

密码

power

varchar

50

Yes

权限

bookamount

nchar

10

Yes

已借书数量

借阅历史信息表history

字段名称

数据类型

字段长度

可否为空

说明

username

nchar

10

No

用户名

bookname

nchar

10

No

书名

Book_borrow_count

nchar

10

No

借阅数量

borrowdate

varchar

50

No

借书日期

backdate

varchar

50

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对象

下拉菜单的建立

sure,cancel对象

确定与取消按钮,向数据库传递数据

adremnantnum,adISBN等对象

创建的标签,用于显示提示用户输入数据

types对象

实现下拉表中的内容

adremnantnumF,adISBNF等对象

创建的文本框,用于接收键盘向其输入的字符串

Addbook()方法

此为该类的构造函数,对组件的布局及方法的调用封装在这里,也实现窗口的初始化与对象的添加

sure_actionPerformed(),

cancel_actionPerformed()方法

确定与取消按钮的侦听实现函数

addbook类主要对象与方法

6)图书借阅归还功能模块的实现

该功能模块分为图书借阅和图书归还功能。

1.图书借阅。

该子模块实现系统的借阅功能,用户向图书管理员提供自己的编号,再提供要借阅的图书编号,图书管理员将信息记录在系统中,借阅成功。

2.图书归还。

该子模块的实现与图书借阅大相近庭,最大的区别是对不同的数据表进行操作。

其操作界面如下图:

图书借阅预约操作界面

图书借阅成功后,系统会对图书信息表进行更新,并会创建时间对象来获取当前计算机时间以对应借阅时间,然后将此记录到record表中。

主要对象与方法

功能与作用

panel1对象

建立容器面板

searchlx对象

下拉菜单的建立

sure,cancel对象

确定与取消按钮,向数据库传递数据

searchjg等对象

创建的标签,用于显示提示用户输入数据

types对象

实现下拉表中的内容

search对象

创建的文本框,用于接收键盘向其输入的字符串

Borrow()方法

此为该类的构造函数,对组件的布局及方法的调用封装在这里,也实现窗口的初始化与对象的添加

sure_actionPerformed(),

cancel_actionPerformed()方法

确定与取消按钮的侦听实现函数

Borrow类主要对象与方法

主要对象与方法

功能与作用

panel1对象

建立容器面板

username对象

子模块用户名,以查询用户借阅记录

sure,cancel对象

确定与取消按钮,向数据库传递数据

yjsj对象

创建的标签,用于显示真在还书的用户

defaultModel对象

创建一个表格,以便显示借阅书籍信息

d2对象

获取系统时间,以便添加借书日期

sure_actionPerformed()

cancel_actionPerformed()

确定与取消按钮的侦听实现函数

Back()方法

此为该类的构造函数,对组件的布局及方法的调用封装在这里,也包括对窗口的初始化与对象的添加

Back类主要对象与方法

7)图书查询功能模块的实现

图书查询模块主要实现用户对图书的信息分别可根据图书名称、出版社和作者进行查询的功能模块,其中简单查询为单一的查询,根据其中一项对数据库进行查询返回结果;而高级查询则将查询精确化,使其根据多项数据进行查询。

其实现的操作界面如下所示:

图书查询操作界面

主要对象与方法

功能与作用

jpl1对象

建立容器面板

frombookname对象

接收传递进来的书籍名字,用来显示书籍详细信息

sure对象

确定与取消按钮,向数据库传递数据

jLabel1,jLable2等对象

创建的标签,用于显示书籍的详细信息名称

bookname,writer等对象

创建的书籍标签,用于显示书籍详细信息

jbInit方法

窗口的初始化与对象的添加

bookinformation()方法

此为该类的构造函数,对组件的布局及方法的调用封装在这里

sure_actionPerformed()

确定按钮的侦听实现函数

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);//建立连接

try{

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("Dialog",0,15));

jLabel2.setText("请输入密码");

jLabel2.setBounds(newRectangle(20,69,101,35));

sure.setBounds(newRectangle(25,120,90,35));

sure.setFont(newjava.awt.Font("Dialog",0,15));

sure.setText("确定");

sure.addActionListener(newuserlogin_sure_actionAdapter(this));

cancel.setBounds(newRectangle(140,120,90,35));

cancel.setFont(newjava.awt.Font("Dialog",0,15));

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);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1