转让问题是: -
您被要求为书店创建一个有助于跟踪书籍的应用程序。
您需要为您的应用程序创建以下类:
- 用于描述书名和书价的属性或变量的类 正确的数据类型。
- 该类应存储书籍集(使用数组)。这堂课应该 还要跟踪集合中的书籍总数,总成本 该系列中的书籍。
- [奖励标记]该课程还应显示最昂贵的书名和 价格以及最便宜的书名和价格。
要求
您应该实现数组来存储图书详细信息。没有必要实施 任何数据库或文件。
所有java源文件都必须包含您的姓名,学生ID,课程和日期。在源代码的注释(标题中)中包含此信息。
每个课程都应该进行适当的评论并检查代码
我已成功将图书存储在数组中,并将其显示出来。但我有问题,这本书的价格。它输出书名,但不输出所购书籍的价格和总价,请看下面的编码..
import java.util.Scanner;
public class array_userinput {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numOfBook;
// prompts the user to enter the number of books he/she wants
System.out.print("How many numbers of books u want: ");
double[] bookPrice = new double[numOfBook];
int num = input.nextInt();
// double price[];
double totalCost = 0;
String array[] = new String[num];
System.out.print("Enter the " + num + " book names now: ");
for (int i = 0; i < array.length; i++) {
array[i] = input.next();
System.out.println("These are the books you have entered: "
+ array[i]);
System.out.print("Please enter book price: ");
bookPrice[i] = input.nextDouble();
System.out.println(numOfBook);
totalCost += bookPrice[i];
double max = prices[i];
int maxBook = 0;
for (int i = 1; i < books.length; i++) {
if (prices[i] > max) {
max = prices[i];
maxBook = i;
}
}
System.out.print("Cheapest book: " + books[maxBook]);
double min = prices[i];
int minBook = 0;
for (int i = 1; i < books.length; i++) {
if (prices[i] < min) {
min = prices[i];
minBook = i;
}
}
System.out.print("Cheapest book: " + books[minBook]);
}
}
}
答案 0 :(得分:4)
这项任务让我觉得它不仅仅是一个代码设计练习,而是一个“让代码工作”的练习。所以只是让它工作不会削减它(如果你想要一个好的标记)。
“用正确的数据类型描述书名和书价的属性或变量的类”。 “该类应该存储书籍集合(使用数组)”,你不是真的这样做,你只是在主要功能中完成所有这些。
您需要使用一些OO设计来创建一些简单的类(例如,Book应该具有标题和价格以及构造函数和getter方法)。然后,您可以将它们的实例存储在数组中并查询它们。对于您最便宜的图书问题,您可以实现compareTo并使用for(Book book in books)构造。
还要考虑功能分解你想要在“main”中实现的功能,保持你的功能简单易读。
答案 1 :(得分:2)
来自this的更多工作,对吧?
我在实现中犯了一个错误:double max = prices[i];
不应该编译,因为我没有在这个上下文中初始化。试试这个:
double min = prices[0];
int minBook = 0;
for(int i = 1; i < books.length; i++) {
if(prices[i] < min) {
min = prices[i];
minBook = i;
}
}
System.out.print("Cheapest book: " + books[minBook]);
Jeff Watkins的回答也完全正确:根据家庭作业,你需要更好的设计。按照他对Book对象的建议;这很好。关于将main转换为函数,您可以编写使用public Book minBook(Book[] books)
或类似函数的public Book maxBook(Book[] books)
和aBook.compareTo(Book other)
函数。