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)