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.hqwc.cn/news/282221.html

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

相关文章

〖大前端 - 基础入门三大核心之JS篇(56)〗- 内置构造函数

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

人工智能优化问题的探索与创新

导言 人工智能优化问题一直是研究和应用领域的关键挑战。人工智能优化问题的发展在各个领域取得了显著进展&#xff0c;但伴随着技术的提升也带来了一些潜在的弊端。本文将深入研究人工智能在解决优化问题方面的突破、算法原理以及在实际应用中的表现。 1. 优化问题的背景与复…

【Linux】在vim中批量注释与批量取消注释

在vim编辑器中&#xff0c;批量注释和取消注释的操作可以通过进入V-BLOCK模式、选择要注释或取消注释的内容、输入注释符号或选中已有的注释符号和按键完成。这些操作可以大大提高代码或文本的编写和修改效率&#xff0c;是vim编辑器中常用的操作之一。 1.在vim中批量注释的步…

Linux中的堡垒机搭建以及使用

JumpServer搭建 安装应用包 curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash 一路回车即可安装完毕&#xff08;可根据需求更改&#xff09; JumpServer的 配置文件路径 /opt/jumpserver/config/config.tx…

前后端分离开发

前期 前后端混合开发 后期 前后端分离开发

为什么选择计算机专业?

选择原因 选择计算机专业的原因有很多,以下是一些常见的原因: 高薪就业:计算机专业是目前市场需求最大的专业之一,毕业生的就业前景非常好,薪资也相对较高。 技术更新快:计算机技术更新非常快,每年都会有新的技术和工具出现,选择计算机专业可以让你不断学习和掌握新的…

Spark基础入门

spark基础入门 环境搭建 localstandlonespark ha spark code spark corespark sqlspark streaming 环境搭建 准备工作 创建安装目录 mkdir /opt/soft cd /opt/soft下载scala wget https://downloads.lightbend.com/scala/2.13.12/scala-2.13.12.tgz -P /opt/soft解压scala…

docker compose部署wordpress

准备机器&#xff1a; 192.168.58.151 &#xff08;关闭防火墙和selinux&#xff09; 安装好docker服务 &#xff08;详细参照&#xff1a;http://t.csdnimg.cn/usG0s 中的国内源安装docker&#xff09; 部署wordpress: 创建目录&#xff1a; [rootdocker ~]# mkdi…

python学习3

大家好&#xff0c;今天又来更新python学习篇了。本次的内容比较简单&#xff0c;时描述性统计代码&#xff0c;直接给出所有代码&#xff0c;如下&#xff1a; import pandas as pd from scipy.stats import fisher_exact from fuzzywuzzy import fuzz from fuzzywuzzy impor…

仿易订货的订货系统源码一般多少钱

易订货是一款面向中小企业的B2B电子商务平台&#xff0c;旨在提供一站式的采购和销售解决方案。不少批发商贸企业在数字化转型的时候会采用订货系统&#xff0c;今天我们谈谈仿易订货的订货系统源码需要多少钱。 这款订货系统是一款SaaS&#xff0c;所以它是不面向市场销售源码…

STM32启动过程

STM32启动模式&#xff08;自举模式&#xff09; M3/3/7等内核&#xff0c;复位后做的第一件事&#xff1a; 从地址0x0000 0000处取出栈指针MSP的初始值&#xff0c;该值就是栈顶地址。从地址0x0000 0004处取出程序计数器指针PC的初始值&#xff0c;该值是复位向量。 芯片厂商…

【react.js + hooks】基于事件机制的跨组件数据共享

跨组件通信和数据共享不是一件容易的事&#xff0c;如果通过 prop 一层层传递&#xff0c;太繁琐&#xff0c;而且仅适用于从上到下的数据传递&#xff1b;建立一个全局的状态 Store&#xff0c;每个数据可能两三个组件间需要使用&#xff0c;其他地方用不着&#xff0c;挂那么…