Java实现图书系统

news2024/10/6 6:05:01

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

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.coloradmin.cn/o/1699803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

除自身以外数组的乘积 ---- 前缀和

题目链接 题目: 分析: 计算某个区间的积, 同样可以使用前缀和算法的思想想要计算除i位置的积, 我们需要计算i位置之前[0,i-1]的前缀积 和 i位置之后[i1,n-1]的后缀积, n表示数组的长度 先求[0,i - 1]的积 用一个前缀数组f 此时f[i] 表示: 前i - 1个数的积, 那么f[i - 1] 就表…

虹科Pico汽车示波器 | 免拆诊断案例 | 2012 款雪佛兰科鲁兹车偶尔多个故障灯异常点亮

故障现象 一辆2012款雪佛兰科鲁兹车,搭载1.8 L 发动机,累计行驶里程约为9.6万km。该车组合仪表上的发动机故障灯、ABS故障灯及动力转向故障灯偶尔异常点亮,同时发动机转速表和发动机冷却液温度表的指针会突然归零,严重时发动机无…

上下文视觉提示实现zero-shot分割检测及多visual-prompt改造

文章目录 一、Closed-Set VS Open-set二、DINOv2.1 论文和代码2.2 内容2.3 安装部署2.4 使用效果 三、多visual prompt 改造3.1 获取示例图mask3.2 修改函数参数3.3 推理代码3.4 效果的提升! 四、总结 本文主要介绍visual prompt模型DINOv,该模型可输入八…

Qt for Android 乱码问题

java文件乱码 导致编译失败 使用notepad等查看java文件的编码, 修改成utf-8,否则会因为乱码编译失败, 记住是utf8不是utf8-bom. 做如下修改确保utf8文件不被修改掉。 编译时错误显示的是乱码 如果开发其他乱码再改回, 原本是Sys…

【机器学习300问】99、多通道卷积神经网络在卷积操作时有哪些注意事项?

一、多通道卷积神经网络示例 还是以图像处理为例,如果你的目标不仅是分析灰度图像特性,还打算捕捉RGB彩色图像的特征。如下图,当面对一张66像素的彩色图像时,提及的“3”实际上是指红、绿、蓝三种颜色通道,形象地说&am…

BUUCTF-Misc24

从娃娃抓起1 1.打开附件 是两个文本文件 2.电报码 电报码在线翻译网站:https://usetoolbar.com/convert/cccn.html 3.汉字五笔编码 汉字五笔编码在线网站查询:https://www.qqxiuzi.cn/bianma/wubi.php 4.转化为MD5值 将文字保存到文本文档 用winR输入…

绘唐3模型怎么放本地sd安装及模型放置位置 及云端sd部署

绘唐3模型怎么放本地sd安装及模型放置位置 及云端sd部署 资料里面授权方式: https://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encf 云端和模型之间存在某种关联性。云端通常用于存储和管理大量数据,并提供计算和资源的服务。模型是对数据进…

Day04:CSS 进阶

目标:掌握复合选择器作用和写法;使用background属性添加背景效果 一、复合选择器 定义:由两个或多个基础选择器,通过不同的方式组合而成。 作用:更准确、更高效的选择目标元素(标签)。 1、后…

蚁小二:又一款高效自媒体工具,免费用户可发5个账号

其实自媒体的群发工具有几个,除了前几天介绍的融媒宝还有蚁小二等。因为融媒宝免费用户只能添加5个账号,所以不够用的朋友可以再下载蚁小二使用,这样就有10个账号可以发布了: 蚁小二简介 蚁小二是由长沙草儿绽放科技有限公司自主…

【论文阅读】Prompt Fuzzing for Fuzz Driver Generation

文章目录 摘要一、介绍二、设计2.1、总览2.2、指导程序生成2.3、错误程序净化2.3.1、执行过程净化2.3.2、模糊净化2.3.3、覆盖净化 2.4、覆盖引导的突变2.4.1、功率调度2.4.2、变异策略 2.5、约束Fuzzer融合2.5.1、论据约束推理2.5.1、模糊驱动融合 三、评估3.1、与Hopper和OSS…

Honeyview看图神器,免费无广告!

之前看图软件使用的是BandiView,但是最近频繁弹出广告,今天换了款Honeyview,也叫蜜蜂浏览器,免费无广告,速度很快,还以直接查看压缩包中的图片,你懂的! 软件设置 首先随便打开一张图…

Virtual Box安装Ubuntu及设置

Virtual Box安装Ubuntu及设置 本文包含以下内容: 使用Virtual Box安装Ubuntu Desktop。设置虚拟机中的Ubuntu,使之可访问互联网并可通过SSH访问。 Ubuntu Desktop下载 从官网下载,地址为:Download Ubuntu Desktop | Ubuntu U…

游戏缺失steam_api64.dll的修复方法,快速解决游戏启动问题

在现代科技发展的时代,电脑已经成为我们生活中不可或缺的一部分。然而,在使用电脑的过程中,我们经常会遇到一些常见的问题,其中之一就是找不到某个特定的动态链接库文件,比如steamapi64.dll。这个问题可能会导致某些应…

Google的MLP-MIXer的复现(pytorch实现)

Google的MLP-MIXer的复现(pytorch实现) 该模型原论文实现用的jax框架实现,先贴出原论文的代码实现: # Copyright 2024 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may …

springboot + Vue前后端项目(第十一记)

项目实战第十一记 1.写在前面2. 文件上传和下载后端2.1 数据库编写2.2 工具类CodeGenerator生成代码2.2.1 FileController2.2.2 application.yml2.2.3 拦截器InterceptorConfig 放行 3 文件上传和下载前端3.1 File.vue页面编写3.2 路由配置3.3 Aside.vue 最终效果图总结写在最后…

【NumPy】关于numpy.clip()函数,看这一篇文章就够了

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

H.机房【蓝桥杯】/数组链式前向星建图+堆优化版dijkstra

机房 数组链式前向星建图堆优化版dijkstra #include<iostream> #include<queue> #include<cstring> #include<vector> using namespace std; typedef pair<int,int> pii; //无向图开两倍 int e[200005],ne[200005],v[200005],h[200005],du[1000…

前端 JS 经典:Web 性能指标

什么是性能指标&#xff1a;Web Performance Metrics 翻译成 Web 性能指标&#xff0c;一般和时间有关系&#xff0c;在短时间内做更多有意义的事情。 一个站点表现得好与不好&#xff0c;标准在于用户体验&#xff0c;而用户体验好不好&#xff0c;有一套 RAIL 模型来衡量。这…

2024年上半年系统架构设计师真题-复原程度90%

前言 此次考试监考特别严格&#xff0c;草稿纸不允许带出考场&#xff0c;并且准考证上不允许任何写画&#xff0c;甚至连笔都允许带一支&#xff0c;所以下面的相关题目都是参考一些群友的提供&#xff0c;加上自己的记忆回顾&#xff0c;得到的结果。 其中综合知识部分的题…

修复谷歌 AdSense 的 Ads.Txt 无效的有收益损失风险提示

明月的 AdSense 账号后台一直都有“有收益损失风险 - 您需要纠正 ads.txt 文件存在的一些问题&#xff0c;以免严重影响您的收入。”的提示长达一年多了&#xff0c;这次重新开始投放谷歌 AdSense 广告后感觉需要解决掉这个问题了&#xff0c;因为已经全站使用了 CloudFlare&am…