```python class Library: def __init__(self): self.__total_amount = 0 self.__collection = {} def get_total_amount(self): return self.__total_amount def get_available(self): available_books = [book for book in self.__collection.values() if not book['borrowed']] available_books.sort(key=lambda x: x['name']) return [book['obj'] for book in available_books] def add(self, *books): for book in books: if book.name not in self.__collection: self.__collection[book.name] = {'obj': book, 'borrowed': False} self.__total_amount += 1 def lend_book(self, student, book_name): if book_name in self.__collection and not self.__collection[book_name]['borrowed']: self.__collection[book_name]['borrowed'] = True student.borrow(book_name) return True return False def return_book(self, book_name): if book_name in self.__collection and self.__collection[book_name]['borrowed']: self.__collection[book_name]['borrowed'] = False return True return False class Book: def __init__(self, name, author): self.__name = name self.__author = author def __str__(self): return f"书名: {self.__name}, 作者: {self.__author}" class Student: def __init__(self): self.__borrowed_books = [] def borrow(self, book_name): self.__borrowed_books.append(book_name) def return_book(self, book_name): if book_name in self.__borrowed_books: self.__borrowed_books.remove(book_name) ``` 需要注意的逻辑点 1. 图书唯一性:在`Library.add`方法中,确保每本书的名称是唯一的,避免重复添加相同的书。 2. 借阅状态管理:在`Library.lend_book`方法中,检查书籍是否已经被借出,只有未被借出的书籍才能被借阅。 3. 归还状态更新:在`Library.return_book`方法中,确保书籍的状态从“已借出”变为“未借出”,并且学生的借书记录也要相应更新。 [2024-12-07 18:52:01 | AI写代码神器 | 499点数解答]