Java实现图书系统

首先实现一个图书管理系统,我们要知道有哪些元素?

1.用户分成为管理员和普通用户

2.书:书架   书

3.操作的是: 书架

目录

第一步:建包

第二步:搭建框架

首先:完成book中的方法

其次:完成BookList

然后:完成管理员界面和普通用户界面

最后:Main

第三步:细分方法

1.退出系统

2.查找图书

3.借阅图书

​编辑4.归还图书

5.显示图书

6.增加图书

7.删除图书

8.IOperation


第一步:建包

首先:我们要生成三个包; 一个:Book; 一个:User;  一个:ioperations;

Book:  包中包含Book类BookList类和Main类,其中Book类用来实现Book的初始化,运用get和set取得属性的值和给属性赋值,调用constructor:创建对象时初始化 ,使用Tostring方法,BookList类用于展示当前图书系统的书籍,Main类:具体的方法实现;

User:包中包含AdminUser类,NomalUser类和User类;AdminUser用于实现管理员下的方法,NomalUser用于实现普通用户的方法,User:是一个抽象类,用于存放AdminUser和NomalUser共性的东西;

ioperations:相当于一个接口,当中存放着AdminUser和NomalUser中将调用的方法:例如:增加图书,删除图书,退出系统等...

第二步:搭建框架

首先:完成book中的方法

其中需要主要的是:

\

isBorrowed是判断书是否被借出,是不需要创建对象时初始化的

其次:完成BookList

其中需要注意的是:我们要创建一个数组进行书的存储,设置好有效长度,方便后面书的增删查改,同时也定义原有书架上的书

然后:完成管理员界面和普通用户界面

首先;我们要明白:管理员和普通用户使用的界面不一样,因此调用的方法也不一样,所以我们需要创建一个AdminUser和一个NomalUser来区分,也同时方便后面的调用;

与此同时,在这两个的管理系统上面也存在一定的共性,我们要进行总和,所以也需要创建一个User,这里的User就相当于是AdminUser和NomalUser的父类;并且这里的User没有具体的实现,相当于一个抽象类;    在抽象类中我们要知道,父类是抽象类,子类必须重写抽象方法

其中想同的点:使用着的名字,初始化 , 同一个书架,menu方法,doIoperation方法:通过数组下标调用对应的方法实现功能

普通用户和管理员只是对应的方法不同

User:

最后:Main

我们需要实现这个内容;

用login这个方法去实现,最后在main方法中调用,

其中我们需要注意的是,在身份选择的时候我们需要去判断是进入AdminUser还是NomalUser

基本框架就实现完了

第三步:细分方法

1.退出系统

2.查找图书

首先我们要明白:说的查找图书就相当于在书架上找书,书架相当于一个数组!

3.借阅图书

其中需要注意到:找到书后需要修改书的状态,判断书是否被借出



4.归还图书

5.显示图书

使用for循环调取数组的下标

6.增加图书

按照4步的方法一次解决

注意:

如果先输入整型在输入类型的话,它会将回车读入类型当中去;

7.删除图书

步骤:

1.找到书是否存在

2.然后再删除

注意:

面向过程时:bookList[j] = bookList[j+1];是这样的思路;

而我们在面向对象时:

最后将currentSize-1;

实现的全过程:

8.IOperation

用来调用对应方法的接口;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模】碎纸片的拼接复原

2013高教社杯全国大学生数学建模竞赛B题 问题一模型一模型二条件设立思路 问题求解 问题一 已知 d i d_i di​为第 i i i张图片图片的像素矩阵 已知 d i d_i di​都是 n ∗ m n*m n∗m二维矩阵 假设有 N N N张图片 模型一 我们认为对应位置像素匹配为 d i [ j ] [ 1 ] d k…

访问构造方法(反射)

文章目录 前言一、反射是什么?二、访问构造方法 1.Constructor对象的获取方法2.Constructor方法的使用总结 前言 Java的反射机制可以实现访问、检测和修改Java对象本身信息的功能,在java.lang.reflect包下提供此功能。可以使程序员更加深入地控制程序的运…

openflow协议抓包分析

1、准备实验拓扑: 在Mininet环境中创建一个简单的SDN拓扑,包括控制器、交换机、主机等。 确保拓扑能够正常运行,SDN交换机与控制器建立连接。 采用主机Ubuntu22.04主机,IP地址是192.168.87.130,安装opendaylight控制…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十二)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 19节) P19《18.ArkUI组件-页面路由》 以访问京东页面为例,访问过的页面并没有消失,而是进入了…

三维大场景管理-3Dtiles规范

简介 : 这篇文章都是三年前写的了,一直在笔记库存中,今天把他放出来。主要是讲Cesium 的3Dtiles 格式,当然3Dtiles主要是解决场景管理大场景的LOD实现的问题,不管是剔除渲染性能优化之Culling 剔除或者 LOD 、3Dtiles…

吉林大学计科21级《软件工程》期末考试真题

文章目录 21级期末考试题一、单选题(2分一个,十个题,一共20分)二、问答题(5分一个,六个题,一共30分)三、分析题(一个10分,一共2个,共20分&#xf…

基于tcp实现自定义应用层协议

认识协议 协议(Protocol) 是一种通信规则或标准,用于定义通信双方或多方之间如何交互和传输数据。在计算机网络和通信系统中,协议规定了通信实体之间信息交换的格式、顺序、定时以及有关同步等事宜的约定。简易来说协议就是通信…

Linux shell编程学习笔记50:who命令

0 前言 2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。比如,我们可以使用who命令来收集当前已登陆系统的用户信息,当前运行级别等信息。 1. who命令 的功能、格式和选项…

初级爬虫的总结一

初级爬虫的总结一之百度网页爬虫 一、寻找正确的sugrec二、url拼接出问题,解决办法 我遇到的问题: 1、没有找对网页sugrec,导致connect-type没有找对,以及一些小问题 2、url拼接时候出现乱码 一、寻找正确的sugrec 1、打开百度网…

【讲解下Web前端三大主流的框架】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

node.js学习P3-P10

P3 npm package.json(package解读npm工具换镜像源) 一个package.json文件可以的作用 作为一个描述文件,描述了你的项目依赖哪些包 ,用来干什么的允许我们使用“语义版本规则”,指明你项目依赖的版本让你的构建更好的…

Web安全:SQL注入之时间盲注原理+步骤+实战操作

「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…

系统安全扫描扫出了:可能存在 CSRF 攻击怎么办

公司的H5在软件安全测试中被检查出可能存在 CSRF 攻击,网上找了一堆解决方法,最后用这种方式解决了。 1、问题描述 CSRF 是 Cross Site Request Forgery的缩写(也缩写为也就是在用户会话下对某个 CGI 做一些 GET/POST 的事,RIVTSTCNNARGO一这…

esp8266的rtos和nonos区别

https://bbs.espressif.com/viewtopic.php?t75242#p100294 https://blog.csdn.net/ydogg/article/details/72598752

存储方式 - 前端学习

1. cookie是什么?你了解cookie吗? 在计算机领域中,特指一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件。这个文件可以被服务器用来识别用户身份、跟踪用户活动、保存用户设置等。它通常由名称、值、域名、路径、过期时间等…

【pm2 - sdk 集成到程序中,典型用法】

pm2作为一款进程管理神器,除了命令行的启动方式外,其还对应有sdk,集成到程序中,我们可以连接到已有或创建pm2的守护进程,与其进行交互,动态,编程式地控制程序的启停等。以下为示例: …

酷开科技大屏营销,多元需求唤醒“客厅经济”

随着科技的发展和消费者习惯的变化,OTT大屏营销正逐渐成为客厅经济的新风向。OTT不仅改变了人们获取信息和娱乐的方式,也为品牌营销提供了新的机遇和挑战,OTT大屏营销已经成为客厅经济的重要组成部分。酷开科技通过其自主研发的智能电视操作系…

PHP框架 Laravel

现在因为公司需求,需要新开一个Laravel框架的项目,毫无疑问,我又被借调过去了,最近老是被借调,有点阴郁,不过反观来看,这也是好事,又可以复习和巩固一下自己的知识点,接下…

数组基础-笔记

数组是非常基础的数据结构,实现运用和理解是两回事 数组是存放在连续内存空间上的相同类型的数据的集合 可以方便的通过下表索引的方式获取到下标下对应的数据。 举一个字符数组的例子: 注意两点: 数组下标从0开始 数组内存空间的地址是连…

yarn dev启动项目时遇到的问题

用yarn dev启动项目的时候,遇到了如下问题: 这个时候,我们可以这样解决:用nvm list 看下已安装的node版本,用nvm use切换一下node版本,当然前提是你已经安装了nvm。