CSV and Coding PDF
CSV and Coding PDF
BOOKS.CSV
MEMBERS.CSV
15
TRANSACTION.CSV
CODING:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
global path
from datetime import date
import time
import winsound import pyttsx3 as ply
pd.set_option('display.max_columns',None)
path="C:\\Users\\pc\\Desktop\\Library\\"
def menu(): 16
while True:
print("LIBRARY MANAGEMENT SYSTEM")
print("P U B L I C L I B R A R Y")
print("*****************************")
print(“ 1- BOOKS")
print("2- MEMBERS")
print("3- TRANSACTION")
print("4- VISUALIZATION")
print("5- ANALYTICS/QUERY")
print("6- E X I T")
ch=int(input("Enter your choice [1-6] :"))
if ch==1:
books()
elif ch==2:
members()
elif ch==3:
transaction()
elif ch==4:
visualization()
elif ch==5:
analytics()
else:
s=ply.init() s.setProperty('rate',145)
s.say("THANK YOU VERY MUCH FOR USING LIBRARY
MANAGEMENT SYSTEM. I AM EXITING.
PLEASE VISIT AGAIN")
17
s.runAndWait()
str="THANK YOU VERY MUCH FOR USING LIBRARY
MANAGEMENT SYSTEM. EXITING....."
for k in
str: print(k,end='')
time.sleep(0.1)
break
#*********************************************
def books():
while True:
print("B O O K S M E N U")
print("**********************")
print()
print(" 1- Add New Books")
print(" 2- Delete old Books")
print(" 3- Edit detail of the Books")
print(" 4- B A C K")
ch=int(input(" Enter your choice [1-4] :"))
if ch==1:
add_book()
elif ch==2:
del_book()
elif ch==3:
edit_book()
else:
print("Going back to Main Menu")
break 18
#***************************************
def members():
while
True:
print(" M E M B E R S M E N U")
print(" *************************")
print()
print(" 1- Add Members")
print(" 2- Delete Members")
print(" 3- Edit detail of the Memebers")
print(" 4- B A C K")
ch=int(input("Enter your choice [1-4] :"))
if ch==1:
add_member()
elif ch==2:
del_member()
elif ch==3:
edit_member()
else:
#*****************************************
def transaction():
19
dftrans=pd.read_csv(path+"transa
ction.csv")
print(dftrans)
while True:
print(" T R A N S A C T I O N M E N U")
print(" **********************************")
print()
print(" 1- Issue a Book")
print(" 2- Return a Book")
print(" 3- B A C K")
ch=int(input(" Enter your choice [1-3] :"))
if ch==1:
issue_book()
elif ch==2:
return_book()
else:
print("Going back to Main Menu")
break
#***********************************
def add_book():
dfbooks=pd.read_csv(path+"books.csv")
ans='y'
bid=0
while ans=='y' or ans=='Y':
20
df=dfbooks.sort_values(by='Book_id')
df=df.tail(1)
bid=df.iloc[0,0]+1
bid=int(input("Enter Book id :"))
print("New Book id : ",bid)
bnm=input("Enter Book Name :")
auth=input("Enter Author Name :")
price=float(input("Enter Price :"))
dt_enter=input("Enter Date of Entry :")
cpy=int(input("Enter No. of copies:"))
data=[bid,bnm,auth,price,dt_enter,cpy]
dfbooks.loc[len(dfbooks)]=data
dfbooks.to_csv(path+"books.csv",index=False)
print("A New Books added Successfully....")
#*****************************
def del_book():
dfbooks=pd.read_csv(path+"books.csv")
ans='y'
bid=0
while ans=='y' or ans=='Y':
bid=int(input("Enter Book id :"))
if bid in dfbooks['Book_id'].values:
21
response=input("Do you really want to remove
this book from Library(Y/N)?")
if response=='y' or response=='Y':
dfbooks.drop(dfbooks[dfbooks['Book_id']=
=bid].index,inplace=True)
print("Book id -",bid,"has been deleted
successfully...")
else:
print("Book is not found...")
dfbooks.to_csv(path+"books.csv",index=False)
ans=input("Do you want to delete more books?")
print(dfbooks)
def edit_book():
dfbooks=pd.read_csv(path+"books.csv")
print(dfbooks)
ans='y' bid=0
while ans=='y' or ans=='Y':
bid=int(input("Enter Book id :"))
if bid in dfbooks['Book_id'].values:
nm=input("Enter the column name to change: ")
val1=eval(input("Enter it's value: if string in
quotes(''): "))
dfbooks.loc[(dfbooks['Book_id'] == bid),nm]=val1
print("Book id -",bid,"has been updated
successfully...")
print(dfbooks.loc[dfbooks['Book_id']==bid])
22
else:
print("Book is not found...")
dfbooks.to_csv(path+"books.csv",index=False)
ans=input("Do you want to edit more books?
Y/N")
print(dfbooks)
#************************************
def add_member():
dfmembers=pd.read_csv(path+"members.csv")
ans='y'
mid=0
while ans=='y' or ans=='Y':
df=dfmembers.sort_values(by='Member_id')
df=df.tail(1)
mid=df.iloc[0,0]+1
print("New Member id : ",mid)
mem_nam=input("Enter Member Name :")
age=int(input("Enter Age :"))
phno=int(input("Enter Contact :"))
addr=input("Enter Address :")
mship=input("Enter Membership Status (Y/N) :")
iss_st='N'
data=[mid,mem_nam,age,phno,addr,mship,iss_st]
dfhmembers.loc[len(dfmembers)]=data
dfmembers.to_csv(path+"members.csv",index=False)
23
print("A New Member added Successfully....")
ans=input("Do you want to add more Members?")
print(dfmembers)
def del_member():
dfmembers=pd.read_csv(path+"members.csv")
ans='y'
mid=0
while ans=='y' or ans=='Y':
mid=int(input("Enter Member id :"))
if mid in
dfmembers['Member_id'].values:
print(dfmembers.loc[dfmembers.Member_id==mid,
['Member_name','Age']])
ans=input("Do you want to really delete
it(Y/N)")
if ans=='y' or ans=='Y':
dfmembers.drop(dfmembers[dfmembers['Member_id']
==mid].index,inplace= True)
print(dfmembers)
24
#*************************************
def edit_member():
dfmembers=pd.read_csv(path+"members.csv")
print(dfmembers)
ans='y'
mid=0
while ans=='y' or ans=='Y':
else:
dfmembers.to_csv(path+"members.csv",index=False)
ans=input("Do you want to edit more Members?")
print(dfmembers)
25
#***********************************
def issue_book():
dfbooks=pd.read_csv(path+"books.csv")
dfmembers=pd.read_csv(path+"members.csv")
dftrans=pd.read_csv(path+"transaction.csv")
ans='y'
while ans=='y' or ans=='Y':
mid=int(input("Enter Member id: "))
bid=int(input("Enter Book id to be issued:"))
if mid in dfmembers['Member_id'].values:
print(dfmembers.loc[dfmembers.Member_id==mi
d,['Member_name','Age']])
mship=dfmembers.loc[dfmembers['Member_id'] ==
mid,'Membership'].values[0]
istatus=dfmembers.loc[dfmembers['Member_id']
== mid, 'Issu_status'].values[0]
if (mship=='y' or mship=='Y') and
(istatus=='n' or istatus=='N'):
if bid in dfbooks['Book_id'].values:
print(dfbooks.loc[dfbooks.Book_id==bid,
['Bname','Copies']])
cpy=dfbooks.loc[dfbooks['Book_id'] == bid,
'Copies'].values[0]
if cpy>0:
26
dt_iss=input("Please Enter date of
Issue(dd/mm/yyyy): ")
data=[mid,bid,dt_iss,np.NaN]
dftrans.loc[len(dftrans)]=data
dfmembers.loc[dfmembers.Member_id
== mid,'Issu_status']='Y'
dfbooks.loc[dfbooks.Book_id == bid,'Copies']-=1
print("Book Issued Successfully...")
else:
print("Book is not found...")
else:
print("Sorry ! No. of copy is insufficent in
the Library..")
else:
print("Sorry! Membership Expired!! or 1-
Book Already issued. First return it..")
else:
print(dftrans)
#**************************************
def return_book():
27
dfbooks=pd.read_csv(path+"books.csv")
dfmembers=pd.read_csv(path+"members.csv")
dftrans=pd.read_csv(path+"transaction.csv")
ans='y'
while ans=='y' or ans=='Y':
mid=int(input("Enter Member id: "))
if mid idftrans['Member_id'].values:
dt_is=input("Date of Issue: ")
dt_rtn=input("Enter Date of Return: ")
bid=dftrans.loc[(dftrans['Member_id'] ==
mid)&(dftrans['dt_issue'] == dt_is ),
'Book_id'].values[0]
cond=(dfmembers.Member_id==mid) &
(dfmembers.Issu_status=='Y')
if cond.any():
dftrans.loc[(dftrans['Member_id'] == mid)
& (dftrans['dt_issue']==dt_is ),
'dt_return']=dt_rtn
dfmembers.loc[dfmembers.Member_id == mid,
'Issu_status']='N'
dfbooks.loc[dfbooks.Book_id == bid,
'Copies']+=1
# Calculating Fine
yyr=int(dt_rtn[6:])
mmr=int(dt_rtn[3:5])
ddr=int(dt_rtn[:2])
28
yyi=int(dt_is[6:])
mmi=int(dt_is[3:5])
ddi=int(dt_is[:2])
d0 = date(yyi, mmi, ddi)
d1 = date(yyr, mmr, ddr)
delta = d1 - d0
n=delta.days
if n>7:
fine=(n-
7)*10.00
else:
fine=0.00
print("Please Pay Fine Rs.",fine)
print("Book Returned Successfully...")
else:
print("The book is already returned..
Action denied")
else:
print("Member is not found...")
dftrans.to_csv(path+"transaction.csv",
index=False)
dfbooks.to_csv(path+"books.csv",index=False)
dfmembers.to_csv(path+"members.csv",
index=False)
ans=input("Do you want to Return more books?")
print(dftrans)
29
#***********************************
def analytics():
dfbooks=pd.read_csv(path+"books.
csv")
dfmembers=pd.read_csv(path+"memb
ers.csv")
dftrans=pd.read_csv(path+"transa
ction.csv")
while True:
print(" A N A L Y S I S M E N U")
print(" ***************************")
print()
print(" 1- All Books")
print(" 2- All Members")
print(" 3- Search Books (Code wise)")
print(" 4- Search Books (Name wise)")
print(" 5- Search Member ( Code wise)")
print(" 6- Search Member (Name wise)")
30
elif ch==2:
print(dfmembers)
elif ch==3:
bcode=int(input("Please Enter Book ID: "))
print(dfbooks.loc[dfbooks.Book_id==bcode])
elif ch==4:
bnm=input("Please Enter Book Name: ")
length=len(dfbooks) for i in range(length):
if bnm in dfbooks.Bname[i]:
print(dfbooks.Book_id[i],"--->",
dfbooks.Bname[i])
elif ch==5:
mid=int(input("Please Enter Member ID: "))
print(dfmembers.loc[dfmembers.Member_id==mid])
elif ch==6:
m_nm=input("Please Enter Member Namee: ")
length=len(dfmembers)
for i in range(length):
if m_nm in dfmembers.Member_name[i]:
print(dfmembers.Member_id[i],"->",
dfmembers.Member_name[i],"-->"
,dfmembers.Contact[i])
elif ch==7:
dt_iss=input("Please Enter Date of Issue: ")
31
print(dftrans.loc[dftrans.dt_issue==dt_iss])
else:
print("Going back to Main Menu")
break
#************************************
def visualization():
dfbooks=pd.read_csv(path+"books.csv")
dfmembers=pd.read_csv(path+"members.csv")
dftrans=pd.read_csv(path+"transaction.csv")
while True:
print(" V I S U A L I Z A T I O N M E N U")
print(“************************************")
print()
print(" 1- No. of Copies Balanced in the Library")
print(" 2- Members Age ( Specific Group)")
print(" 3- The Books Popularity")
print(" 4- Back to Main Menu")
ch=int(input("Enter your choice [1-4] :"))
if ch==1:
typ=input("Graph Type [Line-L,Bar-B]:")
if typ=='L':
x1=dfbooks.Bname y1=dfbooks.Copies
n=np.arange(len(dfbooks)) plt.plot(n,
y1,color='m',
linestyle='-.',linewidth=2,marker='o'
) plt.xticks(n,x1,rotation=25)
32
elif typ=='B':
dfbooks.plot('Bname','Copies',
kind='bar', color='r',rot=20)
plt.title("Plot: Book Name vs
Copies",fontsize=16,color='r')
plt.xlabel("Book Name--
>",fontsize=12,color='m')
plt.ylabel("No.of Copies--
>",fontsize=12,color='m') plt.grid()
plt.show()
elif ch==2:
elif typ=='B':
dfmembers.plot('Member_name','Age',
kind='bar',
color='m',rot=20)
33
plt.title("Plot: Member Name vs
Age",fontsize=16,color='m')
plt.xlabel("Member Name--
>",fontsize=12,color='b')
plt.ylabel("Age-->",fontsize=12,color='b')
plt.grid()
plt.show()
elif ch==3:
bid=list(dftrans.Book_id)
frequency = {}
for item in bid:
if item in frequency:
frequency[item] += 1
else:
frequency[item] = 1
df1=pd.DataFrame({'Book_id':list(frequency.
keys()),'Rank':list(frequency.val
ues())})
df2=pd.merge(df1,dfbooks,on='Book_id')
print(df2)
x=df2.Bname
y=df2.Rank
34
plt.bar(x,y,color='g',width=0.60)
plt.title("Plot: Book no vs
Popularity",fontsize=16,color='g')
plt.xlabel("Book ID--
>",fontsize=12,color='b')
plt.ylabel("Reading Frequency--
>",fontsize=12,color='b')
plt.grid()
plt.show()
elif ch==4:
35
INFORMATICS PRACTICES - CEHSLMS 2024-2025
OUTPUT:
36
INFORMATICS PRACTICES - CEHSLMS 2024-2025
37
INFORMATICS PRACTICES - CEHSLMS 2024-2025
38
INFORMATICS PRACTICES - CEHSLMS 2024-2025
39
INFORMATICS PRACTICES - CEHSLMS 2024-2025
40
INFORMATICS PRACTICES - CEHSLMS 2024-2025
41
INFORMATICS PRACTICES - CEHSLMS 2024-2025
42
INFORMATICS PRACTICES - CEHSLMS 2024-2025
43
INFORMATICS PRACTICES - CEHSLMS 2024-2025
44
INFORMATICS PRACTICES - CEHSLMS 2024-2025
45
INFORMATICS PRACTICES - CEHSLMS 2024-2025
46
INFORMATICS PRACTICES - CEHSLMS 2024-2025
47
INFORMATICS PRACTICES - CEHSLMS 2024-2025
48
INFORMATICS PRACTICES - CEHSLMS 2024-2025
49
INFORMATICS PRACTICES - CEHSLMS 2024-2025
50
INFORMATICS PRACTICES - CEHSLMS 2024-2025
51