Python Course - XIII - LibMS Project - Solution
Python Course - XIII - LibMS Project - Solution
Hand Notes 12
– Projectwork
1
Python Programming - IV
A Library Management System (LMS) gives access to and manages the resources in your library. A well-chosen system
will increase your library’s efficiency, save valuable administration time, lead to a better educational experience for
pupils and help develop independent learning.
1. BOOK ISSUE
2. BOOK DEPOSIT
3. ADMINISTRATION MENU
Hint: Create 2 files to store the data permanently: book.dat and student.dat to store book information and student
information respectively. Suggest you to use pickle package to write and read data into these files. You can use os
package to create/rename/remove filenames.
print()
print()
print()
2
Python Programming - I
print()
print()
print("\t \t \t WELCOME TO A & A LIBRARY \t \t \t")
print()
print()
print()
print()
print()
print()
print("\t \t \t \t \t \t \t PROJECT DONE BY:")
print()
print()
print("\t \t \t \t \t \t \......... ")
print()
print("\t \t \t \t \t \t \t Skills Monks Team")
print()
print()
a = input("PRESS ENTER TO CONTINUE:")
a = str(a)
if a.isalpha():
pass
class book:
def __init__(self, bno=" ", bname=" ", auname=" "):
self.bno = bno
self.bname = bname
self.auname = auname
def create_book(self):
print()
print("\t\t\t Creating Book Record \t\t\t")
print()
self.bno = input("\t Enter Book Number:")
print()
self.bname = input("\t Enter Name of the Book:")
print()
self.auname = input("\t Enter Name of the Author:")
print()
print()
print("\t \t \t Book Created \t \t \t")
def show_book(self):
print()
print()
print("\t \t Book Number:", self.bno)
print()
print("\t \t Book Name:", self.bname)
print()
print("\t \t Author Name:", self.auname)
print()
print()
def modify_book(self):
print()
print()
print("\t \t Book No.: ", self.bno)
3
Python Programming - I
print()
self.bname = input("\t \t Enter New Book Name:")
print()
self.auname = input("\t \t Enter New Author Name:")
print()
print()
print("\t \t Book Modified")
print()
def ret_bno(self):
return (self.bno)
def report_book(self):
print(self.bno, self.bname, self.auname)
class student:
def __init__(self, admno=" ", name=" ", stbno=" ", token=0):
self.admno = admno
self.name = name
self.stbno = stbno
self.token = token
def createstud(self):
print()
print("\t \t \t Creating Student Record \t \t \t")
print()
self.admno = input("\t \t Enter Admission Number:")
print()
self.name = input("\t \t Enter Name of the Student:")
self.stbno = " "
self.token = 0
print()
print()
print("\t \t \t Student Record Created \t \t \t")
print()
print("#" * 70)
print()
def showstud(self):
print()
print()
print("\t Admission No.:", self.admno)
print()
print("\t Name:", self.name)
print()
print("\t Stbno:", self.stbno)
print()
print()
def displaystud(self):
print()
print("\t Admission Number of the Student is:", self.admno)
print()
print("\t Name of the Student is:", self.name)
if (self.token == 1):
print("\t Book Number is:", self.stbno)
4
Python Programming - I
def modifystud(self):
print()
print("\t Admission No:", self.admno)
print()
self.name = input("\t New Student Name:")
print()
print("\t \t Student's Name Modified !!")
def ret_admno(self):
return self.admno
def ret_stbno(self):
return self.stbno
def ret_token(self):
return self.token
def add_token(self):
self.token = 1
def reset_token(self):
self.token = 0
def reportstud(self):
print(self.admno, self.name, self.token)
def writebook():
ch = "Y"
fp = open("book1.dat", "ab")
while ch == "Y":
bk.create_book()
dump(bk, fp)
print()
ch = input("\t \t Do You Want to Continue<y/n>:")
print()
print("#" * 70)
print()
ch = ch.upper()
def writestudent():
ch = "Y"
fp = open("student1.dat", "ab")
while ch == "Y":
st.createstud()
dump(st, fp)
ch = input("\t \t Do You Want to Continue <y/n>:")
ch = ch.upper()
print()
def display_alls():
5
Python Programming - I
def display_allb():
fin = open("book1.dat", "rb")
if not (fin):
print()
print()
print("Book File is Not Found..")
else:
try:
while True:
bk = load(fin)
bk.show_book()
except EOFError:
pass
fin.close()
def display_spb(no):
flag = 0
fin = open("book1.dat", "rb")
try:
while True:
bk = load(fin)
if (bk.ret_bno() == no):
bk.show_book()
flag = 1
except EOFError:
pass
fin.close()
if flag == 0:
print()
print()
print("\t \t \t \t BOOK NOT PRESENT..!!")
def display_sps(n):
flag = 0
fin = open("student1.dat", "rb")
try:
while True:
st = load(fin)
if (st.ret_admno() == n):
6
Python Programming - I
st.showstud()
flag = 1
except EOFError:
pass
fin.close()
if flag == 0:
print()
print("\t \t \t STUDENT NOT PRESENT..!!")
def modify_bookrecord():
found = 0
print()
print()
print("\t \t \t Modify Book")
print()
print()
n = input("\t \t Enter Book Number to be Modified:")
print()
fin = open("book1.dat", "rb")
fout = open("temp.dat", "wb")
try:
while True:
bk = load(fin)
if bk.ret_bno() == n:
print()
print("\t \t \t Book Details")
bk.show_book()
print()
print("\t \t Enter New Details")
print()
print()
bk.modify_book()
dump(bk, fout)
found = 1
else:
dump(bk, fout)
except EOFError:
pass
if found == 0:
print("\t \t \t \t Book Not Present")
fin.close()
fout.close()
remove("book1.dat")
rename("temp.dat", "book1.dat")
def modify_student_record():
found = 0
print()
print("\t \t \t Modify Student Record")
print()
print()
n = input("\t \t Enter Student's Admission Number to be Modified:")
print()
fin = open("student1.dat", "rb")
fout = open("temp.dat", "wb")
7
Python Programming - I
try:
while True:
st = load(fin)
if st.ret_admno() == n:
print()
print("\t \t \t STUDENT DETAILS")
st.showstud()
print()
print("\t \t \t Enter New Student Details:")
st.modifystud()
dump(st, fout)
found = 1
else:
dump(st, fout)
except EOFError:
pass
if found == 0:
print("\t \t \t \t STUDENT NOT PRESENT")
fin.close()
fout.close()
remove("student1.dat")
rename("temp.dat", "student1.dat")
def del_stud():
flag = 0
print()
print()
n = input("\t \t Enter Admission to be Deleted:")
print()
fin = open("student1.dat", "rb")
fout = open("temp.dat", "wb")
try:
while True:
st = load(fin)
if st.ret_admno() != n:
dump(st, fout)
else:
flag = 1
except EOFError:
pass
fin.close()
fout.close()
remove("student1.dat")
rename("temp.dat", "student1.dat")
if flag == 1:
print()
print("\t \t \t \t RECORD DELETED..!!")
else:
print()
print("\t \t \t \t SORYY..!! RECORD DOES NOT EXIST..!!..")
def del_book():
flag = 0
print()
print()
8
Python Programming - I
def book_issue():
sn = " "
bn = " "
found = 0
flag = 0
print()
print()
print("\t \t \t BOOK ISSUE.. \t \t \t")
print()
print()
sn = input("\t \t Enter the Student's Admission Number:")
print()
fin1 = open("book1.dat", "rb")
fin2 = open("student1.dat", "rb")
fout = open("temp.dat", "wb")
try:
while True:
st = load(fin2)
if (st.ret_admno() == sn):
st.showstud()
found = 1
if st.ret_token() == 0:
bn = input("\t \t Enter Book Number:")
try:
while True:
bk = load(fin1)
if bk.ret_bno() == bn:
bk.show_book()
flag = 1
st.add_token()
st.get_stbno(bk.ret_bno())
dump(st, fout)
os.system("cls")
print()
9
Python Programming - I
print()
print("\t \t \t Book Issued Successfully \t \t \t")
print()
print("\t PLEASE NOTE : Write the current date behind
of your book ")
print("\t \t and submit within 15 days")
print()
print("\t \t Fine Rs.20 for each day after 15 days
period..!!")
print()
except EOFError:
pass
else:
print("\t You have not returned the last book..")
except EOFError:
pass
if (flag == 0):
print("\t \t \t No Such Book Present !!!")
if (found == 0):
print("\t \t \t No Such Student Exists !!!")
fin1.close()
fin2.close()
fout.close()
remove("student1.dat")
rename("temp.dat", "student1.dat")
def book_deposit():
print()
print()
print()
print("\t \t \t BOOK DEPOSITING.")
sn = " "
found = 0
flag = 0
day = 0
fine = 0
print()
print()
sn = input("\t \t Enter Students Admission Number:")
print()
fin1 = open("student1.dat", "rb")
fin2 = open("book1.dat", "rb")
fout = open("temp.dat", "wb")
try:
while True:
st = load(fin1)
if st.ret_admno() == sn:
found = 1
print()
print("\t Student Token Number", st.ret_token())
if st.ret_token() == 1:
try:
while True:
bk = load(fin2)
10
Python Programming - I
if bk.ret_bno() == st.ret_stbno():
bk.show_book()
flag = 1
print()
days = int(input("\t Book Deposited In no. of days:"))
if days >= 15:
fine = (days - 15) * 20
print()
print("\t Fine : Rs.", fine)
st.reset_token()
st.get_stbno(0)
st.showstud()
dump(st, fout)
print()
print("\t \t BOOK DEPOSITED !!!")
except EOFError:
pass
else:
print()
print("\t \t You have not issued the book..")
except EOFError:
pass
if (found == 0):
print()
print("\t No Such Student Exists")
fin1.close()
fin2.close()
fout.close()
remove("student1.dat")
rename("temp.dat", "student1.dat")
bk = book()
st = student()
def adminmenu():
ch = "Y"
while ch == "Y":
print()
print()
print("\t \t \t ADMINISTRATION MENU \t \t \t")
print()
print()
print("\t 1. CREATE STUDENT RECORD")
print()
print("\t 2. DISPLAY ALL STUDENTS RECORD")
print()
print("\t 3. DISPLAY SPECIFIC STUDENT RECORD")
print()
print("\t 4. MODIFY STUDENT RECORD")
print()
print("\t 5. DELETE STUDENT RECORD")
11
Python Programming - I
print()
print("\t 6. CREATE BOOK")
print()
print("\t 7. DISPLAY ALL BOOKS")
print()
print("\t 8. DISPLAY SPECIFIC BOOK")
print()
print("\t 9. MODIFY BOOK")
print()
print("\t 10.DELETE BOOK RECORD")
print()
ch1 = int(input("\t \t Enter Your Choice:"))
print()
os.system("cls")
if ch1 == 1:
writestudent()
elif ch1 == 2:
display_alls()
elif ch1 == 3:
print()
print()
ad = input("\t \t Enter Student's Admno to be Displayed:")
display_sps(ad)
elif ch1 == 4:
modify_student_record()
elif ch1 == 5:
del_stud()
elif ch1 == 6:
writebook()
elif ch1 == 7:
display_allb()
elif ch1 == 8:
print()
print()
bn = input("\t \t ENTER BOOK NUMBER TO BE DISPLAYED:")
display_spb(bn)
elif ch1 == 9:
modify_bookrecord()
elif ch1 == 10:
del_book()
print()
ch = input("\t \t Do you want Continue with ADMINMENU<y/n>:")
ch = ch.upper()
print()
os.system("cls")
if ch == "Y":
continue
else:
mainmenu()
def mainmenu():
ch = "Y"
while ch == "Y":
print()
print()
print("\t \t \t MAIN MENU \t \t \t")
12
Python Programming - I
print()
print("\t 1. BOOK ISSUE")
print()
print("\t 2. BOOK DEPOSIT")
print()
print("\t 3. ADMINISTRATION MENU")
print()
print("\t 4. EXIT")
print()
ch1 = int(input("\t \t Enter Your Choice:"))
print()
print("\t \t Loading ....")
time.sleep(5)
os.system("cls")
if ch1 == 1:
book_issue()
elif ch1 == 2:
book_deposit()
elif ch1 == 3:
adminmenu()
else:
exit(0)
print()
ch = input("\t \t \t Do You Want to Continue <y/n>:")
ch = ch.upper()
if ch == "N":
break
print()
print()
print("\t \t Loading...")
time.sleep(30)
os.system("cls")
os.system("cls")
mainmenu()
- - - End of Session 12 - - -
13