首页 > 编程语言 >Java实现图书系统

Java实现图书系统

时间:2024-05-25 15:33:07浏览次数:20  
标签:NomalUser Java AdminUser 系统 Book User 方法 图书

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

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

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

标签:NomalUser,Java,AdminUser,系统,Book,User,方法,图书
From: https://blog.csdn.net/2301_81705455/article/details/139184353

相关文章

  • 实验二 电子公文传输系统安全-进展2
    实验二电子公文传输系统安全-进展2任务详情上周任务完成情况(代码链接,所写文档等)本周计划上周任务完成情况SM3加盐packagecn.edu.nuc.article.util;importorg.bouncycastle.crypto.digests.SM3Digest;importorg.bouncycastle.jce.provider.BouncyCastleProvider;......
  • 从零手写实现 nginx-01-为什么不能有 java 版本的 nginx?
    前言大家好,我是老马。很高兴遇到你。作为一个java开发者,工作中一直在使用nginx。却发现一直停留在使用层面,无法深入理解。有一天我在想,为什么不能有一个java版本的nginx呢?一者是理解nginx的设计灵魂,再者java开发者用java语言的服务器不是更加自然吗。于是动手开......
  • arthas:Java调试利器,线上Debug不是梦
    目录前言一、Arthas是什么?二、Arthas能解决啥问题?三、Arthas两种安装、启动方式1、jar包启动2、在线安装3、远程连接:四、Arthas命令使用1、Dashboard命令2、Thread(线程监控)3、JVM(jvm实时运行状态,内存使用情况等)4、trace(当前方法内部调用路径,路径上每个节......
  • 「终极收藏」前端开发必备:超全JavaScript公共方法大全
    目录引言1安装js-tool-big-box工具包1.1安装1.2截至目前的方法集合 2时间日期类 2.1更灵活的年月日时分秒2.2 日期时间转换2.3个性的时间组合 2.4 某个时间距离现在2.5 平年还是闰年2.6指定月份的天数 2.7属相2.8获取指定年份的法定节假日 3......
  • Java根据URL下载文件到本地的2种方式(大型文件与小型文件)
    1.小型文件推荐使用2.大型文件推荐使用总结 各位小伙伴是否有使用java,根据url下载文件到本地的需求,以下介绍两种方式1.小型文件推荐使用代码解析首先创建了一个URL对象website,用来表示远程文件的地址。然后创建了一个ReadableByteChannel对象rbc和一个FileOutputStr......
  • Java 登录错误次数限制,用户禁登1小时
    手机号验证码登录,验证码输入错误次数超5次封禁@OverridepublicbooleancheckCaptcha(StringphoneNum,Stringcaptcha){StringcodeNum=(String)redisTemplate.opsForValue().get(UserCacheNames.USER_CAPTCHA+phoneNum);if(codeNum==......
  • 抄表系统厂家:创新技术与解决方案的引领者
    1.技术创新:智能化抄表系统的兴起随着时代的发展,传统式手动抄水表方法已慢慢被智能化抄表系统所替代。抄表系统厂家在这一领域扮演了重要角色,她们产品研发智能抄表系统运用物联网技术、大数据和云计算等先进技术,完成了远程控制智能抄表,大大的提高了效率并降低了人为失误。这类......
  • 【计算机毕业设计】基于SSM++jsp的实验室耗材管理系统【源码+lw+部署文档】
             目录第1章绪论1.1课题背景1.2课题意义1.3研究内容第2章开发环境与技术2.1MYSQL数据库2.2JSP技术 2.3SSM框架第3章系统分析3.1可行性分析3.1.1技术可行性3.1.2经济可行性3.1.3操作可行性3.2系统流程3.2.1操作流程3.2.2......
  • 【精品毕设推荐】基于Springboot的学生心理咨询评估系统的设计与实现
    点击下载原文及代码,可辅助在本地配置运行摘 要使用旧方法对学生心理咨询评估信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在学生心理咨询评估信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次......
  • JAVA计算机毕业设计基于SpringBoot的在线古玩市场系统的设计与实现(附源码+springboot+
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的迅猛发展和电子商务的普及,传统行业纷纷寻求数字化转型以适应市场的新需求。古玩市场作为一个历史悠久、文化底蕴深厚的行业,在数字化浪潮......