java - 图书管理系统之需求分析篇

图书借阅管理系统需求分析和功能划分

前言:此项目为学校寒假实训项目,需求求分析是老师提供的,仅供学习使用。

1 项目提出

随着计算机的普及和信息技术的发展,人们的生活发生了日新月异的变化,各类计算机软件逐渐渗透到了社会的每个角落,大大地改善了人们的生活质量,提高了人们的工作效率。在高校中,图书借阅是学生获取知识的一个很重要的途径,如何既能方便学生借书,又能减轻图书馆管理人员的工作负担,高效地完成图书借阅管理工作,是一件非常重要的事情。

A高校拥有一个小型图书馆,为全校师生提供学习、阅读的空间。近几年来,随着生源的不断扩大,图书馆的规模也随之扩大,图书数量也相应地打量增加,有关图书借阅的各种信息成倍增加。面对如此巨大的信息量,图书馆管理人员很难支撑,因此,学校领导决定建立一套合理实用的图书借阅管理系统软件,以对校内的图书借阅信息进行统一、集中的管理。


2 需求分析

图书借阅管理系统,能够实现计算机化的图书借阅管理,能够提供方便快速的图书信息检索功能和便捷的图书借阅和归还功能,并且能够对图书信息和读者信息进行管理,方便管理员和读者的借阅处理。要求系统具备以下特点:

(1)操作简单,易用。

(2)数据存储可靠,具备较高的处理效率。

(3)系统安全、稳定。

(4)开发技术先进、功能完备、扩展性强。

2.1功能需求分析

本系统主要实现对图书馆图书借阅信息的管理,主要管理读者信息、图书信息、借阅与归还信息、系统用户的信息。

(1)读者信息管理:能够对读者的基本信息进行管理,包括新增读者,如学校新来一名教师,想要借书,就必须先添加读者信息;读者信息的修改,如学生转到别的专业,此时要修改学生的基本信息;删除读者的信息,比如某个学生中途退学了,可以将其信息删除。查询读者的信息,比如有同学拾到了一张借阅卡,卡上有学生的编号,通过此号来查询学生的联系电话,从而可以找到学生。

(2)图书信息管理:能够对图书的基本信息进行管理,包括新增图书,学校每年会购进新书,此时需要将新书的信息录入系统中;图书信息的修改,如学生借书后将图书丢失,此时需要修改图书的总数量,使总数减1;删除图书,学校在购进新书的同时,每年会对过期的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除。查询图书的信息,比如要查看有哪些是Java相关的书籍或者指定ISBN号的图书等。

(3)图书借阅信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、借阅时间等信息。

(4)图书归还信息管理:能够对图书的借阅信息进行记录,包括读者信息、图书信息、归还时间、是否超期、罚金等信息。

(5)系统用户信息管理:能够对系统用户的信息进行管理,包括增加新的系统操作用户,对当前系统用户的密码进行修改,以及删除某一用户。

根据上述功能需求,本系统具体的功能模块图如下图所示:

本系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。

(1)读者信息管理:包括读者信息添加和读者信息查询与修改功能。用户登录成功之后,可以浏览所有读者的信息,也可以检索特定读者的信息;同时,可以对读者信息进行维护,包括增加、删除及修改。具体信息包括读者类型、读者姓名、出生日期、性别、电话、所在院系、注册日期等。

(2)图书信息管理:包括图书信息添加和图书信息查询与修改功能。用户登录成功之后,可以浏览所有图书信息和检索特定图书的信息;也可以对图书信息进行维护。包括添加图书、删除图书以及修改图书信息。具体信息包括:图书ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类别等。

(3)图书借阅管理:包括图书借阅和图书归还功能。图书借阅功能,先输入读者的编号,然后输入要借阅的图书的信息,记录系统当前时间即借阅时间;图书归还功能,输入读者的编号,选择其名下已借阅的图书,判断当前日期即归还日期与借阅日期的差值是否超过了规定的期限,计算罚金,从而进行图书的归还操作。具体信息包括:借阅日期、归还日期、罚金。由于要计算罚金,故需要知道该读者的读者类型,根据类型判断其可借图书天数、可借图书数量等。

(4)基础信息维护:包括图书类别设置、读者类别设置及罚金设置。图书类别设置,可以对图书的类别进行增加、删除、修改和查询;读者类别设置可以对读者的类别进行增加、删除、修改和查询;罚金设置,可以指定超期一天的罚金标准。

(5)用户管理:包括修改密码、用户添加和删除。修改密码,是指当前用户修改自己的密码;用户添加和删除,是对新增和去除系统用户时对用户信息的维护。

根据上述功能的描述,系统的管理员即操作用户 需要先登录,然后才能使用系统的各项功能,会涉及相应的信息。具体的图书借阅管理系统的流程图如下图所示:


2.2数据库需求分析

根据以上功能分析,涉及到的数据如下:

读者姓名、出生日期、性别、电话、所在院系、注册日期、读者类型(可借阅天数、可借阅数量)等。

图书ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类别等

读者、所借图书、借阅时间、归还日期、罚金

用户名、密码

3.系统概要设计

3.1 数据库设计

3.1.1 数据库概念结构设计

读者实体:读者编号、读者姓名、出生日期、性别、电话、所在院系、注册日期

读者类型:读者类型编号、读者类型名称、可借阅天数、可借阅数量

图书实体:图书编号ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类型

图书类型:图书类型编号、图书类型名称

用户:用户编号、用户名、密码

 

3.1.2 数据库逻辑结构设计

(1)图书(图书编号ISBN,图书类型编号,图书名称,作者,出版社,出版日期,印刷次数,单价)

(2)图书类型(图书类型编号,图书类型名称)

(3)读者(读者编号,读者类型编号,姓名,年龄,性别,电话,所在系部,注册日期)

(4)读者类型(读者类型编号,读者类型名称,最多可借图书数量,最长可借图书天数)

(5)用户(用户编号,用户名,密码)

(6)图书借阅(读者编号,图书编号,借阅日期,归还日期,罚金)

3.1.3数据库物理结构设计

数据库管理系统选择SQLServer,根据SQLServer特点,设计数据表如下:

表1 读者信息表 reader

字段名

类型

长度

是否为空

描述

readerid

char

8

读者编号(主键)

type

int

 

读者类型编号

name

char

20

读者姓名

age

int

 

年龄

sex

char

4

性别

phone

char

11

联系电话

dept

varchar

20

所在系部

regdate

date

 

注册日期

 

表2 读者类型表readertype

字段名

类型

长度

是否为空

描述

id

int

 

读者类型编号(主键)

typename

varchar

20

读者类型名称

maxborrownum

int

 

最多可借阅图书数量

limit

int

 

最长可借阅图书天数

 

表3  用户表 users

字段名

类型

长度

是否为空

描述

id

int

 

用户编号(主键)

name

varchar

20

用户名称

password

varchar

20

用户密码

表4 图书信息表 book

字段名

类型

长度

是否为空

描述

ISBN

char

10

图书的ISBN(主键)

typeid

int


图书类型编号

bookname

varchar

30

图书名称

author

varchar

30

作者

publish

varchar

30

出版社

publishdate

date

 

出版日期

publishtime

int

 

印刷次数

unitprice

money

 

单价

 

表5 图书类型表booktype

字段名

类型

长度

描述

id

int

 

图书类型编号(主键)

typename

varchar

30

图书类型名称

 

表6 图书借阅表borrowbook

字段名

类型

长度

是否为空

描述

readerid

char

8

读者编号(组合主键)

ISBN

char

10

图书ISBN(组合主键)

borrowdate

date

 

借阅日期

returndate

date

 

归还日期

fine

money

 

罚金

3.2 体系架构设计

      系统采用三层架构模式

      (1)表现层(UI):展现给用户的界面,用户在使用一个系统的时候他的所见所得。

      (2)业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

      (3)数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、 删除、修改、更新、查找等。

      (4)实体层(Model):独立于三个层次,倾向于业务逻辑层(三层),用来封装数据,在三层间传送数据。Model不引用各层次,但三个层都会引用Model。

优点:

低耦合 、高重用 和使用、低开发成本、快速部署、可维护、利于 软件开发管理,分层同时也简化了分组开发。不同的开发人员可同时开发表示层、业务逻辑层和数据访问层。

4.1 实体层

在实现功能的过程中,需要对数据表进行操作,可以在程序中直接访问数据库,但这样降低了系统的安全性,同时后续维护和扩展也不方便。因此可以建立实体类,实现数据库表的映射,封装数据库中的数据,通过对实体类的操作,映射到数据库表,既提高了系统的安全性,使代码简介,又提高了复用性和可扩展性。

根据数据库表,结合功能设计,设计6个实体类。

Book.java:ISBN,typeid,bookname,author,publish,pubilishdate,printtime,unitprice,typename

BookType.java:typeid,typename

BorrowBook.java:readerid,ISBN,borrowdate,returndate,fine

Reader.java:readerid,name,sex,age,dept,phone,regdat,limit,maxborrownum,type,typename

ReaderType.java:typeid,typename,limit,maxborrownum

Users.java:id,name,passwowrd

4.2 表示层设计

这里暂时省略:随后会贴出个个界面设计的链接。


4.3 数据访问层设计

创建一个基本数据访问操作类Dao.java,主要用于数据库的连接和执行基本的SQL语句。设计其包含的方法如下:

(1)Dao():构造方法,实现数据库连接,获取连接对象conn

(2)StaticResultSet executeQuery(String sql):静态方法,执行SQL查询操作,返回结果集对象ResultSet

(3)Staticint executeUpate(String sql):静态方法,执行非查询操作,返回值为受影响的行数。

(4)close():关闭数据库连接

4.3.1读者信息管理

      ReaderDao.java:完成读者信息添加和读者信息查询与修改功能。

      (1)读者信息添加

      根据输入的读者编号、姓名、类别、性别、年龄、电话、所在部门、注册日期,完成读者信息的录入。其中要求读者编号和姓名不能为空,读者编号长度为8。

publicstatic int insertReader(String id, String typename,String name,String age,String sex, String phone, String dept, String reg){…}

      (2)读者信息查询与修改

      用户登录成功之后,可以查询全部读者信息,也可以分别根据读者编号、读者姓名、读者部门、读者类型查询读者信息。

publicstatic List<Reader> selectReader(){…..}

publicstatic List<Reader> selectReaderById(String id){…..}

publicstatic List<Reader> selectReaderByName(String name){…..}

publicstatic List<Reader> selectReaderByType(String type){…..}

publicstatic List<Reader> selectReaderByDept(String dept){…..}

      读者信息修改根据查询到的读者信息,可以修改各部分。

publicstatic int updateReader(String id, String typename, String name, Integer age,String sex, String phone, String dept, String reg)

4.3.2 图书信息管理

BookDao.java:完成图书信息添加和图书信息查询与修改功能。

(1)图书信息添加

      根据录入的图书ISBN、类别、图书名称、作者、出版社、出版日期、印刷次数、单价完成图书信息添加。

publicstatic int insertBook(String ISBN, String typename, String Bookname, Stringauthor, String publish, String publishdate, Integer printtime, Double price){……}

      (2)图书信息查询与修改

      用户登录成功之后,可以浏览所有图书信息,也可以根据ISBN、图书名称、图书类别、作者、出版社检索特定图书的相关信息。

publicstatic List<Book> selectBook(){….}

publicstatic List<Book> selectBookByISBN(String ISBN){….}

publicstatic List<Book> selectBookByName(String name){….}

publicstatic List<Book> selectBookByType(String type){….}

publicstatic List<Book> selectBookByAuthor(String author){….}

publicstatic List<Book> selectBookByPublish(String Publish){….}

      图书信息修改根据查询到的读者信息,可以修改各部分。

publicstatic int update(String ISBN, String type name, String bookname, Stringauthor, String publish, String publishdate, Integer printtime,Double unitprice)

4.3.3 图书借阅管理

BookBorrowDao.java:包括图书借阅和图书归还功能。

(1)图书借阅

      根据用户输入的读者编号,则显示出该读者的姓名、类别,及该读者的借阅情况。然后录入该读者的最新借阅的图书ISBN,显示出该图书的相关信息,确定借阅后,将该借阅信息录入(包括读者编号、图书ISBN,当前日期即借阅日期)。

publicstatic List<BorrowBook> selectBorrowByReaderId(String readerid){….}//查询指定编号读者的借书信息

publicstatic int borrowBook(String readerid,String ISBN, Date borrowdate){…}//图书借阅,借阅者的编号,图书编号,借阅日期

(2)图书归还

图书归还功能,输入读者的编号,则显示出该读者名下已借阅的图书,选中要归还的图书,判断当前日期即归还日期与借阅日期的差值是否超过了规定的期限,计算罚金,从而进行图书的归还操作,更新借阅信息表的归还日期为当前日期。

publicstatic int returnBook(String readerid,String ISBN,Date returndate) {…}//图书归还,还书者的编号,图书编号,借阅日期

4.3.4 基础信息管理

      包括图书类别设置、读者类别设置及罚金设置。图书类别设置,可以对图书的类别进行增加、删除、修改和查询;读者类别设置可以对读者的类别进行增加、删除、修改和查询;罚金设置,可以指定超期一天的罚金标准。

(1)图书类别设置

      BookTypeDao.java图书类别设置包括查询所有图书类别信息,查询指定类型名的图书类型信息,添加图书类型,修改指定编号的图书类型信息,删除指定类型编号的图书类型。

publicstatic List<BookType> selectBookType(){…}

publicstatic List<BookType> selectBookType(String type){…}

publicstatic int insertBookType(Integer id, String typename){….}

publicstatic int updateBookType(Integer id, String typename){….}

publicstatic int deleteBookType(Integer id){….}

(2)读者类别设置

      ReaderTypeDao.java读者类别设置包括查询所有读者类型信息,查询指定类型名的读者信息类型,添加读者类型,修改指定编号的读者类型信息,删除指定类型编号的读者类型。

publicstatic List<ReaderType> selectReaderType(){…}

publicstatic List<ReaderType> selectReaderType(String type){…}

publicstatic int insertReaderType(Integer id, String typename, Integer num, Integerlimit){….}

publicstatic int updateReaderType(Integer id, String typename, Integer num, Integerlimit){….}

publicstatic int deleteReaderType(Integer id){….}

4.3.5 用户管理

      UserDao.java具体包括登录系统的时候,判断用户名和密码是否有效;查询所有用户信息;添加用户;修改指定编号的用户的密码;删除指定编号的用户信息。

publicstatic Users check(String name, String password){…}

publicstatic List<Users> selectUser(){….}

publicstatic int insertUser(String name, String password){…}

publicstatic int updateUserPWD(Integer id, String pwd){…}

publicstatic int deleteUser(Integer id){…}




 

 

 

 

 

 

 

 

 

 

 

 

 

需求分析报告§1 概述目前的图书馆多为手工管理,手续繁琐,耗费大量的人力,而且由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。因此,我们设计这个图书馆系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况。同时本系统基于WEB页面有很好的连网功能,也便于在校教师,学生查询自己的借阅信息,在馆图书情况,下载所需资源,大大节省了图书馆的人力资源,方便了教师、学生的借阅,查询。§1•1 背景随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。目前学校图书馆的借阅工作部分还是手工管理,工作效率很低,并且不能及要求。手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对学生们的借阅过程形成一整套动态的管理。§1•2系统目标1. 实现图书馆对在馆图书的按类别,书名,作者,是否已被借出等多方面的查询。2. 实现图书馆对新书入库,旧书注销的简单处理,并且建立书籍档案,方便图书管理。3. 对在馆图书进行编辑,包括添加图书信息、删除图书信息、修改图书信息。4. 建立图书馆外借读者数据库,包括添加读者信息、删除读者信息、修改读者信息。5. 可以按读者编号查询读者信息,包括该读者所借图书名称,归还日期等信息。6. 设立讨论区,方便管理员与读者之间的交流。7. 电子资源下载:实现读者对电子文档,随书光盘的下载的功能。1.1编写目的如今有些图书馆现为手工管理,效率低、易出错、手续繁琐,耗费大量的人力,而且数据处理手工操作,工作量大,出错率高,出错后不易更改。由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。因此,我们设计这个图书馆系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况。同时本系统基于WEB页面有很好的连网功能,也便于在校学生查询自己的借阅信息,在馆图书情况,可以在网上自行续借图书,大大节省了图书馆的人力资源,方便了学生、教师的借阅,查询。可行性研究报告 41引言 41.1编写目的 41.2背景 51.3参考资料 52可行性研究的前提 52.1要求 52.2目标 52.3条件、假定和限制 52.4评价尺度 63对现有系统的分析 63.1处理流程和数据流程 64.3改进之处 74.4影响 74.4.1对系统运行过程的影响 74.4.2对开发的影响 84.4.3对经费开支的影响 84.5技术条件方面的可行性 86结论 8需求分析报告 9§1 概述 9§1•1 背景 9§1•2系统目标 9§2 业务逻辑和数据流图 10§2•1总体功能结构: 10§2•2数据流图 10一层数据流图 11二层数据流图 12三层数据流图 13§3数据调查及分析 14§4系统特点 14§4•1性能要求: 14§4•2运行环境: 151. 推荐配置: 152.支持软件: 15§4•3数据的安全性: 15详细设计说明书 161引言 161.1编写目的 162图书馆在线系统结构 163程序描述 173.1数据字典 173.2文件字典 173.3数据项条目 173.4主要程序代码 184程序代码设计 194.1 服务器根据要求到数据库中查找数据,并进行数据处理 194.2 相关数据参数在各个板块之间传递 204.3 向用户显示信 23用户手册 241引言 241.1编写目的 241.2背景 241.3参考资料 242用途 253运行环境 253.1硬设备 253.2支持软件 254使用过程 254.1创建主目录 254.2数据库配置 264.3用户注册与登录 274.4图书查询 294.5 下载功能 324.6 小型论坛讨论区 33系统总结报告 35
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值