简易图书馆系统制作

  • 一. 业务设计整体框架
  • 1.1 输入姓名
  • 1.2 选择身份从而进入不同的系统
  • 1.3 选择身份进入
  • 1.3.1 从管理员身份进入:
  • 1.3.2 从普通用户身份进入:
  • 二. 具体代码块的实现以及思路讲解
  • 2.1 包的创建和分类
  • 2.2 定义属性
  • 2.3 创建书架
  • 2.4 方法的分类
  • 2.5 用户的分类
  • 2.6 主函数的实现
  • 2.7 用户的具体实现
  • 2.8 方法的实现



通过JavaSE基础部分的学习,我们可以把基础的部分结合起来做个小项目,此篇就制作了一篇简易的图书馆管理系统,能更好的串联我们所学的知识,也能更好的学以致用

前言:为了更好服务于我们的学习,在图书馆里的一系列操作都会被记录在案,无论是管理员还是普通用户,都可以很好的知晓图书是否外借,以及图书馆里现存的书籍,作为管理员可以增删图书,作为普通用户可以借还书籍,以此达到我们的个人需求。

一. 业务设计整体框架

1.1 输入姓名

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk

1.2 选择身份从而进入不同的系统

java怎么做一个sdk java怎么做一个完整的系统_java_02

可以看到1对应的是管理员身份,0对应的是普通用户

1.3 选择身份进入

1.3.1 从管理员身份进入:

java怎么做一个sdk java怎么做一个完整的系统_数组_03

在图中能知晓管理员菜单:
1对应的操作是查找图书
2对应的操作是新增图书
3对应的操作是删除图书
4对应的操作是显示图书
0对应的操作是退出系统

接下来我们一一完成对应的操作

1查找图书:

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_04


此处输入我们要找的书的名字

java怎么做一个sdk java怎么做一个完整的系统_普通用户_05


输出书的相关信息,有书名,作者名,价格,类型,以及是否借出等状态2新增图书

java怎么做一个sdk java怎么做一个完整的系统_java_06


查阅新增图书之前图书馆有的书:

java怎么做一个sdk java怎么做一个完整的系统_主函数_07


依次输入新增图书名字,作者,类型及价格

java怎么做一个sdk java怎么做一个完整的系统_主函数_08


系统整理新增图书信息并进行打印输出

查阅新增图书之后图书馆有的书:

java怎么做一个sdk java怎么做一个完整的系统_java_09


可以看到我们输入的图书信息被录进去了3删除图书

java怎么做一个sdk java怎么做一个完整的系统_普通用户_10


输入要删除的图书名字

java怎么做一个sdk java怎么做一个完整的系统_java_11


然后再进行显示图书查验是否删除了图书

java怎么做一个sdk java怎么做一个完整的系统_普通用户_12


此时看到《Java图书操作系统》这本书确实被删除了退出系统

java怎么做一个sdk java怎么做一个完整的系统_数组_13

1.3.2 从普通用户身份进入:

java怎么做一个sdk java怎么做一个完整的系统_java_14

在图中可以知晓普通用户菜单
1对应的操作是查找图书
2对应的操作是借阅图书
3对应的操作是归还图书
0对应的操作是退出系统

接下来我们一一完成对应的操作

1查找图书:

java怎么做一个sdk java怎么做一个完整的系统_普通用户_15

输出书的相关信息,有书名,作者名,价格,类型,以及是否借出等状态

2借阅图书

java怎么做一个sdk java怎么做一个完整的系统_主函数_16

借阅图书之前我们已经查到了《三国演义》并且状态是未借出的

java怎么做一个sdk java怎么做一个完整的系统_数组_17

此时我们《三国演义》借阅成功

继续查在系统里查阅三国演义是否借出等状态

java怎么做一个sdk java怎么做一个完整的系统_java_18

可以看出借阅出来了,所以借阅状态成功了,当我们再次借阅《三国演义》的时候就会显示借阅失败,没有此书或已被借出

3归还图书

java怎么做一个sdk java怎么做一个完整的系统_数组_19

当我们再次查阅《三国演义》状态就是未借出的

java怎么做一个sdk java怎么做一个完整的系统_数组_20

0退出系统

java怎么做一个sdk java怎么做一个完整的系统_数组_21

这就是整体的设计,可能有些地方设计的不是很合格,但是我们作为程序员,我们只关注设计的本身,不关注业务本身,业务的设计每个人都会有自己的想法,所以思维的学习和培养很重要

二. 具体代码块的实现以及思路讲解

在详解代码之前,我们需要知道的是在面向对象设计的时候,很多细节处的描写并不是一步到位的,是需要我们一步一步完善改进的,所以对于初学者这也是被劝退的一个点,但是没关系,我们一步步来,知识和经验都是慢慢积累过来的。

2.1 包的创建和分类

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_22

我们需要知道的是①在主函数里进行命令的传递,②书这个类在上面的描写中有许多属性,以及借还都需要利用这个包来操作,③各种数字对应的命令,④赋予普通用户和管理员的各种权限,使他们权限不混合。

2.2 定义属性

首先我们可以对书这个类进行属性的定义,由于为了方便后期书籍的借还所以此处在书这个包当中又分了两个类

第一个类写的是书籍的属性,每次放一本书到书架上,都要构造一个书的对象,所以要写一个构造方法,我们在定义属性的时候用private修饰,我们需要实现对外的接口来让类外和包外拿到属性,以及写一个ToString来对外输出打印,代码如下:

java怎么做一个sdk java怎么做一个完整的系统_普通用户_23

在我们的ToString方法里我们对借还书状态进行了改变,为的是符合我们的需求,对书的借还状态一目了然。

2.3 创建书架

我们还需要创建一个书架类,用来存放我们的书籍,在书籍按顺序存放的时候我们可以看作是数组的存放,所以在book这个包里我们又弄了一个书架类

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_24

在这里面有不解的是我们为何要对数组下标的元素进行操作呢?我们接着往下看

2.4 方法的分类

我们在上文可以看到我们需要查找,借阅,删除等一系列操作,为了方便简洁有效我们直接把各种操作都写成不同的类,放在一个operation包里面

java怎么做一个sdk java怎么做一个完整的系统_数组_25

其中我们可以看到还有一个接口类,它的作用就是规范了标准,利于向上转型,因为在这些类里面,都需要引用BookList数组,所以我们直接抽象化出来

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_26

2.5 用户的分类

在我们的使用者里面又可以分为普通用户和管理员,并且实现一个公共的类,达到共性抽取,且在User里更方便调用两者

java怎么做一个sdk java怎么做一个完整的系统_普通用户_27

2.6 主函数的实现

java怎么做一个sdk java怎么做一个完整的系统_数组_28

在确定调用的对象及对象的方法的时候需要在普通用户,管理员以及User里面实现doOperation方法

2.7 用户的具体实现

User类里的具体实现:

java怎么做一个sdk java怎么做一个完整的系统_数组_29

NormalUser(普通用户)的具体实现:

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_30

AdminUser(管理员)的具体实现:

java怎么做一个sdk java怎么做一个完整的系统_普通用户_31

2.8 方法的实现

我们上面第三步仅仅创建了各种方法的类,并没有具体实现,那我们接下来一一实现:

对所有的方法实现规范,创建一个接口类,并让所有的方法类去继承它:

java怎么做一个sdk java怎么做一个完整的系统_普通用户_32

显示图书:

java怎么做一个sdk java怎么做一个完整的系统_主函数_33

退出系统:

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_34


此处置为null其实也可以不这么做,但是没有null之后在程序运行结束的时候内存才会被回收,当程序一直在运行的时候,内存装满了,这就会发生内存泄漏新增图书:

java怎么做一个sdk java怎么做一个完整的系统_数组_35

查找图书:

java怎么做一个sdk java怎么做一个完整的系统_主函数_36

删除图书:

java怎么做一个sdk java怎么做一个完整的系统_数组_37

借阅图书:

java怎么做一个sdk java怎么做一个完整的系统_java怎么做一个sdk_38

归还图书:

java怎么做一个sdk java怎么做一个完整的系统_数组_39

到此一个简单的小项目就写成功了,它集合了数组,类和对象,封装,继承,多态,抽象类,接口等知识,学完此项目能有效帮我们巩固基础知识,并且开始真正的认识面向对象。