python英文题07

01-02 book

class Book:
    def __init__(self,__code,__title,__status = True):
        self.__code = __code
        self.__title = __title
        self.__status = __status
    def __str__(self):
        if self.__status == True:
            return '{}, {} (Available)'.format(self.__title,self.__code)
        else:
            return '{}, {} (On Loan)'.format(self.__title, self.__code)
    def get_book_title(self):
        return self.__title
    def  get_book_code(self):
        return self.__code
    def is_available(self):
        return self.__status
    def borrow_book(self):
        self.__status = False
        return self.__status
    def return_book(self):
        self.__status = True
        return self.__status

03-04 Member

class Member:
    def __init__(self,__member_id,__name,):
        self.__member_id = __member_id
        self.__name = __name
        self.__on_loan_books_list = []
    def get_name(self):
        return self.__name
    def get_member_id(self):
        return self.__member_id
    def get_on_loan_books(self):
        return self.__on_loan_books_list
    def borrow_book(self, book):
        get1 = book.get_book_title()
        self.__on_loan_books_list.append(get1)
        return self.__on_loan_books_list
    def return_book(self, book):
        get_name = book.get_book_title()
        if get_name in self.__on_loan_books_list:
            self.__on_loan_books_list.remove(get_name)
        return self.__on_loan_books_list
    def __str__(self):
        list1 = self.__on_loan_books_list
        list1.insert(0,'On loan book(s):')
        list1.insert(0,self.__name)
        last_name = list1[-1]
        list1.pop(-1)
        for i in list1:
            print(i)
        self.__on_loan_books_list.clear()
        if last_name == 'On loan book(s):':
            print(last_name)
            return '-'
        else:
            return last_name
class Book:
    def __init__(self, __code, __title, __status=True):
        self.__code = __code
        self.__title = __title
        self.__status = __status
    def __str__(self):
        if self.__status == True:
            return '{}, {} (Available)'.format(self.__title, self.__code)
        else:
            return '{}, {} (On Loan)'.format(self.__title, self.__code)
    def get_book_title(self):
            return self.__title
    def get_book_code(self):
            return self.__code
    def is_available(self):
            return self.__status
    def borrow_book(self):
            self.__status = False
            return self.__status
    def return_book(self):
            self.__status = True
            return self.__status

05-06 Record

class Record:
    def __init__(self,__book,__member,__issue_date):
        self.__book = __book
        self.__member = __member
        self.__issue_date = __issue_date
        self.__is_on_loan = True
        self.__book.borrow_book()
        self.__member.borrow_book(self.__book)
    def __str__(self):
        return '{}, {}, issued date={}'.format(self.__member.get_name(),self.__book,self.__issue_date)

    def get_member_id(self):
        return self.__member.get_member_id()
    def get_book_code(self):
        return self.__book.get_book_code()
    def get_issue_date(self):
        return self.__issue_date
    def is_on_loan(self):
        return self.__is_on_loan
    def return_book(self):
        self.__is_on_loan = False
        self.__book.return_book()
        self.__member.return_book(self.__book)
        return self.__is_on_loan

07-10 Member

class Member:
    def __init__(self,__member_id,__name):
        self.__member_id = __member_id
        self.__name = __name
        self.__on_loan_books_list = []

    def get_name(self):
        return self.__name

    def get_member_id(self):
        return self.__member_id

    def get_on_loan_books(self):
        return self.__on_loan_books_list

    def borrow_book(self, book):
        get1 = book.get_book_title()
        self.__on_loan_books_list.append(get1)
        return self.__on_loan_books_list

    def return_book(self, book):
        get_name = book.get_book_title()
        if get_name in self.__on_loan_books_list:
            self.__on_loan_books_list.remove(get_name)
        return self.__on_loan_books_list

    def __str__(self):
        list1 = self.__on_loan_books_list
        list1.insert(0, 'On loan book(s):')
        list1.insert(0, self.__name)
        last_name = list1[-1]
        list1.pop(-1)
        for i in list1:
            print(i)
        self.__on_loan_books_list.clear()
        if last_name == 'On loan book(s):':
            print(last_name)
            return '-'
        else:
            return last_name

class Book:
    def __init__(self, __code, __title, __status=True):
        self.__code = __code
        self.__title = __title
        self.__status = __status

    def __str__(self):
        if self.__status == True:
            return '{}, {} (Available)'.format(self.__title, self.__code)
        else:
            return '{}, {} (On Loan)'.format(self.__title, self.__code)

    def get_book_title(self):
        return self.__title

    def get_book_code(self):
        return self.__code

    def is_available(self):
        return self.__status

    def borrow_book(self):
        self.__status = False
        return self.__status

    def return_book(self):
        self.__status = True
        return self.__status

class Record:
    def __init__(self,__book,__member,__issue_date):
        self.__book = __book
        self.__member = __member
        self.__issue_date = __issue_date
        self.__is_on_loan = True
        self.__book.borrow_book()
        self.__member.borrow_book(self.__book)
    def __str__(self):
        return '{}, {}, issued date={}'.format(self.__member.get_name(),self.__book,self.__issue_date)
    def get_member_id(self):
        return self.__member.get_member_id()
    def get_book_code(self):
        return self.__book.get_book_code()
    def get_issue_date(self):
        return self.__issue_date
    def is_on_loan(self):
        return self.__is_on_loan
    def return_book(self):
        self.__is_on_loan = False
        self.__book.return_book()
        self.__member.return_book(self.__book)
        return self.__is_on_loan
class MyLibrary:
    def __init__(self,book_file):
        try:
            self.book_file = book_file
            self.__books_list = []
            self.__on_loan_records_list = []
            self.on_loan = []
            get_file = open(self.book_file,'r')
            result = get_file.read()
            result = result.split('\n')
            a = len(result)
            result = [i.split(',') for i in result]
            for i in result:
                b = Book(i[0] , i[1])
                self.__books_list.append(b)
            if a <= 1:
                print('{} book loaded.'.format(a))
            else:
                print('{} books loaded.'.format(a))
        except:
            print('ERROR: The file \'{}\' does not exist.'.format(self.book_file))
    def show_all_books(self):
        for i in self.__books_list:
            print(i)
    def find_book(self, code):
        for i in self.__books_list:
            if code == i.get_book_code() and i.is_available() == True:
                return i
        return None
    def borrow_book(self, book, member, issue_date):
        if book != None:
            if book.is_available() == True:
                book.borrow_book()
                print('{} is borrowed by {}.'.format(book.get_book_title(),member.get_name()))
                r1 = Record(book, member, issue_date)
                self.on_loan.append(r1)
                self.__on_loan_records_list.append(r1)
                return 'has borrowed'
            else:
                r1 = Record(book,member,issue_date)
                self.__on_loan_records_list.append(r1)
                print('ERROR: could not issue the book.')
                return self.__on_loan_records_list
        else:
            print('ERROR: could not issue the book.')
            return 'ERROR: could not issue the book.'
    def show_available_books(self):
        for i in self.__books_list:
            if i.is_available() == True:
                print(i)
        return 'finish'
    def find_record(self, code):
        for i in self.__books_list:
            if code == i.get_book_code() and i.is_available() == False:
                for a in self.__on_loan_records_list:
                    if code == a.get_book_code():
                        return a
        return None
    def return_book(self, record):
        if record != None:
            record.return_book()
            print('{} is returned successfully.'.format(record.get_book_code()))
            self.__on_loan_records_list.remove(record)
            return '{} is returned successfully.'.format(record.get_book_code())
        else:
            print('ERROR: could not return the book.')
            return 'ERROR: could not return the book.'
    def show_on_loan_records(self):
        for i in self.__on_loan_records_list:
            print(i)
        return 'finish showing'
    def show_all_records(self):
        for i in self.on_loan:
            print(i)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值