我已经在图书馆系统上工作了几个星期,但在尝试初始化"借用"时遇到了问题。系统功能。如果有人可以帮助我,我真的很感激。这是我到目前为止为"借用"的代码。特征。
图书馆类 - 包括错误借用
私人清单收藏;
public Library()
{
collection = new ArrayList<Book>();
}
public void addBook(Book book)
{
collection.add(book);
}
public String searchTitle(String titleSearch) {
if (titleSearch == null) return "\n No Books Avaliable ";
for(int i = 0; i < collection.size(); i++){
if(titleSearch.equalsIgnoreCase(collection.get(i).getTitle())){
return collection.get(i).toString();
}
}
return "\n No Books Avaliable "; //reachable only if no book found
}
public String toString()
{
String total = "\n ";
for (int i=0; i<collection.size(); i++)
{
Book b = collection.get(i);
total = total + b.toString();
}
return total;
}
public void borrowBook(String title) {
int found = 0;
for (Book b : collection) {
if (collection.getTitle().equals(title)) {
if (found == 0) {
found = 1;
}
if (!book.isBorrowed()) {
book.borrowed();
found = 2;
break;
};
}
}
if (found == 0) {
System.out.println("Sorry, this book is not in our catalog.");
} else if (found == 1) {
System.out.println("Sorry, this book is already borrowed.");
} else if (found == 2) {
System.out.println("You successfully borrowed " + title);
}
}
}
这是Book类
public Book(int isbn, String author, String title, String genre, int
numcopies)
{
this.isbn = isbn;
this.author = author;
this.title = title;
this.genre = genre;
this.numcopies = numcopies;
}
public int getISBN()
{
return isbn;
}
public String getAuthor()
{
return author;
}
public String getTitle()
{
return title;
}
public String getGenre()
{
return genre;
}
public String toString()
{
return "\nISBN: " +isbn + "\nAuthor: " +author + "\nTitle: " +title +
"\nGenre: " +genre + "\nNumber Of Copies " +numcopies +"\n ";
}
}
答案 0 :(得分:0)
更改
if (collection.getTitle().equals(title))
到
if (b.getTitle().equals(title))
现在,您正在调用集合上的getTitle方法,而不是您在迭代中调用的特定书籍。
您似乎也缺少isBorrowed方法。
答案 1 :(得分:0)
将您的borrowBook
方法更改为
public void borrowBook(String title)
{
int found = 0;
for (Book b : collection)
{
if (b.getTitle().equals(title))
{
if (found == 0)
{
found = 1;
}
if (!b.isBorrowed())
{
b.borrowed=true;
found = 2;
break;
}
}
}
if (found == 0) {
System.out.println("Sorry, this book is not in our catalog.");
} else if (found == 1) {
System.out.println("Sorry, this book is already borrowed.");
} else if (found == 2) {
System.out.println("You successfully borrowed " + title);
}
}
并将boolean borrowed
变量和boolean isBorrowed()
方法添加到Book
类,其中isBorrowed()
只会返回borrowed
变量的值。