图书馆系统 - 借书

问题描述 投票:0回答:2

我已经在图书馆系统上工作了几个星期,但在尝试初始化系统的“借用”功能时遇到了问题。如果有人可以帮助我,我真的很感激。这是我到目前为止“借用”功能的代码。

图书馆类 - 包括错误的借阅

私人清单集;

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 ";
}

}

java arrays arraylist system bluej
2个回答
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变量的值。


0
投票

更改

if (collection.getTitle().equals(title)) 

if (b.getTitle().equals(title)) 

现在,您在集合上调用getTitle方法,而不是在迭代中调用当前的特定书。

您似乎也缺少isBorrowed方法。

© www.soinside.com 2019 - 2024. All rights reserved.