#定义书籍类,基本信息有书名title和作者anthor
#借阅者borrower和待借阅者demanders(列表)
class Book(object):
def __init__(self,title='',author=''):
self.title=title
self.author=author
def info(self):
return(self.title,self.author)
def reader(self,borrower='',demanders=[]):
self.borrower=borrower
self.demanders=demanders
#定义借阅者类,基本信息有姓名name,性别sex,身份证号ID
#该借阅者借阅的书籍bookName(列表)
class Patron(object):
def __init__(self,name='',sex='',ID='',borrowBooks=[]):
self.name=name
self.sex=sex
self.ID=ID
self.borrowBooks=borrowBooks
def info(self):
return(self.name,self.sex,self.ID,self.borrowBooks)
#flag=1时,代表借书,flag=0时,代表还书
def book(self,borrowBooks=[],title='',flag=1):
#确保借阅者最多可借3本书
if len(borrowBooks)<4 or flag==0:
if flag==1:
borrowBooks.append(title)
else:
borrowBooks.remove(title)
else:
print("最多可借阅三本图书!")
return borrowBooks
class Library(object):
"""some operation on books and readers"""
#some operation on books
# add book
def addBook(self,books=[],book=Book()):
books.append(book.title)
return books
#delete book
def deleteBook(self,books,book=Book()):
books.remove(book.title)
return books
#find book,and return the index of the book
def findBook(self,books,book=Book()):
return books.index(book.title)
#some operation on readers
#add reader
def addReader(self,readers=[],patron=Patron()):
readers.append(patron.name)
return readers
#delete reader
def deleteReader(self,readers,patron=Patron()):
readers.remove(patron.name)
return readers
#find reader,and return the index of the reader
def findReader(self,readers,patron=Patron()):
return readers.index(patron.name)
#some operation on borrow and return book
#borrow book
def borrowBook(self,patron=Patron(),book=Book()):
books.remove(book.title)
patron.book(patron.borrowBooks,book.title,1)
return books,patron.borrowBooks
#return book
def returnBook(self,patron=Patron(),book=Book()):
books.append(book.title)
patron.book(patron.borrowBooks,book.title,0)
return books,patron.borrowBooks
#测试
if __name__=="__main__":
library=Library() #创建Library类
books=[] #在图书馆的书
readers=[] #图书馆读者列表
#创建了4个Book类实例(4本书)
book1=Book("Gone with the Wind","Margaret Mitchell")
book2=Book("Pride and Prejudice","Jane Austen")
book3=Book("Oliver Twist","Charles Dickens")
book4=Book("The Little Prince","Antoine de Saint-Exupéry")
#创建了5个Patron类实例(5个借阅者)
patron1=Patron("Jack","man","121")
patron2=Patron("Bob","man","122")
patron3=Patron("Tim","man","123")
patron4=Patron("Ann","woman","124")
patron5=Patron("Jane","woman","125")
#图书的相关操作展示
#向books添加这些书
library.addBook(books,book1)
library.addBook(books,book2)
library.addBook(books,book3)
library.addBook(books,book4)
#此时,结果:['Gone with the Wind','Pride and Prejudice','Oliver Twist','The Little Prince']
library.deleteBook(books,book3)
#此时,结果:['Gone with the Wind', 'Pride and Prejudice', 'The Little Prince']
library.findBook(books,book2)
#此时,结果:1
#读者的相关操作展示
#向readers添加这些借阅者
library.addReader(readers,patron1)
library.addReader(readers,patron2)
library.addReader(readers,patron3)
library.addReader(readers,patron4)
library.addReader(readers,patron5)
#此时,结果:['Jack', 'Bob', 'Tim', 'Ann', 'Jane']
library.deleteReader(readers,patron2)
#此时,结果:['Jack', 'Tim', 'Ann', 'Jane']
library.findReader(readers,patron4)
#此时,结果:2
#借阅图书和归还图书的操作
#借阅图书操作
library.borrowBook(patron1,book1)
library.borrowBook(patron1,book2)
#此时,结果:books= ['The Little Prince']
#patron1.borrowBooks=['Gone with the Wind', 'Pride and Prejudice']
#验证一下,一个借阅者最多可借3本书
library.addBook(books,book3)
library.borrowBook(patron1,book3)
#当下面一句执行时,会打印最多可借3本书
library.borrowBook(patron1,book4)
#归还图书操作
library.returnBook(patron1,book1)
#此时,结果:books=['Gone with the Wind']
#patron1.borrowBooks= ['Pride and Prejudice', 'Oliver Twist', 'The Little Prince']
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632