Я добавил функцию возврата в свою библиотечную систему, которая успешно работает. Проблема в том, что, когда вы идете вынимать книгу после ее возвращения, она не увенчалась успехом и заявляет, что "книга уже заимствована". Я пытаюсь решить эту проблему.
Это мой код для "книги заимствования" и "книги возврата" моей системы...
public String borrowBook(String titleBorrow)
{
int found = 0;
String bookFound = "\n";
for (Book b : collection)
{
if (b.getTitle().equals(titleBorrow))
{
if (found == 0)
{
found = 1;
}
if (!b.isBorrowed())
{
if (b.numcopies > 0)
{found = 2;
b.numcopies -=1;
break;
}else
{
found = 1;
}
}
}
}
if (found == 0) {
bookFound="Sorry, this book is not in our catalog.";
} else if (found == 1) {
bookFound="Sorry, this book is already borrowed.";
} else if (found == 2) {
bookFound="You successfully borrowed ";
}
return bookFound;
}
public String returnBook(String returnedBook)
{
int found = 0;
boolean borrowed = false;
String bookreturn = "\n";
for (Book b : collection)
{
if (b.getTitle().equals(returnedBook))
{
if (found == 0)
{
found = 1;
}
if (!b.isBorrowed())
{
b.borrowed=true;
found = 2;
b.numcopies +=1;
break;
}
}
}
if (found == 0) {
bookreturn="Sorry, this book is not in our catalog.";
} else if (found == 1) {
bookreturn="Please try again.";
} else if (found == 2) {
bookreturn="You successfully returned the book ";
}
return bookreturn;
}
}
Когда вы заимствуете книгу, вы должны установить флаг заимствования следующим образом:
if (!b.isBorrowed()) {
b.borrowed = true;
..
Когда вы возвращаете книгу, вы должны,
if (!b.isBorrowed()) {
b.borrowed=false;//its returned now and can be borrowed
Вы можете расширить логику с количеством копий той же книги, что и в библиотеке.