毕业设计论文基于JAVA的图书管理系统的设计与实现.docx
- 文档编号:14084722
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:53
- 大小:2.04MB
毕业设计论文基于JAVA的图书管理系统的设计与实现.docx
《毕业设计论文基于JAVA的图书管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于JAVA的图书管理系统的设计与实现.docx(53页珍藏版)》请在冰点文库上搜索。
毕业设计论文基于JAVA的图书管理系统的设计与实现
摘要
在以信息技术为核心的时代,任何管理工作都离不开信息技术的帮助。
如今的图书为了满足人们日益增长的精神文化需求,图书的种类和数量成倍的增加,图书的借阅工作日益频繁。
因此,这就需要一个行之有效的图书管理系统来帮助图书馆工作人员更加方便、准确的管理图书的借阅工作。
本系统的主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。
该系统的主要研究内容包括前台应用程序的开发以及后台数据库的建立和管理,对于前者要求应用程序功能的完备、易用。
对于后者则要求建立数据的一致性和完整性。
基于上述考虑,本系统是基于JAVA语言进行开发的,本系统利用Eclipse作为前端的应用开发工具,利用SQLServer2005作为后台的数据库,通过对管理系统模块的研究,提出构造图书信息管理系统的方法,结合其它图书管理业务方面的常识,建立相关数据模型,利用面向对象开发工具对其进行设计与开发,使系统有良好的性能和较高的处理效率。
关键词:
图书管理系统;数据库;面向对象
Abstract
Intheeraofinformationtechnologyasthecore,anymanagementworkrelyheavilyoninformationtechnologytohelp.Now,inordertosatisfythelibraryspiritcultureofpeoplegrowingdemand,theamountandtypeofbooksandbookshavemultipliedtheusesoftheborrowingworkincreasinglyfrequent.Therefore,itneedstobeaneffectivebooksmanagementsystemmanagementsystemtohelpthepeoplewhoworkinlibrariesismoreconvenientandaccuratemanagementworkofthelibraryborrowing.Thesystem'smaintaskistoreaders,borrowingbooks,informationquery,unifiedmanagement,andsatisfytheneedsoftheusers.Thissystemincludesmainresearchanddevelopmentforegroundapplicationofbackstagesupporter'sdatabasefortheestablishmentandmanagementoftheapplicationrequirements,completefunctions,easy-to-use,etc.Forthelatterrequiresestablishingconsistencyandintegralityofdatabasedontheconsideration,thissystemisbasedonaJAVAlanguagedevelopment,thissystemusingtheEclipseasfrontapplicationdevelopmenttoolthatusesSQLServer2005asabackground,basedonthedatabasemanagementsystemstructure,putsforwardthemoduleofthelibrarymanagementinformationsystem,andbyusingthemethodofknowledge,combinedwithotherbooksmanagementbusinesssense,establishrelevantdatamodel,usingobject-orienteddevelopmenttooltodesignanddevelopment,makethesystemhasgoodperformanceandhighefficiency.
Keywords:
Thebooksmanagementsystemmanagementsystem;Database;Object-oriented
第1章绪论
1.1课题背景
在我国信息化管理系统近年来日趋成熟,在采用计算机技术进行管理之前,图书的图书借阅工作是非常繁琐和复杂的。
图书的借阅工作完全依赖于手工操作,不但费时费力而且还经常容易出错。
读者在借书的时候首先要有一个借书证,工作人员把读者要借的书的信息卡与读者的借书证放到一起,并且在借书证上填写借阅信息,这就是手工操作时代的借书过程[1]。
这样的借阅工作显而易见,效率非常低,由于工作量大所以数据不但容易丢失,且非常容易出错。
总的来说,缺乏系统、规范的信息管理手段。
利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。
读者排队时间大大降低,读者可以花更多的时间在选择书和看书上。
而且近年来,随着图书馆的规模逐渐扩大,图书数量也相应的大量增加,有关的图书的各种信息成倍增长。
面对如此庞大的信息量,需要一套合理、有效、规范的图书管理系统,对图书资料进行统一、集中的管理。
使用本程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况[2]。
1.2国内外现状
信息技术的发展为图书馆的发展创造了良好的信息环境,目前社会上信息管理系统发展飞速,越来越多企事业单位引入了信息管理系统来管理信息,各大高校也相继采用了图书管理系统管理图书,取得很大的成效。
国外的图书馆自动化系统是随着计算机技术发展而发展的[3]。
并且较早实现了商品化,出现了不少知名公司,例如:
美国的INNOPAC、SIRSI、及澳大利亚的HORIZON等,它们的产品技术开发已经很成熟,而国内的发展相对较晚,系统稳定性和安全性存在差距。
但国内系统开发吸收了国外经验和技术,在中文书刊信息处理方面有很大优势,在技术方面,差距不明显。
虽然国内起点晚,但也采用了流行的开发工具,如JAVA,VB,PB等[4]。
1.3本系统的主要研究内容
本系统应用软件工程的设计思想,按照系统的开发流程完成了一个完整的图书管理系统[6]。
同时,在程序的开发过程中,界面开发方面采用了Swing机制,Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面,使整个系统的设计思路更加清晰。
数据库方面,使用SQLServer2005,通过Java的JDBC实现连接,JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,可以满足日常中小型规模的数据处理要求。
1.4本系统的主要特点
参考一些典型图书管理系统的设计模式,从读者与图书管理员的角度出发,本着以读者借阅图书快捷、方便的原则,要求本系统应具有以下特点:
1.具有良好的系统性能,友好的用户界面;
2.较高的处理效率,便于使用和维护;
3.采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期;
4.系统尽可能简化图书管理员的重复工作,提高工作质量;
5.简化数据查询和统计难度。
第2章需求分析
2.1需求分析
在现在信息管理系统尤为重要的时代,图书管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要。
但长期以来,人们使用传统的手工方式或性能较低的图书系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低[4]。
而一个成功的图书管理系统应提供快速的图书信息检索功能、快捷的图书借阅、归还流程,为管理者与读者提供充足的信息和快捷的数据处理手段。
2.2系统目标
根据需求分析的要求,本系统应达到以下目标:
1.界面设计友好、美观;
2.数据存储安全、可靠;
3.信息分类清晰、准确;
4.强大的查询功能,保证数据查询的灵活性;
5.操作简单易行、界面清晰大方;
6.系统安全、稳定;
7.开发技术先进、功能完备、扩张性强;
8.占用资源少、对硬件要求低;
9.提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
2.3系统设计
图书管理系统分为4大功能模块,分别为“基础数据维护”、“图书借阅管理”、“新书管理”和“系统维护”。
2.3.1系统的功能结构
图2-1系统功能结构图
2.3.2系统的执行流程图
图2-2系统流程图
第3章系统的数据库设计
数据库的设计关系到整个软件的成败。
当今的企业信息管理系统都是通过数据库来存储信息的,因此数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计不仅可以提高数据存储的效率,保证数据的完整性和一致性,还能增加系统的灵活性。
因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
在数据库建立过程中,要注重数据库与系统整体目标的一致性,使他们既相互独立又有紧密联系。
用户与数据库接口之间是灵活与友好的,数据库的设计也要简单易行和便于理解。
3.1数据库分析
现在主流的数据库主要有Access、SQLServer、Oracle等[7]。
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。
但是它的同时访问客户端不能多于4个。
Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器的假死,或者消耗掉服务器的内存导致服务器崩溃。
因为本系统要求大量的用户访问以及大量的数据量,因此Access数据库并不适用本系统。
Oracle数据库支持多实例,处理数据效率高,而且是多平台的,在安全性和稳定性方面都不错,但是与SQLServer数据库相比,它的价格却高出很多,而且不易于操作,SQLServer界面直观,易于维护,并且SQLServer是微软公司开发的,因此会对Windows平台的兼容性及结合性会更加友好。
由于本系统在Windows平台下开发,因此比Oracle更加适合。
考虑到本系统的稳定性与可靠性以及开发程序与用户需求,决定设计该系统的时候选择SQLServer2005数据库来满足系统的需求。
SQLServer2005具有很强的完整性和可伸缩性,具有较高的性价比。
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。
数据库设计一般包括如下几个阶段[8]:
1.需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求(包括数据和处理)。
需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。
作为基本的需求分析是否做得充分与准确,决定了在其上构建数据的速度与质量。
需求分析做得不好,甚至会导致整个数据库设计返工重做。
2.概念结构设计阶段
概念结构设计是整个数据设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
3.逻辑结构设计阶段
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对齐进行优化。
4.物理设计阶段
物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
5.数据库实施阶段
在数据库实施阶段,设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
3.2数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出[9]。
收集基本数据,组成一份详尽的数据字典,为后面的详细设计打下基础。
针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
读者信息包括:
字段ID号、登录用户名、登录密码、用户类型;
图书信息包括:
图书名称、出版社名称、图书作者姓名、出版日期、价格、拥有该书的册数;
图书借阅与归还包括:
借阅者姓名、借阅图书名称、借书日期、还书日期、图书是否归还;
3.3数据库概念结构设计
根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书信息实体、图书类别实体、图书订购实体、读者信息实体、操作员信息实体、图书借阅信息实体、库存信息实体。
其中图书信息实体与图书订购实体、图书分类实体、图书订购实体、图书借阅信息实体、库存信息实体都有关系,而读者信息实体与图书借阅信息实体同样具有关系。
下面将介绍几个关键实体的E-R图。
3.3.1图书信息实体
图书信息实体包括图书编号、图书类别编号、书名、作者、译者、出版社、价格、出版时间等属性。
其中,图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书类别实体具有外键关系。
图书信息实体的E-R图如图3-1所示。
图3-1图书信息实体E-R图
3.3.2读者信息实体
读者信息实体包括条形码、姓名、性别、年龄、电话、押金、生日、职业、证件类型、办证日期、最大借书数量、证件号码等属性。
读者条形码作为本实体的唯一标识。
其中,在性别属性标识信息中,“1”代表此读者为男性,“2”代表此读者为女性;最大借书数量属性设置默认值为3;而在证件属性标识信息中,“0”代表身份证,“1”代表军人证,“2”代表学生证,“3”代表工作证。
读者信息实体的E-R图如图3-2所示。
图3-2读者信息实体E-R图
3.3.3图书借阅信息实体
图书借阅信息实体包括编号、图书编号、读者编号、操作员编号、是否归还、借阅日期、归还日期等属性。
编号作为图书借阅信息实体的唯一标识,它包括两个外键,分别为图书编号与读者编号,图书借阅信息实体以这两个外键与图书信息实体、读者信息实体建立了关系。
图书借阅信息实体的E-R图如图3-3所示。
图3-3图书借阅信息实体E-R图
3.3.4图书分类实体
图书分类实体包括编号、类别名称等属性。
图书分类实体与图书信息实体以图书类别编号建立了关系。
图书分类实体的E-R图如图3-4所示。
图3-4图书分类实体E-R图
3.3.5图书订购实体
图书订购实体主要包括图书编号、订购日期、订购数量、操作员、是否验收和折扣等属性。
图书订购实体以图书编号与图书信息实体建立了关系。
图书订购实体的E-R图如图3-5所示。
图3-5图书订购实体E-R图
3.3.6操作员信息实体
操作员信息实体主要包括编号、姓名、性别、年龄、身份证号、工作日期、电话、是否为管理员和密码等属性。
其中,性别属性信息中“1”代表男性,“2”代表女性;是否为管理员属性信息中“0”代表当前用户不是管理员,“1”代表当前用户是管理员。
操作员信息实体的E-R图如图3-6所示。
图3-6操作员信息实体E-R图
3.3.7库存信息实体
库存信息实体主要包括编号、库存数量等属性。
库存信息实体以库存编号与图书信息实体建立了关系。
库存信息实体的E-R图如图3-7所示。
图3-7库存信息实体E-R图
3.4数据库逻辑结构设计
1.图书信息表如图3-8所示:
图3-8图书信息表
2.读者信息表如图3-9所示:
图3-9读者信息表
3.图书借阅信息表如图3-10所示:
图3-10图书借阅信息表
4.图书分类信息表如图3-11所示:
图3-11图书分类信息表
5.图书订购表如图3-12所示:
图3-12图书订购信息表
6.操作员信息表如图3-13所示:
图3-13操作员信息表
7.库存信息表如图3-14所示:
图3-14库存信息表
第4章系统的详细设计与测试
4.1公共模块设计
在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、限制文本框输入长度的类以及描述组合框索引与内容的类等,因此,在开发系统前首先需要设计这些公共模块。
下面将具体介绍图书管理系统中公共模块的数据过程。
4.1.1数据库的链接及操作类的编写
数据库连接及操作类通常包括连接数据库的方法getConnection()、执行查询语句的方法executeQuery()、执行更新操作的方法executeUpdate()、关闭数据库链接的方法close()。
下面将详细介绍如何编写图书管理系统中的数据库连接及操作的类Dao.java。
步骤如下:
1.指定类dao.java保存的包,并导入所需的包,本例将其保存到com.wsy.dao包中。
2.在dao.java类的构造方法中创建数据库连接操作。
在此类中首先定义数据库连接驱动包名、数据库连接路径、数据库连接用户名、密码等静态变量,然后在构造函数中实现数据库连接操作。
在数据库连接代码中需要添加try…catch关键字,捕捉数据库连接时可能抛出的异常。
3.创建执行查询语句的方法executeQuery(),其返回值为ResultSet()结果集。
首先需要初始化Dao对象,调用构造函数,从而获取数据库连接。
有一点值得注意,就是在创建数据库连接之前首先判断数据库连接是否为空,如果为空再创建数据库连接,避免造成程序资源的浪费。
4.创建执行更新操作的方法executeUpdate(),它的返回值为int型的整数,此返回值代表数据表更新操作是否成功,返回值为1代表成功,返回值为-1代表没有成功。
5.为了避免运行程序时资源的浪费,优化项目运行速度,需要在完成数据库操作后,关闭数据库连接,所以在Dao.java类中创建了关闭数据库连接的方法close()。
为了使数据库连接在程序结束后确定会被关闭,在close()方法中加入了finally()字段,在finally块中将数据库连接置空。
4.1.2MenuActions类的编写
通常激活同一个命令有多种方法,用户可以通过工具栏中按钮、菜单选择特定的功能。
在本系统中,最常用的命令就是弹出内部窗体,将本系统中需要弹出的内部窗体命令统一放入MenuActions类中,主要触发任何一种组件事件时,都会按照统一的方式处理[10]。
Swing包提供了一个非常有用的机制,用来封装命令,并将其连接到多个事件源,这种机制就是Action接口。
Action接口有如下方法:
1.puclicvoidactionPerformed(ActionEvente)
2.publicObjectgetValue(Stringkey)
3.publicvoidputValue(Stringkey,Objectvalue)
4.publicbooleanisEnabled()
5.publicvoidsetEnabled(booleanb)
6.publicvoidaddPropertyChangeListener(PropertyChangeListenerlistener)
7.publicvoidremovePropertyChangeListener(PropertyChangeListenerlsn)
其中第一个方法用来实现ActionListener的接口程序,实际上Action接口扩展了ActionListener接口。
getValue()与putValue()方法用来存储与提取动作对象的预定义名称与值。
下表列举了几种常用的动作对象的预定义名称。
表4.1动作对象表
名称
值
NAME
名称,显示在按钮或菜单上
SMAIL_ICON
小图标,显示在按钮或菜单上
SHORT_DESCRIPTION
简单提示说明,当鼠标放在按钮或菜单上出现提示
LONG_DESCRIPTION
详细提示说明
setEnabled()方法用于开启或禁止动作对象,isEnabled()方法用于检查动作是否启用。
实现Action接口需要将接口中的所有方法都实现,所以在通常情况下都是使用实现该接口的AbstractAction类,本系统中的MenuActions类继承了AbstractAction类,在MenuActions类中只要重写AbstractAction类中的actionPerformed()方法。
在系统中的“更改密码”菜单项采用了MenuActions类的编写。
在MenuActions类中创建一个内部类,这个内部类用于创建菜单栏中“更改密码”菜单项的动作对象,在此类的构造函数中创建组件的提示组件提示说明,在actionPerformed()方法执行“更改密码”窗体的弹出操作。
将此内部类的对象作为MenuActions类的成员变量,然后再使用static定义一个静态区域进行初始化。
类在被加载时,首先执行static定义的静态区域内部的代码,且只会被执行一次。
同理,菜单栏中其他菜单项与子菜单中的菜单项也是以相同方式被封装到MenuActions类中。
4.1.3限制文本框长度类的编写
在Swing语句创建的窗体中,当JTxetField组件创建时,可以指定文本框的宽度。
但当JTextField的构造器中设定的宽度并不是用户能输入的字符个数上限,用户可以在文本框中输入一个更长的字符串,此时需要限制用户输入字符串的长度,故创建了限制文本框输入长度的类MyDocument.java。
创建此类的具体步骤如下:
1.创建MyDocument.java类,此类继承PlainDocument类。
2.在MyDocument.java类中创建两个构造函数,其中一个是有参数的,另一个是无参数的。
3.重载父类方法inserStrng(),在此方法中限定文本框允许输入字符串长度。
4.1.4描述组合框索引与内容类的编写
在程序编写的过程中,经常会遇到组合框组件的应用。
有时要在窗体的组合框中显示具体内容,通常需要在数据库中存储此组合框的索引值,这时便需要使用一种数据结构将组合框中的内容与索引值联系在一起。
Java.util.Map形式是比较好的选择,可以使用Map接口中的put()方法将索引值与具体内容放入集合中,当得到索引值时获取具体内容可以使用Map接口中的get(key)方法。
描述组合框索引与内容类的编写步骤如下:
1.创建组合框组件的索引值与其所对应的内容的Item.java类,这个类中不仅包含代表组合框索引的成员变量id和代表组合框内容的成员变量name,还包括着两个成员变量的setXXX()、getXXX()方法。
2.创建MapPz.java类,使用Map
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 JAVA 图书 管理 系统 设计 实现