星640 2021-06-08 11:08 采纳率: 100%
浏览 37
已采纳

图书馆借阅系统,不知道要咋编了

 

  • 写回答

2条回答 默认 最新

  • CSDN专家-黄老师 2021-06-08 11:11
    关注
    
    #定义书籍类,基本信息有书名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']
        

    如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀