javaSE_《图书馆管理系统》_

Posted D大调奏鸣曲_第七序章_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaSE_《图书馆管理系统》_相关的知识,希望对你有一定的参考价值。

目录

引言

一、项目说明

二、项目内容

三、项目设计

实体类:

读者信息管理:

图书信息管理:

图书借阅管理:

基础信息管理:

用户管理:

四、项目预设

1、存取方法

2、数据结构

 五、代码区

六、 不见竹马,竹马远去


引言


终于做完了这个项目...... 

一、项目说明


1、长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较烦琐。在借书时,读者首先将要借的书和借阅证交给工作人员,然后工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。太过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。

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

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

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

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

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

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

二、项目内容


 项目功能如下:

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

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

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

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

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

三、项目设计


实体类:

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

读者信息管理:

(1)读者信息添加

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

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

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

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

图书信息管理:

(1)图书信息添加

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

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

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

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

图书借阅管理:

1)图书借阅

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

2)图书归还

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

基础信息管理:

(1)图书类别设置

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

(2)读者类别设置

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

 (3)罚金设置

      罚金设置,可以指定超期一天的罚金标准。

用户管理:

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

四、项目预设


1、存取方法

因为是用IO流做的这个项目,而我在开头吃了很大的亏,所以想说说项目如何开头这件事。

IO流很多方法,因为涉及文件,涉及对象与对象之间的存与用。所以,一定要一开始就决定在这个项目中,用什么方法!

我收集了很多的不同做法,总结下来如下:

最简单的——Properties。(自我觉得)(Properties+IO流交互,用数组split分割的方法,真的很简单,万物皆可存。)

最方便的——序列化。(有一定水准的人可以用序列化与反序列化来做这一个项目,存取相当方便,将对象存入集合,集合序列化文件中,增删改查,有手就行。)(只是,你要能熟练运用。)

老生常谈的——集合。(用集合存来存取,增删改查。就在集合中操作,跟文件中存取,增删改查大差不离,只是要学会与时俱进而已。但能做出来什么不行?)

未来可期的——数据库。(重构版在等着我,做出来了再给你们说。)

2、数据结构

只要是一组数据,你就可以存进文件,但是,这组数据——你想过怎么存怎么取都方便吗?

 所以,我在这提醒一下,关于数据结构的形式,此结构非彼数据。

首先,是关于整体架构的。

你要理清关于这个图书馆管理系统的步骤,比如画一个思维图,怎么进入图书馆系统,怎样设置读者,设置图书,设置文件存取,设置用户,设置类型区分......(这个理不清后续就很麻烦。)

其次,是关于结构关联的。

上面我们设置了很多东西,而这系统是一个整体性的,那我们就需要知道,设置这一步是为了什么,设一想三,连通有无,事半功倍。(否则就是事倍功半了。)

最后,是关于BUG的。

我设置的一个自动序号,我到现在想想都脑袋大,因为卡了我很久,因为很麻烦。我来告诉你们原因。我用的Properties,然后我存的这个键值很复杂,因为是唯一编号,所以我存的时候,这个键:读者编号+自动序号+图书借阅返回值。

对,这就是一个键!

但很有用,首先唯一,再是序号利用(最大借阅数量相关),最后图书借阅返回值(一目了然就能判断出你借了多少书,还了多少书,有没有罚金等一系列功能。)

而BUG,就是这个自动序号,卡了我三天!!!

取出来,让他自己随着其中一本书被归还,然后自动降序......最后是一个字符流读取,集合录入,数组切割,分段修改,最后存会文件。

反正我弄不出来,问的老师。所以,这才是关键!!!问吧,什么都会有的。

 五、代码区


 Account:账户文件夹

domain:实体类

Information:各种存入的文件信息(读者信息,图书信息,借阅信息等)

service:各种操作类(控制操作,增删改查尽在此)

view:展示类(各种展示类的界面尽在此,最后统一展示,简洁明了)

完整源码:

https://pan.baidu.com/s/1Z9vVK2uwzAgu9__X-DQxaQ

提取码:sgr8

   

六、 不见竹马,竹马远去

《永远记得你》
                   ——王茂

每一次遇见你都佯装欢喜
生怕时光太钝磨损了记忆
醒来后误以为你近在咫尺不离不弃

你的美定格在二十四岁的写真里
百般俊俏的摄影姿势引人着迷
千种卖萌的表情诠释你天使样的淘气

像孩子,你借洛丽塔演绎花开荼蘼
像老妪,你沧桑落笔泣鬼神惊天地
许是精灵,伤神于你的古怪与神秘

可不可以未经允许写一百首情诗给你
续到第八十八期已痛到无法呼吸
佳人如云,谁能轻易将你代替

未曾青梅,青梅枯萎,芬芳满地
不见竹马,竹马老去,相思万里
从此,我爱上的人都很像你

你哀泣,风一样的女子怎会惹人掂记
你看,你赢得多么彻底
我独哼恋曲,永远记得你

以上是关于javaSE_《图书馆管理系统》_的主要内容,如果未能解决你的问题,请参考以下文章

图书馆管理系统_三层架构_MySQL

求图书管理系统(java)代码?

基于JavaSE + JDBC的图书管理系统

javase基础第十五篇:图书管理系统

数据库设计___学生图书管理系统

基于flask的图书管理系统-蓝图