6-34 图书列表 (20 分)

构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, int price, String author, int edition),提供该类的toString()和equals()方法,toString方法返回所有成员属性的值的字符串形式,形如“name: xxx, price: xxx, author: xxx, edition: xxx”,当两个Book对象的名称(不关心大小写,无空格)、作者(不关心大小写,无空格)、版本号相同时,认为两者表示同一本书。 Main函数中,读入两本书,输出他们是否相等,打印两本书的信息。

构建一个书单类BookList,该类中用一个列表类对象存放书单,提供添加图书(addBook)、查找图书(searchBook)的函数 main函数从键盘输入多个Book添加到书单中,(添加时,提供书的名称、价格、作者、版本号),而后从键盘读入一本书,查找该列表对象中是否包含该书,若包含,输出”found: 该书在列表中的序号”,若不包含,输出“not found”,查找时,提供书的名称、作者、版本号。

输入描述:

添加书的个数 添加的书 查找的书

输出描述:

查找结果

裁判测试程序样例:

import java.util.Scanner;/* 你的答案被嵌在这里 */public class Main{public static void main(String[] args) {Scanner s = new Scanner(System.in);BookList bl = new BookList();int n = s.nextInt();for (int i=0; i<n;i++) {bl.addBook(new Book(s.next(),s.nextInt(),s.next(),s.nextInt()));}bl.searchBook(new Book(s.next(),0,s.next(),s.nextInt()));}
}

输入样例:

在这里给出一组输入。例如:

2
ThinkingInJava
86
BruceEckel
4
CoreJava
95
CayS.Horstmann
10
CoreJava
CayS.Horstmann
10

输出样例:

在这里给出相应的输出。例如:

found: 1

参考答案

import java.util.ArrayList;
import java.util.Objects;
class Book{private String name;private int price;private String author;private int edition;public Book(String name, int price, String author, int edition) {this.name = name;this.price = price;this.author = author;this.edition = edition;}@Overridepublic String toString() {return "name: " + this.name + ", price: " + this.price + ", author: " +this.author + ", edition: " + this.edition;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Book book = (Book) o;return edition == book.edition &&Objects.equals(name, book.name) &&Objects.equals(author, book.author);}
}class BookList{ArrayList<Book> booklist = new ArrayList<Book>();public void addBook(Book b){booklist.add(b);}public void searchBook(Book b){int no = booklist.indexOf(b);if( no != -1 ){System.out.println("found: " + no);}else{System.out.println("not found");}}
}

6-34 图书列表 (20 分)相关推荐

  1. 6-2 图书列表 (20分)

    6-2 图书列表 (20分) 构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, ...

  2. 6-1 图书列表 (25 分)

    6-1 图书列表 (25 分) 构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name ...

  3. 6-23 图书列表 (25分)

    构建一个书类Book,包括名称(字符串),价格(整型),作者(字符串,多个作者当做一个字符串处理),版本号(整型),提供带参数的构造函数Book(String name, int price, Str ...

  4. 构造散列表 (20 分)

    设散列表a[18],散列函数是hask(k)=k%17,用开放地址法解决冲突hi=(h0+di)%m.冲突时,使用增量序列di=5i.计算输入序列(值>=0)对应的散列地址值.(输入个数不会超过 ...

  5. 6.Django 图书列表练习

    文章目录 1.搭建环境 1.1创建库 1.2 创建Django项目 1.3 路径&中间键问题 1.4 连接MySQL数据库 1.5 创建表 1. 表数据 2. 基础表 3. 外键字段 4. 完 ...

  6. 兼容IE和FF的js脚本做法(比较常用)[问题点数:20分]

    兼容IE和FF的js脚本做法(比较常用) [问题点数:20分] IBM_hoojo (hoojo) 等 级: 结帖率:66.67% 楼主发表于:2010-07-03 12:18:15 JScript ...

  7. L1-043 阅览室 (20 分)(在线模拟题)

    L1-043 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为 ...

  8. 7-183 阅览室 (20 分)

    7-183 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不 ...

  9. 7-38 数列求和-加强版(20 分)

    7-38 数列求和-加强版(20 分) 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A).例如A=1, N=3时,S=1+11+ ...

最新文章

  1. 2022-2028年中国成人艺术培训行业市场前瞻与投资战略规划分析报告
  2. linux驱动:i2c驱动(三)流程图之注册设备
  3. 2019年中国智能制造发展现状及趋势分析报告
  4. 不懂编程可以自学python吗-我不会编程,也可能学会Python吗?
  5. Mimir:通过AI向所有人提供视频服务
  6. 把checkbox复选框转换成单选按钮radio
  7. 程序员实用小程序_我从阅读《实用程序员》中学到了什么
  8. 雾计算精华问答 | 雾计算是如何构成的?
  9. 虚拟服务器 端口管理,Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理...
  10. RLock(递归锁)
  11. 2020下半年软考中级网工答案
  12. w5500telnet协议详解_STM32F103VCT6+W5500 telnet功能实现
  13. 安卓Push Rejected解决
  14. CTGU 2021春-MySQL数据库实验2:基本查询3-4关,共7小题全代码+信息表+通关截图!
  15. vue 添加子路由 默认选中子路由
  16. HTML5面试题总结
  17. 笔记本电脑无法搜索到wifi
  18. 查查自己五行属什么命_ywyuan_新浪博客
  19. wish 服务器_从基础到熟练,跨境电商wish平台运营分享
  20. HTML+CSS+JS制作一个生日祝福网站(程序员专属情人节表白网站)

热门文章

  1. 维克客户管理软件 v1.26 通用版 免费
  2. AT89C51-红绿灯源码
  3. 计算机组成原理题库,计算机组成原理(本)习题库
  4. f5服务器配置ssl协议支持,F5 安装SSL证书
  5. 未root手机如何使用Xposed框架(Android抓包无忧矣~)
  6. HTML5+CSS3网页设计视频教程【零基础入门】
  7. javascript为你写诗《春风十不如你》
  8. Android手机信号强度介绍
  9. jmeter分布式linux负载机,windows主控机
  10. anaconda企业版下载_Anaconda3 Mac版-Anaconda3 for Mac下载 V1.9.12-PC6苹果网