0% found this document useful (0 votes)
285 views

Python Course - XIII - LibMS Project - Solution

The document provides code for a library management system project in Python. It includes code to: 1. Create menus for book issue, deposit, and administration options like adding, viewing, modifying, and deleting books and student records. 2. Define Book and Student classes to manage book and student data with methods like create, show, modify, and delete. 3. Write and read book and student data to external files using pickle for permanent storage. 4. Implement functions for the various administration options to add, view, modify, and delete book and student records by loading and dumping data from the external files.

Uploaded by

SwapnilSaurav
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
285 views

Python Course - XIII - LibMS Project - Solution

The document provides code for a library management system project in Python. It includes code to: 1. Create menus for book issue, deposit, and administration options like adding, viewing, modifying, and deleting books and student records. 2. Define Book and Student classes to manage book and student data with methods like create, show, modify, and delete. 3. Write and read book and student data to external files using pickle for permanent storage. 4. Implement functions for the various administration options to add, view, modify, and delete book and student records by loading and dumping data from the external files.

Uploaded by

SwapnilSaurav
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Python Programming Course

Hand Notes 12

Hand Notes for:

– Projectwork

1
Python Programming - IV

Handnote 12: Project work

LIBRARY MANAGEMENT SYSTEM

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.

OUR PROJECT WORK


Create following menu options:

1. BOOK ISSUE

2. BOOK DEPOSIT

3. ADMINISTRATION MENU

 CREATE STUDENT RECORD


 DISPLAY ALL STUDENTS RECORD
 DISPLAY SPECIFIC STUDENT RECORD
 MODIFY STUDENT RECORD
 DELETE STUDENT RECORD
 CREATE BOOK
 DISPLAY ALL BOOKS
 DISPLAY SPECIFIC BOOK
 MODIFY BOOK
 10. DELETE BOOK RECORD
4. EXIT

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.

Complete Code Below:


from pickle import load, dump
from os import remove, rename
import os
import random
import time

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 get_stbno(self, t):


self.stbno = t

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

fin = open("student1.dat", "rb")


if not (fin):
print()
"\t \t File is Not Found.."
else:
try:
while True:
print()
st = load(fin)
st.showstud()
except EOFError:
pass
fin.close()

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

n = input("\t \t Enter Book No to be Deleted:")


print()
fin = open("book1.dat", "rb")
fout = open("temp.dat", "wb")
try:
while True:
bk = load(fin)
if bk.ret_bno() != n:
dump(bk, fout)
else:
flag = 1
except EOFError:
pass
fin.close()
fout.close()
remove("book1.dat")
rename("temp.dat", "book1.dat")
if flag == 1:
print("\t \t \t Record Deleted")
else:
print("\t \t \t SORRY..!! RECORD NOT PRESENT..")

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

You might also like