RFID智慧图书馆|图书管理系统|电子图书馆软件-河南亿火网络科技有限公司
 
 
北海Java知识巩固代码训练之实现图书管理系统
来源:网络整理 时间:2024-07-09

前言

又进行了一段时间的学习,经过反复推敲+代码调试,想上手做个图书管理系统巩固一下所学知识~欢迎大家跟我一起学习巩固呀~

自己的逻辑实现流程:

理出所涉及的对象和接口-->需要哪些对象属性-->对应对象和接口的功能实现 (画出思维导图)

目录 1.图书管理系统实现的整体思维导图

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

普通用户对应的能执行的操作:查找图书,借阅图书,归还图书,退出图书系统。

图书管理员对应能执行的操作:新增图书,删除图书,查找图书,显示图书,退出图书系统。

2.根据思维导图进行图书管理系统的大概项目框架搭建

1) 首先,为方便管理,我们建立三个包分别存储图书管理系统的操作对象,用户及各种操作。如图:

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

2) 抽取对象之间的共性创建父类或者基本接口,并将对应所需要的属性及构造方法定义出来。普通用户和图书管理员都有姓名,各种操作都是基于书架,但是实现方式不同。

注:如果成员变量用修饰,如果要访问它们,需要给外部提供set和get方法去访问它们哟!因为会导致图显冗余,所以这里我就不在图中显示它们了~

如图:

操作对象:

图书图管理功能系统有哪些_图书管理系统功能说明_图书管理系统功能图

图书图管理功能系统有哪些_图书管理系统功能图_图书管理系统功能说明

用户:

图书管理系统功能说明_图书图管理功能系统有哪些_图书管理系统功能图

图书图管理功能系统有哪些_图书管理系统功能图_图书管理系统功能说明

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

各种操作:

图书图管理功能系统有哪些_图书管理系统功能说明_图书管理系统功能图

各种具体操作都可实现接口去重写其方法完成各自对书架上书的操作(动态绑定)

这里以新增图书这个操作为例,其它操作一样要实现接口并重写方法:

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

*后完成准备工作(这里我们新增Test去测试实现效果):

图书图管理功能系统有哪些_图书管理系统功能图_图书管理系统功能说明

开始测试1内容:书架中的书是否完成初始化:

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

初始化成功!

开始测试2内容:测试各种操作能否完成重写:

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

全部完成重写! 继续~

3) 测试类中的具体逻辑:用户登录--->打印菜单--->用户选择对应的操作--->执行操作

● 首先,让用户选择以什么身份(0:普通用户 1:图书管理员) 登录(登录功能):

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

● 其次,打印菜单前,先准备菜单(两种用户都具备菜单的功能,但是打印内容不同,我们可以通过继承抽象类重写其抽象方法的逻辑去实现):

图书管理系统功能说明_图书图管理功能系统有哪些_图书管理系统功能图

则让User的两个子类都重写()方法就能打印不同的菜单啦!

图书图管理功能系统有哪些_图书管理系统功能图_图书管理系统功能说明

图书管理系统功能说明_图书图管理功能系统有哪些_图书管理系统功能图

我们来测试一下是否能正常登陆并打印出不同菜单~

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

打印普通用户的菜单:

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

打印图书管理员的菜单:

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

测试成功~

● 为了让用户选择对应的操作,所以我们需要在两种用户中定义存放各自操作的数组并且将数组下标和用户输入的值对应起来方便执行操作。

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

在main函数中得到操作数组并通过用户输入的操作数执行对应的操作:

图书图管理功能系统有哪些_图书管理系统功能说明_图书管理系统功能图

没错又该测试啦~

普通用户:

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

图书管理员:

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

这样我们的整个大概框架就完成啦~撒花✿✿✿

3.对书籍的具体操作的代码实现(在框架搭建好的基础上)

在前面我们已经完成了类和接口和大概的逻辑准备,只差对应操作的具体实现啦~

为了方便测试,我们可以在Book类中重写方法,方便打印。

● 新增图书操作实现

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

测试一下(在新增图书后,打印书架中的每一本书)~

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

添加成功~(这些数据都是在内存中哦!程序运行完成后会销毁,并不具有持久性)

● 删除图书操作实现

首先得确认用户要删除的书在书架中,所以我们得在书架中根据用户输入的书名查找到用户要删除的书:

图书图管理功能系统有哪些_图书管理系统功能说明_图书管理系统功能图

如果存在则返回目标书的下标,否则返回-1(不存在)。如果存在,则从当前返回的下标位置开始,将后面的书从后往前挪动一位,则返回的下标位置的书籍会被覆盖(类比于数据结构中删除顺序表某一位置的元素)。

图书图管理功能系统有哪些_图书管理系统功能说明_图书管理系统功能图

*后将*后一个重复的书赋空并将当前书架中的书数量-1:

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

测试一下~

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

测试删除成功!

● 查找图书操作实现

查找其实在删除操作中实现完毕了,根据书名查找对应书籍(遍历-->比较-->成功返回下标,否则返回-1)

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

测试效果:

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

测试查找操作成功!

● 显示图书操作实现

这个逻辑也不复杂,直接遍历打印书架上的书就好了

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

测试运行:

图书管理系统功能说明_图书图管理功能系统有哪些_图书管理系统功能图

显示成功!

● 借阅图书操作实现

借阅是在Book的为false(未被借阅)的情况下改为true(找到图书--->判断该图书是否被借阅--->更改属性值)

图书管理系统功能说明_图书管理系统功能图_图书图管理功能系统有哪些

测试运行:

图书管理系统功能图_图书管理系统功能说明_图书图管理功能系统有哪些

测试借阅操作成功!

● 归还图书操作实现

而归还是在Book的为true(被借阅)的情况下改为false(找到图书--->判断该图书是否被借阅--->更改属性值)

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

测试运行:

图书管理系统功能图_图书图管理功能系统有哪些_图书管理系统功能说明

测试归还操作成功!

● 退出图书系统操作实现

我们直接使用.exit()方法退出程序,参数为值(非零为非正常退出程序,0为正常退出程序)。

图书图管理功能系统有哪些_图书管理系统功能图_图书管理系统功能说明

测试运行:

图书管理系统功能说明_图书图管理功能系统有哪些_图书管理系统功能图

测试退出图书系统操作成功!

这样整个图书管理系统就基本完成了!当然还有很多可以优化的地方,大家可以去试着优化一下哦~我们一起交流学习~

 

联系我们

工作时间 9:00-20:00
微信二维码
opyright ©2023河南亿火网络科技有限公司  豫ICP备2023018280号  XML地图  
北京 | 天津 | 河北 | 山西 | 内蒙古 | 辽宁 | 吉林 | 黑龙江 | 上海 | 江苏 | 浙江 | 安徽 | 福建 | 江西 | 山东 | 河南 | 湖北 | 湖南 | 广东 | 广西 | 海南 | 重庆 | 四川 | 贵州 | 云南 | 西藏 | 陕西 | 甘肃 | 青海 | 宁夏 | 新疆 | 
友情链接: 合肥网站建设 烫金箔 体系认证 包装彩盒 液氩储罐 代理记账 体育木地板 石磨面粉机 合肥网站建设 礼盒印刷