21--集合小案例

案例--图书管理系统

1.创建实体类Book

package com.work.pojo;
/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-16 17:27
*@Description: Book实体类
*/
public class Book {private int id;             // 编号private String name;        // 图书名称private String author;      // 图书作者private double price;       // 图书价格private String desc;        // 图书简介public Book() {}public Book(int id, String name, String author, double price, String desc) {this.id = id;this.name = name;this.author = author;this.price = price;this.desc = desc;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}@Overridepublic String toString() {return "图书id:" + id +", 图书名称:" + name +", 图书作者:" + author +", 图书价格:" + price +", 图书简介:" + desc;}
}

2.创建接口BookService

package com.work.service;import com.work.pojo.Book;/*** @Author: 憨憨浩浩* @CreateTime: 2023-12-16 17:30* @Description: book实体类的业务逻辑*/
public interface BookService {// 添加图书public boolean addBook(Book book);// 根据id修改图书名称public boolean updateBook(int id,String name);// 根据id删除图书public boolean deleteBook(int id);// 查询所有书籍public void selectBooks();
}

3.实现BookService接口

package com.work.service.impl;import com.work.pojo.Book;
import com.work.service.BookService;import java.util.ArrayList;/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-16 20:40
*@Description: BookService接口的实现类
*/
public class BookServiceImpl implements BookService {// 创建一个集合接收书籍信息private ArrayList books = new ArrayList();/*** @description: 添加图书* @author: 憨憨浩浩* @date: 2023/12/17 8:54* @param: [book]* @return: boolean**/@Overridepublic boolean addBook(Book book) {books.add(book);return true;}/*** @description: 根据id修改图书名称* @author: 憨憨浩浩* @date: 2023/12/17 8:57* @param: [id, name]* @return: boolean**/@Overridepublic boolean updateBook(int id, String name) {for (int i = 0; i < books.size(); i++) {Book book = (Book)(books.get(i));if (id == book.getId()){book.setName(name);return true;}}return false;}/*** @description: 根据id删除图书* @author: 憨憨浩浩* @date: 2023/12/17 9:00* @param: [id]* @return: boolean**/@Overridepublic boolean deleteBook(int id) {for (int i = 0; i < books.size(); i++) {Book book = (Book)(books.get(i));if (id == book.getId()){books.remove(book);return true;}}return false;}/*** @description: 查询所有图书* @author: 憨憨浩浩* @date: 2023/12/17 9:00* @param: []* @return: void**/@Overridepublic void selectBooks() {for (Object book : books) {System.out.println(book);}}
}

4.书写测试类

package com.work.test;import com.work.pojo.Book;
import com.work.service.impl.BookServiceImpl;import java.util.Scanner;/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-17 08:59
*@Description: 图书测试类
*/
public class BooksTest {public static void main(String[] args) {// 定义扫描器Scanner scan = new Scanner(System.in);// 定义bookServiceImpl实现类BookServiceImpl bookService = new BookServiceImpl();// 打印系统头部System.out.println("******************************");System.out.println("*********图书管理系统**********");System.out.println("******************************");while (true){System.out.println("1、添加图书 2、根据id修改图书名称 3、根据id删除图书信息 4、查询所有图书 0、退出");System.out.println("请输入你操作的编号:");// 定义变量接收输入的操作编号int num = scan.nextInt();switch (num){case 1: // 添加图书System.out.println("请输入书籍id:");int id = scan.nextInt();System.out.println("请输入书籍名称:");String name = scan.next();System.out.println("请输入书籍作者:");String author = scan.next();System.out.println("请输入书籍价格:");double price = scan.nextDouble();System.out.println("请输入书籍简介:");String desc = scan.next();Book book = new Book(id,name,author,price,desc);// 添加图书if (bookService.addBook(book)){System.out.println("添加成功");} else {System.out.println("添加失败");}break;case 2: // 根据id修改图书名称System.out.println("请输入你要修改的书籍id:");id = scan.nextInt();System.out.println("请输入你要修改的书籍名称:");name = scan.next();// 根据id修改图书名称if (bookService.updateBook(id,name)){System.out.println("修改成功");} else {System.out.println("修改失败");}break;case 3: // 根据id删除图书System.out.println("请输入你要删除的书籍id:");id = scan.nextInt();// 根据id删除图书if (bookService.deleteBook(id)){System.out.println("删除成功");} else {System.out.println("删除失败");}break;case 4: // 查询所有图书// 查询所有图书bookService.selectBooks();break;case 0:System.out.println("你已退出图书管理系统");return;default:System.out.println("暂无此操作,请重新输入");break;}}}
}

5.结果展示

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

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

相关文章

C++软件调试与异常排查技术从入门到精通学习路线分享

目录 1、概述 2、全面了解引发C软件异常的常见原因 3、熟练掌握排查C软件异常的常见手段与方法 3.1、IDE调试 3.2、添加打印日志 3.3、分块注释代码 3.4、数据断点 3.5、历史版本比对法 3.6、Windbg静态分析与动态调试 3.7、使用IDA查看汇编代码 3.8、使用常用工具分…

【AI】模型结构可视化工具Netron应用

随着AI模型的发展&#xff0c;模型的结构也变得越来越复杂&#xff0c;理解起来越来越困难&#xff0c;这时候能够画一张结构图就好了&#xff0c;就像我们在开发过程中用到的UML类图&#xff0c;能够直观看出不同层之间的关系&#xff0c;于是Netron就来了。 Netron支持神经网…

leetcode 236. 二叉树的最近公共祖先

leetcode 236. 二叉树的最近公共祖先 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽…

Vue3使用Three.js导入gltf模型并解决模型为黑色的问题

背景 如今各类数字孪生场景对三维可视化的需求持续旺盛&#xff0c;因为它们可以用来创建数字化的双胞胎&#xff0c;即现实世界的物体或系统的数字化副本。这种技术在工业、建筑、医疗保健和物联网等领域有着广泛的应用&#xff0c;可以帮助人们更好地理解和管理现实世界的事…

VAR模型

VAR&#xff08;Vector Autoregression&#xff09;模型是一种用于时间序列分析的统计模型&#xff0c;它可以描述多个变量之间的相互关系和动态演化。VAR模型最初是由Sims&#xff08;1980&#xff09;提出的&#xff0c;广泛应用于宏观经济学、金融领域以及其他时间序列数据分…

Restrict Content Pro WordPress – 限制会员内容 付费内容网站(包含所有扩展)

Restrict Content Pro WordPress限制会员内容专业插件 强大的内容限制工具和强大的 WordPress 会员网站&#xff0c;都在一个易于管理的插件中。 购买Restrict Content Pro 最新版本并加入超过23000 名快乐客户的俱乐部。 使用 Restrict Content Pro 插件将您的独家内容锁定…

Python 全栈体系【四阶】(六)

第四章 机器学习 五、线性模型 1. 概述 线性模型是自然界最简单的模型之一&#xff0c;它描述了一个&#xff08;或多个&#xff09;自变量对另一个因变量的影响是呈简单的比例、线性关系。例如&#xff1a; 住房每平米单价为 1 万元&#xff0c;100 平米住房价格为 100 万…

windows电脑半夜突然睡眠自动唤醒的问题查找与治理

遇见几次了&#xff0c;半夜起来上厕所&#xff0c;发现休眠的电脑居然自己开了&#xff0c;还得跑过去把电脑再休眠&#xff0c;很烦。昨天晚上居然自动唤醒两次&#xff0c;忍无可忍了&#xff0c;于是开始查找原因。 查询原因如下&#xff0c;解决方面也在后面。 固件 S3 计…

Linux驱动开发学习笔记4《设备树下的LED驱动实验》

目录 一、设备树LED驱动原理 二、硬件原理图分析 三、实验程序编写 1.修改设备树文件 2.LED 灯驱动程序编写 3.编写测试APP 四、运行测试 1. 编译驱动程序和测试APP &#xff08;1&#xff09; 编译驱动程序 &#xff08;2&#xff09; 编译测试APP ​ 2.运行测试 一、…

Win11 PS无法拖动文件到任务栏打开

Win11 PS无法拖动文件到任务栏打开 1.软件环境2.问题描述3.解决方法3.1.确保Win11更新到22H2版本以上3.2.确保禁止拖放关闭3.3.修复系统注册表 4.修复效果预览 1.软件环境 Windows11 企业版64位 22H2 Adobe Photoshop 25.2.0 20231101.m.2385 38bb2d3 x64 2.问题描述 很多人在…

SpringBoot配置文件加载的优先级及自定义配置

Spring Boot使用一个非常特殊的PropertySource顺序&#xff0c;旨在允许合理的值重写&#xff0c;越靠前优先级越高。属性按以下顺序考虑&#xff1a; 开发者工具Devtools全局配置参数 在IDEA或Eclipse中&#xff0c;安装并启用Spring Boot Devtools插件。打开项目的Settings…

股票价格预测 | Python实现基于ARIMA和LSTM的股票预测模型(含XGBoost特征重要性衡量)

文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 Python实现基于ARIMA和LSTM的股票预测模型(Stock-Prediction) Data ExtractionFormatting data for time seriesFeature engineering(Feature Importance using X

信号与线性系统预备训练3——MATLAB软件在信号与系统中的应用初步

信号与线性系统预备训练3——MATLAB软件在信号与系统中的应用初步 The Preparatory training3 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、目的 1.熟悉和回顾MATLAB…

Pycharm第三方库导入失败避坑!

最近遇到了明明安装了 python 第三方库&#xff0c;但是在 pycharm 当中却导入不成功的问题。 使用Pycharm手动安装三方库和自动安装三方库都失败&#xff0c;以及Pycharm终端使用pip命令安装也未解决。网上找各种方法尝试都没成功&#xff0c;原来是一不小心就跳进了虚拟环境…

C++中的继承(一)

文章目录 前言概念访问限定符基类和派生类的赋值转换继承中的作用域派生类的默认成员函数构造函数 拷贝构造析构函数 继承的其他一些细节 前言 我们之前说过&#xff0c;继承是面向对象的三大特性。 面向对象的三大特性&#xff1a; 封装、继承、多态。 封装在类和对象体现出…

2043杨辉三角(C语言)

目录 一&#xff1a;题目 二&#xff1a;思路分析 三&#xff1a;代码 一&#xff1a;题目 二&#xff1a;思路分析 1.通过杨辉三角&#xff0c;不难发现中间的数等于肩头两个数之和 2.但是当我们的输出结果&#xff0c;与杨辉三角的形式有所不同&#xff0c;但是我们可以找…

Freemarker基本语法与案例讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《SpringBoot》。&#x1f3af;&#x1f3af; &…

python接口自动化测试-unittest-批量用例管理

我们日常项目中的接口测试案例肯定不止一个&#xff0c;当案例越来越多时我们如何管理这些批量案例&#xff1f;如何保证案例不重复&#xff1f;如果案例非常多&#xff08;成百上千&#xff0c;甚至更多&#xff09;时如何保证案例执行的效率&#xff1f;如何做&#xff08;批…

利用n_gram进行情感分析

一、思路 二、关键步骤实现 1、利用tf-idf进行特征提取 详见利用tf-idf对特征进行提取-CSDN博客 2、利用svm进行模型训练 详见​​​​​​​​​​​​​​利用svm进行情感分析-CSDN博客

搞懂这6 个持续集成工具,领先80%测试人!

开发人员喜欢把写的代码当成自己的孩子&#xff0c;他们会被当成艺术品一样呵护。作为家长&#xff0c;总是会认为自己的孩子是最好的&#xff0c;也会尽全力给自己的孩子最好的&#xff0c;就算有时候会超出自己的能力范围。 最终&#xff0c;孩子会走出去&#xff0c;和其他…