python编写程序完成以下要求:定义图书馆类Library、图书类Book、学生类Student。 其中,图书馆类Library包含私有属性:图书总量和馆藏图书,并包含以下方法的定义: ①初始化方法:init(self),用于设置私有属性图书总量为0、馆藏图书为空字典{}。 ②获取图书总量:getTotalAmount (self),返回值为整数。 ③获取可借图书列表:getAvailable (self),返回值为以book对象为元素的列表。 ④添加图书:add (self, *books),没有返回
时间: 2024-03-26 12:34:36 浏览: 46
值。其中,*books表示可变参数,可以接收一个或多个图书对象,将这些图书对象添加到馆藏图书中,并更新图书总量。
图书类Book包含私有属性:书名、作者、出版社、出版日期和是否可借。包含以下方法的定义: ①初始化方法:init(self, name, author, publisher, date),用于设置私有属性。其中,name、author、publisher、date分别表示书名、作者、出版社和出版日期。是否可借默认为True。 ②获取书名:getName(self),返回值为字符串。 ③获取作者:getAuthor(self),返回值为字符串。 ④获取出版社:getPublisher(self),返回值为字符串。 ⑤获取出版日期:getDate(self),返回值为字符串。 ⑥是否可借:isAvailable(self),返回值为布尔型。 ⑦设置是否可借:setAvailable(self, available),没有返回值。其中,available为布尔型,表示是否可借。
学生类Student包含私有属性:姓名、学号、已借图书列表。包含以下方法的定义: ①初始化方法:init(self, name, number),用于设置私有属性。其中,name、number分别表示姓名和学号。已借图书列表为空列表[]。 ②获取姓名:getName(self),返回值为字符串。 ③获取学号:getNumber(self),返回值为字符串。 ④获取已借图书列表:getBorrowedBooks(self),返回值为以book对象为元素的列表。 ⑤借书:borrow(self, book),没有返回值。其中,book为book对象,表示要借的图书。如果该图书可借,则将该图书添加到已借图书列表中,并将该图书的是否可借属性设置为False。否则,提示该图书不可借。 ⑥还书:returnBook(self, book),没有返回值。其中,book为book对象,表示要还的图书。如果该图书在已借图书列表中,则将该图书从已借图书列表中删除,并将该图书的是否可借属性设置为True。否则,提示该图书未被借走。
下面是完整的代码实现:
```python
class Library:
def __init__(self):
self.__total_amount = 0
self.__books = {}
def getTotalAmount(self):
return self.__total_amount
def getAvailable(self):
available_books = []
for book in self.__books.values():
if book.isAvailable():
available_books.append(book)
return available_books
def add(self, *books):
for book in books:
self.__books[book.getName()] = book
self.__total_amount += 1
class Book:
def __init__(self, name, author, publisher, date):
self.__name = name
self.__author = author
self.__publisher = publisher
self.__date = date
self.__available = True
def getName(self):
return self.__name
def getAuthor(self):
return self.__author
def getPublisher(self):
return self.__publisher
def getDate(self):
return self.__date
def isAvailable(self):
return self.__available
def setAvailable(self, available):
self.__available = available
class Student:
def __init__(self, name, number):
self.__name = name
self.__number = number
self.__borrowed_books = []
def getName(self):
return self.__name
def getNumber(self):
return self.__number
def getBorrowedBooks(self):
return self.__borrowed_books
def borrow(self, book):
if book.isAvailable():
self.__borrowed_books.append(book)
book.setAvailable(False)
else:
print("This book is not available.")
def returnBook(self, book):
if book in self.__borrowed_books:
self.__borrowed_books.remove(book)
book.setAvailable(True)
else:
print("This book is not borrowed by you.")
```
示例代码中定义了三个类:图书馆类Library、图书类Book、学生类Student。其中,图书馆类包含获取图书总量和可借图书列表的方法,以及添加图书的方法;图书类包含获取书名、作者、出版社、出版日期和是否可借的方法,以及设置是否可借的方法;学生类包含借书和还书的方法,以及获取已借图书列表的方法。
阅读全文