Python 实现图书馆、图书与学生类:图书管理系统代码揭秘
```python class Library: def __init__(self): self.__total_amount = 0 self.__books = {} def gettotalamount(self): return self.__total_amount def getavailable(self): available_books = [book for book in self.__books.values() if book.is_available()] return sorted(available_books, key=lambda x: x.get_name()) def add(self, *books): for book in books: if book.get_name() not in self.__books: self.__books[book.get_name()] = book self.__total_amount += 1 def lendbook(self, student, bookname): if bookname in self.__books and self.__books[bookname].is_available(): self.__books[bookname].set_borrowed(True) student.borrow_book(self.__books[bookname]) return True return False def returnbook(self, bookname): if bookname in self.__books and not self.__books[bookname].is_available(): self.__books[bookname].set_borrowed(False) return True return False class Book: def __init__(self, name, author): self.__name = name self.__author = author self.__is_borrowed = False def get_name(self): return self.__name def get_author(self): return self.__author def is_available(self): return not self.__is_borrowed def set_borrowed(self, status): self.__is_borrowed = status class Student: def __init__(self, name): self.__name = name self.__borrowed_books = [] def borrow_book(self, book): self.__borrowed_books.append(book) def return_book(self, book): if book in self.__borrowed_books: self.__borrowed_books.remove(book) ``` 这段代码定义了三个类:Library、Book和Student。Library类管理图书的添加、借阅和归还,并跟踪馆藏图书的状态。Book类表示单个图书,包含图书名称、作者和借阅状态。Student类表示学生,可以借阅和归还图书。 ######[AI写代码神器 | 578点数解答 | 2024-11-18 22:31:25]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)459
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 工程师必备!10 种工程日常易用管理工具大揭秘(百度文心 | 346点数解答 | 2023-11-09 18:26:09)290
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)415
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)407
- Java程序模拟教学选课:林老师开课,58 位学生选课男女比例大揭秘( | 2653点数解答 | 2024-04-02 11:00:16)471
- Java程序设计课程:模拟教学管理,统计58位选课学生男女比重( | 363点数解答 | 2024-04-05 18:31:39)473
- R语言实战:用配对样本t检验评估课程强化集训对学生成绩的提升效果(GPT | 630点数解答 | 2024-11-26 22:00:01)321
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)312
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)462
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)355
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)390