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.rhkb.cn/news/219299.html

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

相关文章

MySQL,分组order by

一、创建分组 ## 创建分组 -- 返回每个发布会的参会人数 SELECT event_id,COUNT(*) as canjia_num FROM sign_guest GROUP BY event_id; 1、group by子句可以包含任意个列&#xff0c;但是但指定的所有列都是一起计算的。 group by 后2个字段一起计算的 2、group by后面可以跟…

什么是Vue?

什么是Vue 什么是Vue&#xff1f;Vue 快速入门常用指令生命周期生命周期介绍生命周期 函数调用情况 什么是Vue&#xff1f; Vue 快速入门 常用指令 生命周期 生命周期介绍 生命周期 函数调用情况

Go EASY游戏框架 之 RPC Guide 03

1 Overview easy解决服务端通信问题&#xff0c;同样使用了RPC技术。easy使用的ETCDGRPC&#xff0c;直接将它们打包组合在了一起。随着服务发现的成熟&#xff0c;稳定&#xff0c;简单&#xff0c;若是不用&#xff0c;甚至你也并不需要RPC来分解你的架构。 GRPC 有默认res…

【漏洞复现】CVE-2023-47261 Dokmee ECM信息泄露致远程命令执行

漏洞描述 Dokmee ECM是一款国外企业内容管理 (ECM) 软件。每个公司的办公室每个角落都存放着文档、记录和档案。Dokmee 一系列解决方案可以帮助您高效地组织、保护和管理这些文件。支持的文件:PDF、TIFF、Word、Excel、Auto-CAD 绘图、电子邮件等。Dokmee 可以帮助您立即实现…

10.CSS浮动

CSS浮动 1.介绍 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一 2.作用 让元素脱离标准流&#xff0c;同一级的浮动的元素可以并排在一排显示 3.元素浮动后的特点 脱离文档流不管浮动前是什么元素&#xff0c;浮动后&…

离散数学知识点-期末复习

目录 一、利用真值表求主析取范式、主合取范式 1.例题 二、推理证明 1.推理规则 2.例题 三、符号化命题 四、有穷集的计数 1.包含互斥原理 2.例题 ​1.文氏图法 2.包含互斥原理法 五、关系的闭包 1.三种闭包 2.Warshall算法 3.例题 六、等价关系 1.定义 2.…

Python Django Suit:构建现代化的Django后台管理

概要 Django Suit是一款为Django后台管理提供现代、优雅界面的第三方应用&#xff0c;它致力于提升Django开发者的管理体验。本文将深入介绍Django Suit的安装、配置和高级功能&#xff0c;提供详实的示例代码&#xff0c;帮助大家更好地使用和定制Django后台管理界面。 安装与…

LCR 181. 字符串中的单词反转

解题思路&#xff1a; class Solution {public String reverseMessage(String message) {message message.trim(); // 删除首尾空格int j message.length() - 1, i j;StringBuilder res new StringBuilder();while (i > 0) {while (i >…

redis-学习笔记(Jedis 通用命令)

flushAll 清空全部的数据库数据 jedis.flushAll();set & get set 命令 get 命令 运行结果展示 exists 判断该 key 值是否存在 当 redis 中存在该键值对时, 返回 true 如果键值对不存在, 返回 false keys 获取所有的 key 值 参数是模式匹配 *代表匹配任意个字符 _代表匹配一…

【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归

【【Pytorch】学习记录分享3——PyTorch 自动微分与线性回归 1. autograd 包&#xff0c;自动微分2. 线性模型回归演示3. GPU进行模型训练 小结&#xff1a;只需要将前向传播设置好&#xff0c;调用反向传播接口&#xff0c;即可实现反向传播的链式求导 1. autograd 包&#x…

物流实时数仓:数仓搭建(DWD)一

系列文章目录 物流实时数仓&#xff1a;采集通道搭建 物流实时数仓&#xff1a;数仓搭建 物流实时数仓&#xff1a;数仓搭建&#xff08;DIM&#xff09; 物流实时数仓&#xff1a;数仓搭建&#xff08;DWD&#xff09;一 文章目录 系列文章目录前言一、文件编写1.目录创建2.b…

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】

分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】 目录 分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现DBO-SVM蜣螂算法优化支持向量机的…

基于FFmpeg,实现播放器功能

一、客户端选择音视频文件 MainActivity package com.anniljing.ffmpegnative;import android.Manifest; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Ur…

世微 锂电池保护IC DW01 充电器检测过充保护SOT23-6

一、 描述 DW01A 是一个锂电池保护电路&#xff0c;为避免锂电池因过充电、过放电、电流过大导致电池寿命缩短或电池被损坏而设计的。它具有高精确度的电压检测与时间延迟电路。 二、 主要特点 工作电流低 过充检测 4.3V&#xff0c;过充释放 4.05V&#xff1b; 过放检测 2.4…

使用Audition录制电脑内部声音

在电脑上播放的媒体文件&#xff0c;包括视频和声音&#xff0c;很多是可以播放却无法保存的。例如一些网页播放的视频&#xff0c;或者在线播放的音乐。 视频的话&#xff0c;可以使用工具来截图&#xff0c;抓取GIF或录屏。 声音的话&#xff0c;也可以使用工具进行录制。这里…

为养宠家庭量身打造,352 X63 Pet宠物专效空气净化器“养宠安馨,人宠共护”

当下,养宠人群日益增多,宠物在给家庭带来了欢乐的同时,也产生了一系列困扰,如何在健康环境中快乐养宠,成为很多家养宠家庭的新需求。成立于2014年的北京三五二环保科技有限公司是一家立足于家庭洁净空气和安全用水领域的科技创新型公司。以“安全、健康、舒适”等消费需求为核心…

uniapp - 简单版本自定义tab栏切换

tab切换是APP开发最常见的功能之一&#xff0c;uniapp中提供了多种形式的tab组件供我们使用。对于简单的页面而言&#xff0c;使用tabbar组件非常方便快捷&#xff0c;可以快速实现底部导航栏的效果。对于比较复杂的页面&#xff0c;我们可以使用tab组件自由定义样式和内容 目录…

Python框架批量数据抓取的高级教程

一、背景介绍 批量数据抓取是一种常见的数据获取方式&#xff0c;能够帮助我们快速、高效地获取网络上的大量信息。本文将介绍如何使用Python框架进行大规模抽象数据&#xff0c;以及如何处理这个过程中可能遇到的问题。 二、项目需求 我们将爬取大量知乎文章&#xff0c;讨…

vue使用el-tag完成添加标签操作

需求&#xff1a;做一个添加标签的功能&#xff0c;点击添加后输入内容后回车可以添加&#xff0c;并且标签可以删除 1.效果 2.主要代码讲解 鼠标按下后触发handleLabel函数&#xff0c;根据回车的keycode判断用户是不是按下的回车键&#xff0c;回车键键值为13&#xff0c;用…

HiveSql语法优化二 :join算法

Hive拥有多种join算法&#xff0c;包括Common Join&#xff0c;Map Join&#xff0c;Bucket Map Join&#xff0c;Sort Merge Buckt Map Join等&#xff0c;下面对每种join算法做简要说明&#xff1a; Common Join Common Join是Hive中最稳定的join算法&#xff0c;其通过一个M…