基于java语言下开发的图书增查删改管理系统

1.设计背景

图书馆作为每个大学或者城市必不可少的部分,其存放的海量书籍与文献使得其管理显得尤为困难,此时图书管理系统就起到了一个重大的作用。本次就将使用java语言中的异常处理,多态,继承,封装,接口等知识点,来综合性的设计与实现出一个简易的图书管理系统。

2.设计思路

首先我们需要区分出管理员与普通用户,不同的用户所展示的界面不同,利用继承和多态可以实现这一思路;

②我们可以将各个操作都封装起来,单独的设计成一个类,且这些操作都需要遵循一定的规范,而接口实际上就是定义了一种规范,这里可以使用接口来进行实现。

③我们需要将书的属性进行封装,同时设立一个书架类,即存放的是书的数组。

④我们需要实现管理员能够添加书籍,查找书籍,删除书籍以及显示书籍;

⑤读者能够实现查找书籍,借阅书籍以及归还书籍。

3.模块展示及代码演示

3.1 Book类的实现

我们这里书籍的属性有书名、作者、价格、类型以及是否被借出,我们结合封装性,将属性设置为private权限,并提供相应的get方法和set方法,空参构造器,以及一个不包含是否被借出的构造器(布尔值的默认类型就是false,可以不进行初始化)并需要提供对应的toString()方法的重写(具体重写情况看展示效果),代码实现如下:

3.2 BookList类的实现(书架)

BookList类我们主要提供一个ArrayList的泛型数组来进行Book的存储,便于后面对书籍的操作。

BookList类我们提供一个私有的ArrayList的泛型数组,同时在空参构造器中对其初始化,先加入几本书籍,并提供对应的get和set方法,具体代码实现如下:

3.3 异常类的实现(OperationException)

异常的出现一般出现在操作中,我们可以通过自定义异常类的方式来处理不同异常情况的发生(也可以不进行定义),我们的自定义也提供一个空参构造器,和一个有参构造器用来打印异常信息(自定义异常类需要继承Exception类),代码实现如下:

3.4 用户类的实现

用户类中,我们需要定义用户的名字,同时定义一个抽象方法menu()来给子类管理员类和读者类重写(二者的目录不同),同时要提供setget方法,并提供抽象Operation方法给子类重写使用(子类的目录不同,执行的操作就会存在差异),代码实现如下:

3.5 操作接口的实现(定义规范)

我们需要执行的操作有增加,删除,显示,查找等,他们都需要遵循一定的规范,而这个规范就由接口来实现,在增删查改等操作中,他们的主要方式就是工作,即work(),故接口中提供对应的work()方法供接口的实现类,即各种操作进行重写,代码实现如下:

3.6 操作类的具体实现

3.6.1 增加操作

我们需要将操作类实现操作接口,同时为重写的方法提供书架类,便于进行操作。代码实现如下:

添加操作并没有什么异常,在简易图书系统中不需要对书籍的信息进行检验。

3.6.2 查找操作

查找操作只有两种情况,一种是找到了,另一种自然就是没找到,在没找到的时候我们就可以选择抛出一个异常,查找操作的具体实现还是通过遍历来实现,代码如下:

3.6.3 删除操作

删除操作同理,也是提供相应的书名,然后进行搜索,如果找到了,就使用remove()方法进行删除,否则就抛出一个异常,具体还是通过遍历实现:

3.6.4 显示操作

显示操作较为好实现,因为重写过booktoString()方法了,所以可以直接遍历BookList进行输出即可,代码如下:

3.6.5 借书操作

借书操作的实现也相同,先提供一个书名,然后遍历书架,若有则判断其是否已被借出,如果是,则抛出一个异常,否则就借出成功,并更改书的借出状态;若没有,即抛出一个未找到的异常。

3.6.6 还书操作

还书操作的过程,也是提供相应的书名,遍历书架,若有该书,则进行归还,同时设置其状态为未被借出状态;如果未找到该书,也抛出一个异常。

3.6.7 退出功能

退出功能的实现较为简单,我们这里使用System类中的静态方法exit来进行实现,代码如下:

3.7 管理员类的实现

首先,管理员类需要继承于用户类,同时实现用户类中的抽象方法menu(),同时实现抽象方法Operation()这里可以利用接口的多态性来进行实现,同时我们要对Operation抛出的异常进行处理,同时抛出在选择过程中会出现的异常,代码如下:

3.8 读者类的实现

读者类与管理员类同理,代码如下:

3.9 Test

此时,我们所有的框架都已经搭建好了,只需要在Test类中添加main方法进行测试即可,代码如下:

本项目中使用的电脑配置有:

开发软件:Windows10,idea。JDK19.

调试过程中遇到的问题很多,以上问题均来自CSDN,博客园等论坛上解决。

得到的经验较为颇多。

整体效果展示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值