【发布时间】:2014-07-23 06:29:36
【问题描述】:
我目前正在开发一个库存程序,该程序涉及一个一维数组、2 个类(Store 和 Book)以及其他一些东西,例如方法和构造函数。
我猜你可以说的主类 Store 类应该包含 main() 方法,并且应该从文件中读取购买列表,使用适当的消息(ISBN 编号,数量、价格或问题(例如缺货或没有)),存储最多 15 本书类型书籍的数组,在库存文件中读取的方法,处理购买的方法,打印的方法结账时的库存以及售出的书籍数量和结账时的金额。
Book 类包括 book 对象(每个 book 对象都包含 ISBN String、price double 和副本 int)、构造函数、getter 和 setter 以及打印信息的方法。
由于该数组应该在 Store 类中创建,但它的类型是 Book 并且由 book 对象组成(我假设?),我无法弄清楚如何正确执行此操作(分配isbn 的值、价格、复制变量、正确设置构造函数等)。
更新 我现在遇到的主要问题是能够从我的 printInfo 方法打印图书对象。我在该方法的打印语句中收到一条错误消息,指出“找不到符号。符号:书”。我还不能真正看到程序是否真的在工作,因为这是我现在需要看到的(打印出来的书对象),然后我开始添加更多方法来做其他依赖于本书的事情对象是正确的。
这是我目前想出的代码:
Store 类:
import java.util.Scanner;
import java.io.*;
public class Store {
public static void main(String[] args) throws Exception {
Book[] books = readInventory();
for (Book : books) {
System.out.printf("ISBN: %s, Price: %f, Copies: %d%n",
book.getISBN(), book.getPrice(), book.getCopies());
}
}
public static Book[] readInventory() throws Exception {
Book[] books = new Book[15];
java.io.File file = new java.io.File("../instr/prog4.dat");
Scanner fin = new Scanner(file);
String isbn;
double price;
int copies;
while (fin.hasNext()) {
for(int i = 0; i < books.length; i++) {
isbn = fin.next();
price = fin.nextDouble();
copies = fin.nextInt();
Book book = new Book(isbn, price, copies);
books[i] = book;
}
}
fin.close();
return books;
}
public static void printInfo(Book[] books) {
System.out.println(book);
}
}
这是我的图书课:
public class Book {
private String isbn;
private double price;
private int copies;
public Book(String isbnNum, double priceOfBook, int copiesInStock) {
isbn = isbnNum;
price = priceOfBook;
copies = copiesInStock;
}
public String getISBN() {
return isbn;
}
public double getPrice() {
return price;
}
public int getCopies() {
return copies;
}
public void setISBN(String isbn) {
this.isbn = isbn;
}
public void setPrice(double price) {
this.price = price;
}
public void setCopies(int copies) {
this.copies = copies;
}
@Override
public String toString() {
return String.format("ISBN: %s, Price: %f, Copies: %d%n",
this.getISBN(), this.getPrice(), this.getCopies());
}
}
这是我第一次使用类,或者至少在同一个程序中创建多个类,所以我仍在试图弄清楚它是如何工作的。我一直在阅读我在网上找到的教程,该教程有些帮助,但我无法将其应用于这种特定类型的程序。
任何建议将不胜感激。
【问题讨论】:
-
String[] books = new String[15];应该是Book[] books = new Book[15];,然后当您加载文件时,您只需将每本书的一个新实例分配给数组books[i] = new Book(isbn, price, copies);的一个元素