文档库

最新最全的文档下载
当前位置:文档库 > 毕业论文(基于JAVA的图书管理系统)

毕业论文(基于JAVA的图书管理系统)

目录

一、需求分析 (2)

1、系统设计背景 (2)

2、需求分析 (2)

3、可行性分析 (3)

二、系统开发技术介绍 (3)

1、JAVA简介 (3)

2、MVC模型 (4)

3、数据库 (5)

三、系统需求分析 (6)

1、功能需求 (6)

2、性能需求 (7)

3、运行需求 (7)

4、数据需求 (7)

四、数据库设计 (8)

1、数据处理流程 (8)

2、系统数据库设计 (9)

五、系统实现 (13)

1、系统总体结构设计 (13)

2、系统模块实现 (14)

六、小结 (22)

图书管理系统的设计

摘要:二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。如何获取信息?

图书是我们最好的获取信息的方式。科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,

使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入

一个崭新的时代。因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的手工图书管理

方式彻底的解脱出来,提高效率,减轻图书管理员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在自己喜

欢的书上。从而使读者更好的获取信息、了解信息、掌握信息

关键词:JAVA;SQL语言; MY SQL;数据库;数据库组件;图书管理系统;手工图书管理;设计;信息

一、需求分析

1、系统设计背景

本图书管理系统是针对学校的图书馆日常操作业务而开发的管理软件。根据管理员、读者借阅的需求,实现图书、读者之间的有序化,信息化管理。本系统主要由这几个模块组成:日常借阅操作、读者管理、图书管理、书籍管理、系统设置、系统查询等。

图书管理系统通过录入图书的详细资料,建立读者档案、系统用户资料,设置各类参数(如:读者类别、图书类别等等),找出图书与读者之间的对应关系,实现日常的借阅操作。基于得到的这些基础数据,系统自行生成相应的统计数据以供管理员查询、分析;另外,管理员还可以对这些基本信息进行定期的数据更新和数据库维护;为读者借阅时提供图书是否在馆,以及自己借书、还书等情况的查询功能,图书管理系统力求给图书管理员提供操作简单、方便快捷的途径去管理这些庞大,繁琐的信息和图书。

2、需求分析

图书管理主要是对图书的借阅与归还管理,系统的功能设置都应该围绕着两个基本功能展开。作为一个完整的图书管理系统应该具有以下功能:图书管理功能、读者管理功能、借阅管理功能、系统维护功能。

众所周知,传统手工借阅图书过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。在图书管理系统中,管理员要为每个读者建立借阅账户,并給读者发放不同类别的借阅卡(借阅卡可提供卡号、读者姓名),账户内存储读者的个人信息和

借阅记录信息。持有借阅卡的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书(系统审核符合续借条件)。

借阅图书时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。归还图书时,输入读者借阅卡号和图书号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。如果有超期借阅或丢失情况,先转入过期罚款或图书丢失处理。然后提交还书请求,系统接受后删除借阅纪录,并登记并修改可借阅图书的数量。

图书管理员定期或不定期对图书信息进行入库、修改、删除等图书信息管理以及注销(不外借),包括图书类别和出版社管理。

为系统维护人员提供权限管理、数据备份等通用功能。

3、可行性分析

本次毕业设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现学校(管理员)对图书多项管理。同时对整个系统的分析、设计过程给出一个完整论

图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为学校(管理员)提供极大的帮助

本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计、系统输入/输出设计等。作这些工作需对数据库知识有足够认识,并深入的了解Eclipse8.5的使用和管理系统的相关知识。

在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。

二、系统开发技术介绍

1、JAVA简介

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programmi

ng Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为J ava1.7。

Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(J ava 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。

2、MVC模型

(1)MVC简介

M VC三层架构也称MVC模式,主要是将程序开发分为MODEL层(数据持久层)、VIEW(界面表示层)、CONTROL层(控制层)这三个层面,并将这三个层面分开来,形成了一个立体的架构。三个层次之间的主要交互如图1所示:

毕业论文(基于JAVA的图书管理系统)

图1 MVC三层构架

①视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

②模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。

③控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

(2)MVC设计模式的优点

首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。

再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。

控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。

最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码

3、数据库

(1)My Sql简介

My SQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。My SQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。My SQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序my sqld和很多不同的客户程序和库组成。

SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时My SQL也足够快和灵活以允许你存储记录文件和图像。

My SQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,My SQL就开发出来。自1996年以来,我们一直都在使用My SQL,其环境有超过40 个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。

My SQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管My SQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。

(2)SQL基础

SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、Microsoft SQL Server、Access、MY SQL等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的

SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。MS SQL Server 就是用的Transact- SQL。

SQL语言有着非常突出的优点,主要是:

n 非过程化语言

n 统一的语言

n 是所有关系数据库的公共语言

非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。

统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。

SQL为许多任务提供了命令,其中包括:

n 查询数据

n 在表中插入、修改和删除记录

n 建立、修改和删除数据对象

n 控制对数据和数据对象的存取

n 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL 的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。

三、系统需求分析

1、功能需求

(1)功能划分

该软件具有如下主要功能:

①查询功能;

②插入功能;

③修改功能;

④删除功能;

⑤浏览功能;

⑥授权功能;

(2)功能描述

①查询功能

按照图书相应属性查询;

按照读者相应属性查询;

书目和读者相关匹配查询;

按照管理员相应属性查询;

②插入功能

增加一个图书记录;

增加一个读者记录;

增加一个管理员记录;

③修改功能

修改某一已存在的记录内容;

④删除功能

删除一个记录;

⑤浏览功能;

管理员浏览图书信息和读者信息;

2、性能需求

(1)数据精确度

查询时应保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准率。

(2)时间特性

一般操作的响应时间应在1-2秒内。

(3)适应性

满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。

3、运行需求

(1)用户界面

Web界面

(2)软件接口

运行于Windowsxp及更高版本

(3)故障处理

正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。

4、数据需求

(1)静态数据

图书管理系统的静态数据包括:

图书:书编号,书名,书类型,作者,出版社,出版社时间,价格,;

管理员:用户名,密码;

读者:读者号,电话,姓名,性别,地址,卡类型,备注,生日,卡号;

(2)动态数据

输入数据:查询方式、查询关键字;

登记新图书、新读者;

图书、读者情况的更改;

借阅、返还时的图书编号、读者卡号;

输出数据:查询出的记录集;

四、数据库设计

1、数据处理流程

(1)登陆流程

①要求管理员输入用户名及密码。

②建立与数据库的连接。

③权限检验。

④根据操作权限显示主界面。

(2)主流程

等待管理员操作。

如为管理员权限操作:进入管理员权限流程。

如为图书类型管理操作:进入图书类型管理流程。

如为读者类型管理操作:进入读者类型管理流程。

如为图书档案管理操作:进入图书档案管理流程。

如为读者档案管理操作:进入读者档案管理流程。

如为借书操作:进入借书流程。

如为还书操作:进入还书流程。

如为续借操作: 进入续借流程。

如为图书借阅查询操作:进入图书借阅查询流程。

如为修改口令操作:进入修改口令流程。

如为退出操作:进入首页,结束主流程。

(3)借书流程

①要求管理员输入读者号和图书编号。

②检验读者号是否存在。

③确认存在后提交借书请求,更新信息,把借书信息写入数据库,

显示借书操作结果。

④完成借书操作,结束借书流程。

(4)还书流程

①要求管理员输入读者号。

②检验读者号是否存在。

③确认存在后提交还书请求,更新信息,把还书信息写入数据库,显示还书操作结

果。

④完成还书操作,结束还书流程。

(5)续借流程

①要求管理员输入读者号。

②检验读者号是否存在。

③确认存在后提交续借请求,更新信息,把续借信息写入数据库,显示续借操作结

果。

④完成续借操作,结束续借流程。

(6)修改口令流程

①要求管理员原密码和修改后的密码。

②检验原密码是否正确和两次密码输入是否一致。

③确认存在后并且两次密码输入一致后写入数据库。

④完成修改口令操作,结束修改口令流程。

(7)图书借阅查询流程

①要求管理员输入图书编号或者读者号。

②检验读者号或者图书编号是否存在。

③确认存在后提交查询请求,再数据库中查询所需要的数据,显示续借操作结

果。

④完成图书借阅查询操作,结束图书借阅查询流程。

(8)图书档案管理流程

①管理员可以对图书信息进行增删改查操作。

②确认提交后,更新信息,写入数据库,显示操作结果。

③完成操作后,结束图书档案管理流程。

(9)读者档案管理流程

①管理员可以对读者信息进行增删改查操作。

②确认提交后,更新信息,写入数据库,显示操作结果。

③完成操作后,结束读者档案管理流程。

(10)图书类型管理流程

①管理员可以对图书类型信息进行增删改查操作。

②确认提交后,更新信息,写入数据库,显示操作结果。

③完成操作后,结束图书类型管理流程。

(11)读者类型管理流程

①管理员可以对读者类型信息进行增删改查操作。

②确认提交后,更新信息,写入数据库,显示操作结果。

③完成操作后,结束读者类型管理流程。

2、系统数据库设计

(1)ER图

①图书相关表连接,如图2所示。

毕业论文(基于JAVA的图书管理系统)

图2 图书相关表连接

②读者相关表连接,如图3所示。

毕业论文(基于JAVA的图书管理系统)

图3 读者相关表连接③管理员信息相关表连接,如图4所示。

毕业论文(基于JAVA的图书管理系统)

图4 管理员相关表连接

(2)数据库表

①管理员信息表

管理员信息表主要包括管理员编号、管理员密码属性。该表的结构如表1所示。

表1 管理员(tbl_user)表

毕业论文(基于JAVA的图书管理系统)

②读者信息表

读者信息表主要包括读者编号、读者名、读者类别、卡类别、卡号、电话、出身日期、性别等属性。该表的结构如表2所示。

表2 读者信息(tbl_reader)表

毕业论文(基于JAVA的图书管理系统)

③图书信息表

图书信息表主要包括书排行、图书编号、图书名、作者、出版社、出版时间、书价、类别属性。该表的结构如表3所示。

表3 图书信息(tbl_book)表

毕业论文(基于JAVA的图书管理系统)

④借书还书表

借书还书表主要包括图书编号、读者编号、借书时间、还书时间等属性。该表的结构如表4所示。

表4借书还书(tbl_time)表

毕业论文(基于JAVA的图书管理系统)

⑤书种类表

书种类表主要包括图书编号、类型、可借天数等属性。该表的结构如表5所示。

表5书种类(tbl_booktype)表

毕业论文(基于JAVA的图书管理系统)

⑥读者类型表

读者类型表主要包括读者类型、借书数量等属性。该表的结构如表6所示。

表6读者类型(tbl_readertype)表

毕业论文(基于JAVA的图书管理系统)

⑦权限类型信息表

权限类型信息表主要包括用户名、用户权限、系统权限、图书管理权限、读者权限、图书借还权限、系统查询权限等属性。该表的结构如表7所示。

表7权限类型信息(tbl_manager)表

毕业论文(基于JAVA的图书管理系统)

五、系统实现

1、系统总体结构设计

系统总体结构如图5所示

毕业论文(基于JAVA的图书管理系统)

图5系统总体结构

2、系统模块实现

本系统主要包括系统设置、图书管理、读者管理、图书借还、系统查询、更改口令六大模块。以下是各功能模块的具体实现过程:

(1)系统登录页面

系统登录页面,管理员通过输入账号和密码,来进行系统的登录,如果输入的密码错误,会跳出“密码错误”的提示,如果输入的信息和数据库中的数据一致,就会跳转到系统的主页面。系统登录页面对应的页面文件为index.jsp。程序逻辑如图6所示,

页面如图7所示

毕业论文(基于JAVA的图书管理系统)

毕业论文(基于JAVA的图书管理系统)

图6 系统登录页面逻辑

毕业论文(基于JAVA的图书管理系统)

图7 系统登录页面

(2)系统主页面

系统主页面,主导航条在画面上部,包括首页、系统设置、读者管理、图书管理、图书借还、系统查询、更改口令、退出系统这几个模块,鼠标依次移动到每个模块上时,都会出现下拉菜单,进行详细选择,页面的右上方显示登录人员的姓名。进入主页面前,系统对数据库的图书表进行分页查询,

查询出所有图书的部分信息,系统主页面对应的页面文件为main.jsp,如图8所示

毕业论文(基于JAVA的图书管理系统)

图8 系统主页面

(3)管理员权限设置页面

管理员权限设置页面,此页面显示权限比登录人员低的人员的信息,并可以查看他们对哪些模块具有操作权限,可以对此权限进行修改,也可以删除该人员,增加人员等。管理权限设置页面

对应的页面文件为manager.jsp。程序逻辑如图9所示,页面如图10所示

毕业论文(基于JAVA的图书管理系统)

图9 管理员权限设置页面逻辑

毕业论文(基于JAVA的图书管理系统)

图10 管理员权限设置页面

(4)读者档案管理页面

读者档案管理页面,此页面显示所有读者信息,对显示的读者进行分页列出,并可以查看所有读者的详细信息,可以对读者资料进行修改,也可以删除该读者,增加读者等。读者档案管理页面reader.jsp。程序逻辑如图11所示,页面如图12所示

毕业论文(基于JAVA的图书管理系统)

图11 读者档案管理页面逻辑

毕业论文(基于JAVA的图书管理系统)

图12 读者档案管理页面

(5)图书档案管理页面

图书档案管理页面,此页面显示所有图书信息,对显示的图书进行分页列出,并可以查看所有图书的详细信息,可以对图书资料进行修改,也可以删除该图书,增加图书等。图书档案管理页面bookmanager.jsp。程序逻辑如图13所示,页面如图14所示

毕业论文(基于JAVA的图书管理系统)

图13 图书档案管理页面逻辑

毕业论文(基于JAVA的图书管理系统)

图14 图书档案管理页面

(6)图书借阅页面

毕业论文(基于JAVA的图书管理系统)

图书借阅页面,输入读者编号和图书编号,然后进入数据库查找读者编号或者图书编号是否存在,如果存在,在借书还书表上增加数据信息,图书借阅页面bookBorrow.jsp 。程序逻辑如图15所示,页面如图16所示

图15 图书借阅页面逻辑