【JavaSE】图书馆系统制作--JavaSE简易知识整合

简易图书馆系统制作

  • 一. 业务设计整体框架
    • 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 输入姓名

【JavaSE】图书馆系统制作--JavaSE简易知识整合_第1张图片

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

【JavaSE】图书馆系统制作--JavaSE简易知识整合_第2张图片

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

1.3 选择身份进入

1.3.1 从管理员身份进入:

【JavaSE】图书馆系统制作--JavaSE简易知识整合_第3张图片

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

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

1查找图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第4张图片
此处输入我们要找的书的名字
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第5张图片
输出书的相关信息,有书名,作者名,价格,类型,以及是否借出等状态

2新增图书
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第6张图片
查阅新增图书之前图书馆有的书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第7张图片
依次输入新增图书名字,作者,类型及价格
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第8张图片
系统整理新增图书信息并进行打印输出
查阅新增图书之后图书馆有的书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第9张图片
可以看到我们输入的图书信息被录进去了

3删除图书
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第10张图片
输入要删除的图书名字
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第11张图片
然后再进行显示图书查验是否删除了图书
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第12张图片
此时看到《Java图书操作系统》这本书确实被删除了

退出系统
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第13张图片

1.3.2 从普通用户身份进入:

【JavaSE】图书馆系统制作--JavaSE简易知识整合_第14张图片

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

接下来我们一一完成对应的操作
1查找图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第15张图片

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

2借阅图书
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第16张图片

借阅图书之前我们已经查到了《三国演义》并且状态是未借出的
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第17张图片

此时我们《三国演义》借阅成功
继续查在系统里查阅三国演义是否借出等状态
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第18张图片

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

3归还图书
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第19张图片

当我们再次查阅《三国演义》状态就是未借出的
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第20张图片

0退出系统
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第21张图片

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

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

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

2.1 包的创建和分类

【JavaSE】图书馆系统制作--JavaSE简易知识整合_第22张图片

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

2.2 定义属性

首先我们可以对书这个类进行属性的定义,由于为了方便后期书籍的借还所以此处在书这个包当中又分了两个类
第一个类写的是书籍的属性,每次放一本书到书架上,都要构造一个书的对象,所以要写一个构造方法,我们在定义属性的时候用private修饰,我们需要实现对外的接口来让类外和包外拿到属性,以及写一个ToString来对外输出打印,代码如下:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第23张图片

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

2.3 创建书架

我们还需要创建一个书架类,用来存放我们的书籍,在书籍按顺序存放的时候我们可以看作是数组的存放,所以在book这个包里我们又弄了一个书架类
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第24张图片

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

2.4 方法的分类

我们在上文可以看到我们需要查找,借阅,删除等一系列操作,为了方便简洁有效我们直接把各种操作都写成不同的类,放在一个operation包里面
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第25张图片

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

2.5 用户的分类

在我们的使用者里面又可以分为普通用户和管理员,并且实现一个公共的类,达到共性抽取,且在User里更方便调用两者
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第26张图片

2.6 主函数的实现

【JavaSE】图书馆系统制作--JavaSE简易知识整合_第27张图片

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

2.7 用户的具体实现

User类里的具体实现:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第28张图片

NormalUser(普通用户)的具体实现:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第29张图片

AdminUser(管理员)的具体实现:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第30张图片

2.8 方法的实现

我们上面第三步仅仅创建了各种方法的类,并没有具体实现,那我们接下来一一实现:
对所有的方法实现规范,创建一个接口类,并让所有的方法类去继承它:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第31张图片

显示图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第32张图片

退出系统:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第33张图片
此处置为null其实也可以不这么做,但是没有null之后在程序运行结束的时候内存才会被回收,当程序一直在运行的时候,内存装满了,这就会发生内存泄漏

新增图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第34张图片

查找图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第35张图片

删除图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第36张图片

借阅图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第37张图片

归还图书:
【JavaSE】图书馆系统制作--JavaSE简易知识整合_第38张图片

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

你可能感兴趣的:(JavaSE,java)