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

数组练习题

设计一个图书管理系统

使用 ArrayList 存储图书信息(包括书名、作者和价格),并实现以下功能:
  1. 添加图书信息
  2. 根据书名删除图书信息
  3. 查找某本书的价格
  4. 输出所有图书的平均价格
  5. 按价格从低到高排序并输出图书信息
要求:
  • 使用 ArrayList 存储图书对象
  • 图书信息包括书名(String)、作者(String)和价格(double)
  • 通过控制台输入输出进行交互。

解:

先创建Book类,初始化数据,并Generate方法

package com.qcby.book;public class Book {private String title;private String author;private double price;public Book(String title, String author, double price) {this.title = title;this.author = author;this.price = price;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}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;}@Overridepublic String toString() {return "Book{" +"title='" + title + '\'' +", author='" + author + '\'' +", price=" + price +'}';}
}

然后创建Test类,使用数组完成具体功能

package com.qcby.book;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;public class Test {private static ArrayList<Book> books = new ArrayList<>();private static Scanner sc = new Scanner(System.in);public static void main(String[] args) {while (true){System.out.println("----------\n图书管理系统----------");System.out.println("1.添加图书");System.out.println("2.删除图书");System.out.println("3.查找图书价格");System.out.println("4.计算平均价格");System.out.println("5.按价格排序并显示");System.out.println("6.退出系统");System.out.println("请选择操作:");int choice = sc.nextInt();sc.nextLine();//消耗换行符switch (choice){case 1:addBook();break;case 2:removeBook();break;case 3:findBookPrice();break;case 4:calAveBook();break;case 5:sortBook();break;case 0:System.out.println("感谢使用图书管理系统,再会");sc.close();System.exit(0);default:System.out.println("无效,请重新输入");}}}private static void addBook(){System.out.println("请输入书名:");String title = sc.nextLine();System.out.println("请输入作者:");String author = sc.nextLine();System.out.println("请输入价格:");double price = sc.nextDouble();sc.nextLine();//消耗换行符books.add(new Book(title,author,price));System.out.println("图书添加成功");}private static void removeBook(){System.out.println("请输入要删除的书名:");String title = sc.nextLine();boolean found = false;for (int i = 0; i < books.size(); i++){if (books.get(i).getTitle().equalsIgnoreCase(title)){books.remove(i);found = true;System.out.println("图书删除成功");break;}}if(!found){System.out.println("未找到");}}private static void findBookPrice(){System.out.println("请输入要查找的书名:");String title = sc.nextLine();boolean found = false;for (Book book : books){if (book.getTitle().equalsIgnoreCase(title)){System.out.println(book.getTitle() + " 的价格是:" + book.getPrice());found = true;break;}}if (!found){System.out.println("未找到");}}private static void calAveBook(){if (books.isEmpty()){System.out.println("当前无图书");return;}double sum = 0;for (Book book : books){sum += book.getPrice();}double ave = sum / books.size();System.out.printf("平均价格为:%.2f\n", ave);}private static void sortBook(){if (books.isEmpty()){System.out.println("当前无图书");return;}//使用Comparator按价格排序Collections.sort(books, Comparator.comparingDouble(Book::getPrice));System.out.println("\n===========按价格排序的图书列表===========");for (Book book : books){System.out.println(book);}}}
http://www.xdnf.cn/news/5884.html

相关文章:

  • 采购流程规范化如何实现?日事清流程自动化助力需求、采购、财务高效协作
  • 动态查找滚动容器(通用方案)
  • 故障诊断模型评估——混淆矩阵,如何使样本量一致(上)
  • 深入浅出之STL源码分析8_三个指针
  • PostgreSQL 恢复信息函数
  • Android Exoplayer多路不同时长音视频混合播放
  • window 显示驱动开发-报告图形内存(一)
  • ElasticSeach快速上手笔记-入门篇
  • VScode 的插件本地更改后怎么生效
  • 嵌入式学习--江协51单片机day5
  • React百日学习计划——Deepseek版
  • 销量预测评估指标
  • 【工作记录】Kong Gateway 入门篇之部署及简单测试
  • mpegts.js 播放flv视频报错:PIPELINE_ERROR_DECODE: video decode error!
  • FlashInfer - 安装
  • 理解 Open vSwitch (OVS)
  • 一键转换上百文件 Word 批量转 PDF 软件批量工具
  • 大模型——Crawl4AI为 LLM 和 RAG 准备高质量网页数据
  • ‌Element UI 双击事件(@cell-dblclick 与 @row-dblclick)
  • 函数式方法的实现(JDK8+)
  • 洛谷 P3374 【模板】树状数组 1(树状数组解法)
  • C#高级编程:设计模式原则
  • 第28节:现代CNN架构-ResNet与残差连接
  • Android加固工具测评:易盾、顶象、360加固哪款更好用?
  • 【源码+文档+调试讲解】党员之家服务系统小程序1
  • 如何同步虚拟机文件夹
  • Linux精确列出非法 UTF-8 字符的路径或文件名
  • 从虚拟现实到混合现实:沉浸式体验的未来之路
  • 【TMFN】一种基于文本的多模态融合网络,具有多尺度特征提取和无监督对比学习,用于多模态情感分析
  • Day1 时间复杂度