当前位置: 首页 > news >正文

图书管理系统(面向对象的编程练习)

图书管理系统(面向对象的编程练习)

  • 1.系统演示
  • 2.设计框架讲解
  • 3.代码的详细讲解
    • 3.1 多本书籍的实现
    • 3.2 不同操作人员的实现
    • 3.3 不同work操作的实现

1.系统演示

下面主要展示系统的删除图书功能和显示图书功能,帮助大家在开始写代码前先了解图书管理系统的相关内容。
在这里插入图片描述

2.设计框架讲解

图书管理系统

  • 如上述演示可以看出图书管理系统中涉及到多本书籍的操作,如《小王子》、《人生海海》、《人间信》等,所以应该创建数组储存这些书籍。(book类以一本书为对象描述书的名字、作者、价格等等)
  • 不同的操作人员进行的操作是不同的,如上述演示中管理者有新增图书的操作,而使用者有借阅图书的操作。

在这里插入图片描述

3.代码的详细讲解

3.1 多本书籍的实现

由于这一部分比较简单,所以不在此赘述,直接上代码!!!

1、创建book类

public class book {protected String bookName;protected String author;protected int price;protected String type;protected boolean condition;public book(String bookName, String author, int price, String type, boolean condition) {this.bookName = bookName;this.author = author;this.price = price;this.type = type;this.condition = condition;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getType() {return type;}public void setType(String type) {this.type = type;}public boolean isCondition() {return condition;}public void setCondition(boolean condition) {this.condition = condition;}}

2、创建booklist类

public class bookList {private book[] list=new book[10];private int number=3;public bookList() {this.list[0]= new book("小王子","安托万",17,"小说",true);this.list[2]= new book("人生海海","麦家",39,"小说",true);this.list[3]= new book("人间信","麦家",39,"小说",true);}}

3.2 不同操作人员的实现

1、创建父类people

在这里插入图片描述

2、创建子类manager
在这里插入图片描述
3、创建子类user

(和上述manager相似,不做过多解释)

在这里插入图片描述
4、目前为止的演示(主要检查不同操作人员的多态实现)

main函数

public class Main {public static people login() {Scanner scanner = new Scanner(System.in);System.out.println("请输入你的名字:");String name = scanner.nextLine();System.out.println("请选择:");System.out.println("******1.管理者**");System.out.println("******2.使用者**");int choice = scanner.nextInt();if (choice == 1) {return new managers(name);} else {return new user(name);}}public static void main(String[] args) {bookList b=new bookList();people p= login();p.menu();p.work();}
}

结果展现
在这里插入图片描述

3.3 不同work操作的实现

1、创建IOPeration接口

在这里插入图片描述
2、演示上述代码(重新顺一下思路)

在这里插入图片描述
3、具体功能的实现
(以删除图书和展示图书为例)

//删除图书
public class Del implements IOPeration{@Overridepublic void work(bookList b) {Scanner scanner=new Scanner(System.in);System.out.println("请输入您要删除的图书的名字:");String name=scanner.nextLine();int pos=-1;int i=0;//找书for ( ; i < b.number; i++) {if(b.list[i].getBookName().equals(name)){pos=i;break;}}if(b.number==i){System.out.println("这里没有你要找的书");return;}//删书for (int i1 = pos; i1 < b.number-1; i1++) {b.list[pos]=b.list[pos+1];}b.number--;System.out.println("删除成功");}
}
//展示图书
public class Show implements IOPeration{@Overridepublic void work(bookList b) {System.out.println("显示图书.....");for (int i = 0; i < b.number; i++) {System.out.println(b.list[i].getBookName()+"  "+b.list[i].getAuthor()+"  " +b.list[i].getType()+"  "+b.list[i].getPrice()+"  "+b.list[i].isCondition());}}
}

这里以删除和展示图书为例,大家可以自行实现其他功能,有什么问题大家可以评论区交流呦~~~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 渗透测试综合靶场 DC-1 通关详解
  • HTML + CSS - 网页布局之一般布局浮动布局
  • PHP邮箱系统:从入门到实战搭建教程指南!
  • SpringBoot:自定义异常
  • CefSharp_Vue交互(Element UI)_WinFormWeb应用(3)---通过页面锁屏和关机(含示例代码)
  • Ubuntu系统入门指南:常用命令详解
  • 视频工具EasyDarwin将本地视频生成RTSP给WVP拉流列表
  • C++ | 引用详解
  • 深入探究HTTP网络协议栈:互联网通信的基石
  • Python 中的异步编程:从入门到实践
  • 9. 什么是 Beam Search?深入理解模型生成策略
  • python+flask+mongodb+vue撸一个实时监控linux服务资源的网站
  • Visual Studio(vs)下载安装C/C++运行环境配置和基本使用注意事项
  • Qt_布局管理器
  • Pytorch使用集成可形变卷积构建网络并导出onnx模型
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • CentOS7 安装JDK
  • emacs初体验
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • EventListener原理
  • Intervention/image 图片处理扩展包的安装和使用
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python打包系统简单入门
  • React as a UI Runtime(五、列表)
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Spring Boot快速入门(一):Hello Spring Boot
  • webgl (原生)基础入门指南【一】
  • 聊聊flink的TableFactory
  • 配置 PM2 实现代码自动发布
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 学习Vue.js的五个小例子
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 源码安装memcached和php memcache扩展
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #微信小程序(布局、渲染层基础知识)
  • $(function(){})与(function($){....})(jQuery)的区别
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (6)添加vue-cookie
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (编译到47%失败)to be deleted
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (四)opengl函数加载和错误处理
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .bat批处理(三):变量声明、设置、拼接、截取