编写程序完成以下要求:定义图书馆类Library、图书类Book、学生类Student。 其中,图书馆类Library包含私有属性:图书总量和馆藏图书,并包含以下方法的定义: ①初始化方法:init(self),用于设置私有属性图书总量为0、馆藏图书为空字典{}。 ②获取图书总量:getTotalAmount (self),返回值为整数。 ③获取可借图书列表:getAvailable (self),返回值为以book对象为元素的列表。 ④添加图书:add (self, *books),没有返回值。 ⑤借阅图书:lendBook(self, student, bookname),返回值为逻辑型,表示借阅是否成功。 ⑥归还图书:returnBook(self, bookname),返回值为逻辑型,表示归还是否成功。 图书类Book包含私有属性:图书名称和作者,并包含以下方法的定义: ①初始化方法:init(self, name, author),用于将参数name赋值给私有属性图书名称以及将参数author赋值给私有属性图书作者。 ②文本化图书对象:str(self),用于在输出图书对象时,将图书对象转换成字符串对象。 ③获取图书名称:getName(self),用于获取图书对象的私有属性图书名称的值。 学生类Student包含私有属性:学生的学号和姓名,并包含以下方法的定义: ①初始化方法:init(self, id, name),用于将参数id赋值给私有属性学生学号以及将参数name赋值给私有属性学生姓名
时间: 2024-03-26 09:34:57 浏览: 128
好的,我可以帮你编写这个程序。以下是代码实现:
```python
class Book:
def __init__(self, name, author):
self.__name = name
self.__author = author
def __str__(self):
return self.__name + " - " + self.__author
def getName(self):
return self.__name
class Library:
def __init__(self):
self.__totalAmount = 0
self.__books = {}
def getTotalAmount(self):
return self.__totalAmount
def getAvailable(self):
return [book for book in self.__books if self.__books[book] > 0]
def add(self, *books):
for book in books:
if book.getName() in self.__books:
self.__books[book.getName()] += 1
else:
self.__books[book.getName()] = 1
self.__totalAmount += 1
def lendBook(self, student, bookname):
if bookname not in self.__books:
return False
if self.__books[bookname] > 0:
self.__books[bookname] -= 1
return True
else:
return False
def returnBook(self, bookname):
if bookname not in self.__books:
return False
self.__books[bookname] += 1
return True
class Student:
def __init__(self, id, name):
self.__id = id
self.__name = name
```
在这个程序中,我们定义了三个类:`Book`、`Library` 和 `Student`。其中,`Book` 类表示图书,`Library` 类表示图书馆,`Student` 类表示学生。
在 `Book` 类中,我们定义了私有属性 `__name` 和 `__author`,并提供了初始化方法 `__init__`、文本化方法 `__str__` 和获取图书名称的方法 `getName`。
在 `Library` 类中,我们定义了私有属性 `__totalAmount` 和 `__books`,分别表示图书总量和馆藏图书。我们提供了初始化方法 `__init__`、获取图书总量的方法 `getTotalAmount`、获取可借图书列表的方法 `getAvailable`、添加图书的方法 `add`、借阅图书的方法 `lendBook` 和归还图书的方法 `returnBook`。
在 `Student` 类中,我们定义了私有属性 `__id` 和 `__name`,分别表示学生的学号和姓名,并提供了初始化方法 `__init__`。
希望这个程序可以帮助你完成你的需求。
阅读全文