javaEE—图书管理系统(基础代码版)

                                            

前言:

本篇博客是集合了javaEE所学的知识构建的一个基础框架,讲述着面向对象的过程是如何做到多对象交互协作完成框架的构建的。利用了数组,接口,类和对象,抽象类,Object类等知识来完成。

后续会加入数据库,网页,框架等内容,使得该图书管理系统可以存储数据,搭配网页形成一个真正的图书管理系统。

图书管理系统演示

图书管理系统演示

实现构思

首先,我们需要管理书籍,用户也存在着不同的菜单,管理方法也不一样,所以我们分为三个包来区分这些类的不同,然后利用对象来相互工作,完成工作。书类的属性为书的各种书名,作者,价格,类型,还有状态(是否被借出),书架则是用来存放书籍信息的,同时存放几本书,可以通过书架来对书进行增添或删除等操作。用户之间的菜单操作也有所不同,需要分类来存放不同的操作功能,这些类的不同使得存放功能方法很麻烦,我们可以利用向上转型和重写的知识定义一个专门执行操作的接口,这个接口就是用来实现功能的一个接口,其他的方法通过重写来实现不同的功能,统一实现这个接口,这样用户类里面存放方法就会变得简单起来,只用定义一个接口数组即可。

先进行登录选项,各种功能方法则需要通过书架来操作书的属性,包括增添书籍,删除书籍,书籍属性的打印等

书和书架类

先看书的属性:

因为在特定的条件下,为了安全,书的属性是不允许被修改的,所以我们采用private的方式来修饰属性,通过get和set的方法来访问到属性内容,还定义了一个tostring方法,用来完成书籍属性的打印(注:状态是boolean类型的,所以需要修改一下重写tostring方法的内容,使其打印出“未借出”和“已借出”的状态)

然后看看书架的属性和方法内容:

书架的属性同样是不能随意修改的,还是通过get和set方法来访问,同时预先存好三本书。

用户类

用户类的大多数类型是相同的,比如说都有名字和功能菜单,功能方法,功能方法的实现方法。所以我们只需要定义一个抽象类即可:

普通用户和管理员的功能大多数都不一样,所以我们建立一个接口数组,来存放不同的方法

父类和子类实现方法也不一样,所以我们也重写执行方法:

普通用户类:

管理员用户类:

在PerformOperations中,是通过选择的方法,来执行书架的内容,this代表引用的对象(如用户),this引用的dos(接口数组)中的第flag个方法,来执行接口的work方法,形参是书架,因为是通过书架去操作书。

接口:

该接口用于实现各种方法

主函数调用结合

先创建一个书架,再进行登录操作,打印登录对象的菜单,实现菜单中的方法。

登录操作为:

通过不同的选择,返回不同的用户,向上转型的方式用用户类来接收,再调用menu方法来重写子类用户的方法,然后就可以执行对应的操作(Performperations方法)。

以管理员为例:

实现方法类

先来看功能接口:

 

只有一个工作的抽象方法,形参是书架类,用于通过书架来操作书类。

管理员功能:

查找图书:

因为属性都被修饰成私有,所以我们要学会充分利用get和set方法来访问属性:

getbooks(int pos)方法

新增图书:

实现新增图书则需要先判满,再判断是否有重复图书,再书架上得需要重写下setbooks方法来改变书架的存放的书籍,直接使用尾插的方法添加

setbooks(int pos,book b)方法:

需要注意的是:

添加完要改变书的数目

添加类型的时候注意输出方法

判满和判不同

删除图书:

假如需要删掉在pos上的图书,后续的移动方式一定是重后往前移!(从前往后移会改变书的属性)

 setbooks(int pos,book b)方法:

显示图书:

直接循环打印第i本书的属性即可

 getbooks(int pos)方法

退出系统:

需要用到一个方法:exit(),形参为0的时候就自动退出系统

普通用户功能:

与管理员不同的方法就只有借阅和归还,所以我们直接看这俩个代码即可

借阅图书:

 getbooks(int pos)方法

归还图书:

 getbooks(int pos)方法

以上就是图书管理系统的底层逻辑,充分利用了javaEE的内容来实现。看到这麻烦点个赞支持一下!

                                                 

代码演示

Test

 

book

Booklist

User

ManageUser

OrdinaryUser

DoBookcase(接口)

SearchBooks

NewlyBooks

DeleteBooks

DisplayBooks

Quit

BorrowingBooks

RepayBooks

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648721.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

钕铁硼表面磷化处理

大家都知道烧结钕铁硼易氧化、易腐蚀,日久将造成磁性能的衰减甚至丧失,所以使用前必须进行严格的防腐处理。在之前的文章中已经向大家介绍过与烧结钕铁硼表面处理相关的知识和电镀的工艺流程,除了电镀之外,钕铁硼表面处理还可采用…

zstd库数据压缩与解压缩

在 Visual Studio 2019 中使用 C 的 zstd 库进行数据压缩与解压缩 在今天的博客中,我们将探讨如何在 Visual Studio 2019 中使用 zstd 库进行高效的数据压缩和解压缩。zstd(也称为 Zstandard 或 zstd)是由 Facebook 开发的开源压缩库&#x…

数据结构中树的一些基本概念

前言:带你认识二叉树从基本概念开始,步步深入。 目录 树的概念和其中比较重要的基本概念 对概念的深度解析: 树的结构应该如何实现呢? 树的分类: 完全二叉树与满二叉树: 树的概念和其中比较重要的基本…

嵌入式进阶——数码管

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

Java SE基础知识(11)

知识梳理: 记不住就看API帮助文档中的pattern类 开发过程中,正则表达式一般不自己写,安装插件any-rule 选择自己想要的正则表达式格式,稍作修改即可

科学提效|AI融入零售业,未来零售的创新之旅

零售业正经历着由人工智能(AI)引领的转型浪潮。AI在零售和消费品(CPG)行业的应用前景广阔,它正以多种创新方式重塑行业的运作模式。且随着技术的不断进步,AI在零售业的应用将变得更加广泛和深入。AI不仅能够…

解锁Facebook的神秘密码:探索社交媒体的奥秘

在当今数字时代,社交媒体已经渗透到我们生活的方方面面。Facebook,作为这个领域中最为瞩目的平台之一,不仅连接着全球数十亿用户,还承载着庞大的信息流和交流网络。然而,Facebook的背后是一个充满着技术和隐私的世界&a…

汇凯金业:纸黄金和实物黄金的价格有什么区别

纸黄金和实物黄金的价格主要受到全球黄金市场行情的影响,二者的基础价格并无太大差异,但在具体交易时,可能会存在一些价格上的区别,这些差异主要来自以下几个方面: 交易费用与管理费:纸黄金交易通常需要支…

Jenkins配置(插件/角色/凭证)

目录 传送门前言一、Jenkins插件管理1、更换为国内下载源2、中文汉化插件下载(不推荐)3、低版本Jenkins爆红插件安装4、低版本Jenkins插件持续报错解决办法 二、Jenkins用户角色三、Jenkins凭证管理(svn/git)1、Username with pas…

k8s集群安装后CoreDNS 启动报错plugin/forward: no nameservers found

安装k8s过程中遇到的问题: 基本信息 系统版本:ubuntu 22.04 故障现象: coredns 报错:plugin/forward: no nameservers found 故障排查: #检查coredns的配置,发现有一条转发到/etc/resolv.conf的配置…

重生奇迹mu增加敏捷的装备

穿龙炎。 1、游戏破坏方面。可以降低"敏捷"的武器,如果你是低敏捷穿龙炎,我推荐你拿它,穿龙炎配的,同时,它的攻击,我感觉是最稳定的。 2、好看方面。通常大家都穿它都是因为好看,但是很多高手也穿他,为什么?因为穿它好配点,高敏捷你可以穿,低敏捷你也可以穿它,视武…

会声会影破解版百度云(附安装教程) 会声会影下载免费中文版 会声会影2024激活码,注册机

会声会影是一款功能强大的视频与电影编辑软件,它拥有出色的色彩校正和视频氛围调整工具。这款软件对颜色、平度HSL调谐、色调曲线以及波形范围等细微变化有着敏锐的感知,能够轻松实现颜色的精确移动和校正。此外,会声会影还提供了丰富的功能&…

【量算分析工具-概述】GeoServer改造Springboot番外系列三

背景概述 GIS公司做软件产品,往往绕不开的是量算分析工具的开发和使用。例如做的比较好的火星科技的mars3d产品,如下图,但是往往这些工具都是利用Cesium框架进行前端计算的实现的,网上关于这些量算工具算法原理的文章少之又少&…

遥感信息SCI期刊,中科院1区,IF=7+,审稿速度非常快!

一、期刊名称 International Journal of Applied Earth Observation and Geoinformation 二、期刊简介概况 期刊类型:SCI 学科领域:遥感 影响因子:7.5 中科院分区:1区 三、期刊征稿范围 《国际应用地球观测和地理信息杂志》…

【深度学习】最强算法之:人工神经网络(ANN)

人工神经网络ANN 1、引言2、人工神经网络(ANN)2.1 定义2.1.1 定义2.1.2 应用场景 2.2 核心原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥,看新闻没? 小鱼:新闻天天看,啥事大惊小怪的。 小屌…

【力扣刷题笔记第三期】Python 数据结构与算法

先从简单的题型开始刷起,一起加油啊!! 点个关注和收藏呗,一起刷题鸭!! 第一批题目 1.设备编号 给定一个设备编号区间[start, end],包含4或18的编号都不能使用,如:418、…

了解Hive 工作原理:Hive 是如何工作的?

一、概念 1、Hive Apache Hive 是一个分布式的容错数据仓库系统,可实现大规模分析和便于使用 SQL 读取、写入和管理驻留在分布式存储中的PB级数据。 Hive是建立在Hadoop之上的数据仓库框架,它提供了一种类SQL的查询语言—HiveQL,使得熟悉S…

.NET调用阿里云人脸识别1:1简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 人脸比对1:1 功能说明 该功能是两张照片对比,比对两张照片是不是同一个人,至于应用到什么场景,可以参考阿里云的官方文档,我这边以大学生项目来说的话,比如员工打卡&a…

strstr的使⽤和模拟实现

strstr(function) Returnsa pointer to the irst occurrence of str2 in str1, or a null pointer if str2 is not part of str1. (函数返回字符串str2在字符串str1中第⼀次出现的位置)。 The matchingprocess doesnot include t…

如何通过虚拟人动画制作打响文旅信息资源?

随着科技的发展,虚拟人动画制作成为文旅产业数字化转型的重要手段。虚拟人动画制作可以将文化资源转化为生动的动画形式,为文旅资源的宣传和推广注入新的活力。如阿布扎比文旅部推出的数字虚拟形象“哈利法”,通过虚拟人动画制作形式&#xf…