声明图书类,记录图书总册数,利用静态变量赋值。 声明一个图书类,其数据成员为书名、编号(利用静态变量实现从1开始的自动编号)、 书价;在构造方法中,利用静态变量为对象的编号赋值。 输入格式: 第一行总书本数量n,之后每行输入一本书的书名和价格,最后一行为要查询的图书编号(保证合法) 输出格式: 请输出对应图书对应的书名,编号,书价(四舍五入,保留一位小数)。 输入样例: 3 Java 34.50 Ds 44.80 C++ 35.0 2 输出样例: Ds 2 44.8
时间: 2023-06-04 11:04:05 浏览: 212
好的,这是一个Java编程问题,我可以为您提供解答。
首先,我们可以定义一个名为“Book”的类,其中包含书名、编号和书价这三个属性。
接着,在Book类中,我们可以定义一个静态变量bookCnt,用于记录书的总册数,并在构造方法中通过bookCnt自增的方式为每本书的编号赋值。同时,在构造方法中,还需要初始化书的其他属性(即书名和书价)。
最后,根据输入的要查询的图书编号,我们可以遍历图书列表,找到对应的书,并输出其书名、编号和书价(注意保留一位小数)。
以下是完整的Java代码,供参考:
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 总书本数量
ArrayList<Book> books = new ArrayList<Book>();
for (int i = 0; i < n; i++) {
String name = scanner.next();
double price = scanner.nextDouble();
Book book = new Book(name, price);
books.add(book);
}
int queryNum = scanner.nextInt(); // 要查询的图书编号
for (Book book : books) {
if (book.getNum() == queryNum) {
System.out.printf("%s %d %.1f", book.getName(), book.getNum(), book.getPrice());
break;
}
}
scanner.close();
}
}
class Book {
// 成员变量
private String name; // 书名
private int num; // 编号
private double price; // 书价
// 静态变量
private static int bookCnt = 0; // 记录图书总册数
// 构造方法
public Book(String name, double price) {
this.name = name;
this.num = ++bookCnt;
this.price = price;
}
// getter方法
public String getName() {
return name;
}
public int getNum() {
return num;
}
public double getPrice() {
return price;
}
}
阅读全文