Train Reservation
Train Reservation
def menu():
print("***************************************************
*****************************")
print(" AIRWAYS RESERVATION SYSTEM Project")
print("***************************************************
*****************************")
print("0. Know about the Project")
print("1. Display Flight Details")
print("2. Adding New Flight Details")
print("3. Schedule of ALL Flight")
print("4. Total Number of Flight")
print("5. Sorting Train by Flight no. Number")
print("6. Flight Fare")
print("7. Flight Enquiry")
print("8. Book Ticket")
print("9. Cancel Ticket")
print("10. Delay in Arrival")
print("11. Display Passengers Details")
print("12. Adding new passengers details in file")
print("13. Ticket Reservation")
print("14. Show Status of the Ticket")
print("15. Top and Bottom Records from passenger")
print("16. Data Visualisation Menu")
print("17. Exit")
print("***************************************************
*****************************")
def admin_password():
password=input("Enter your password:")
if password=='Class12IP':
print('Access granted')
else:
print('Access not granted Enter correct password')
return
def main_menu():
print("WELCOME TO FLIGHT RESERVATION SYSTEM")
print("1. Admin panel")
print("2. EXIT")
ch=int(input("Enter your choice:"))
while True:
if ch==1:
admin_password()
break
elif ch==2:
print("THANK YOU FOR USING RESERVATION SYSTEM")
break
main_menu()
def about():
print("The Project is developed on AIRWAYS RESERVATION
SYSYTEM. It contains 20 options in the project 3 CSV Files are used...
Train, Passenger and Schedule")
def read_train():
print("Reading Details of File Flight")
print()
train=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",skiprows=1)
train.columns=['Fnum','Fname','Source','Destination','Distance','AC1',
'Slp','Gen','AC1_Fare','Slp_Fare','Gen_Fare','Avl_Days']
print(train)
def new_train():
print('Adding New Flight in File Train')
df=pd.read_csv("C:\\Users\\hp\\Documents\\
train1.csv",index_col=0)
print(df)
a=int(input("Enter Flight Number:"))
b=input("Enter Flight Name:")
c=input("Enter Source:")
d=input("Enter Destination:")
e=int(input("Enter AC1 Seats:"))
f=int(input("Enter Sleeper Seats:"))
g=int(input("Enter General Seats:"))
h=int(input("Enter AC1 Fare:"))
i=int(input("Enter Sleeper Fare:"))
j=int(input("Enter General Fare:"))
k=input("Enter Arival Days:")
df.loc[a]=[b,c,d,e,f,g,h,i,j,k]
print(df)
def totaltrains():
print("Find Total Trains")
print()
df=pd.read_csv("C:\\Users\\hp\\Documents\\train.csv")
print(df)
def sort_trainno():
print("Sorting Train no. of Trains in Descending Order")
print()
df=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",skiprows=1,names=["Tnum","Tname","Source","Destinatio
n","AC","Sleeper"])
print(df)
df=df.sort_values('Tnum',ascending=False)
print(df)
def fare():
print("Sorting Train no. of Trains in Ascending Order and Show
Fares")
print()
a=int(input("Enter Train Number:"))
b=input("Enter Train Name:")
df=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",usecols=['Tname','AC1_Fare','Sl_Fare','Gen_Fare'])
print(df[df['Tname']==b])
def enquiry():
print("Find out Arrival Time of a Train")
df=pd.read_csv("C:\\Users\\hp\\Documents\\schedule.csv")
print(df)
def canceltrain():
print("Cancelling the Train")
df=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",index_col=0)
print(df)
tnum=int(input("Enter Train Number:"))
df.drop(tnum,axis=0,inplace=True)
print("Record of Train Temporarily Deleted")
print(df)
def booked_tickets():
tno=int(input("Enter train number:"))
tname=(input("Enter yout Train Name:"))
tckno=int(input("Enter Number of Seats you want to Book:"))
print("1. AC Ticket")
print("2. Sleeper Ticket")
print("3. General Ticket")
typ=int(input("Enter your choice of class:"))
if typ==1:
ac1=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",usecols=['Tname','AC1_Fare'])
print(ac1)
a=ac1[ac1['Tname']==tname]
p=a.AC1_Fare
print(p)
elif typ==2:
slp=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",usecols=['Tname','Sl_Fare'])
print(slp)
a=slp[slp['Tname']==tname]
p=a.slp_Fare
print(p)
elif typ==3:
gen=pd.read_csv("C:\\Users\\hp\\Documents\\
train.csv",usecols=['Tname','Gen_Fare'])
print(gen)
a=gen[gen['Tname']==tname]
p=a.gen_Fare
print(p)
else:
print("Ends")
L=[]
for i in range(tckno):
cus1=input("Enter customer name:")
age=int(input("Enter your Age:"))
print("------For Genger M=Male, F=Female, O=Others------")
gender=input("Enter your Gender:")
j=random.randint(1000,9999)
print("Your PNR Number is :",j)
cnf="CONFIRMED"
print(cnf)
l1=[j,cus1,tno,tname,age,gender,cnf]
L.append(l1)
print(L)
dfbt=pd.DataFrame(L,columns=['PNR_NO','CustName','Tnum','Tnam
e','Age','Gender','Status'])
print(dfbt)
dfbt.to_csv(r"C:\Users\hp\AppData\Local\Programs\Python\
Python311\bookticket.csv",mode='a',index=False,header=False)
def cancel_ticket():
pnrno=int(input("Enter PNR Number:"))
df=pd.read_csv(r"C:\Users\hp\AppData\Local\Programs\Python\
Python311\bookticket.csv")
print(df)
df.loc[df.PNR_NO==pnrno,'Status']='Cancelled'
print(df)
cond1=df[(df['PNR_NO']==pnrno)]
dfcancel=pd.DataFrame(cond1)
print(dfcancel)
print("Ticket Cancelled ")
print("Details of the cancelled ticket")
dfcancel.to_csv(r"C:\Users\hp\AppData\Local\Programs\Python\
Python311\cancelticket.csv",mode='a',index=False,header=False)
print(dfcancel)
def changetiming():
print("Delay in Arrival")
df=pd.read_csv("C:\\Users\\hp\\Documents\\schedule.csv")
print()
print(df)
df.loc[df['TNUM']==5353,['ARRIVAL']]=df['ARRIVAL']+ .20
print()
print(df)
def read_passenger():
print("Reading File Passengers")
print()
df=pd.read_csv("C:\\Users\\hp\\Documents\\
passenger.csv",index_col=0)
print(df)
def new_passenger():
print("Adding New Passenger in File Passengers")
df=pd.read_csv("C:\\Users\\hp\\Documents\\
passenger.csv",index_col=0)
print(df)
n=(input("Enter Passenger Name:"))
a=int(input("Enter Age:"))
tn=int(input("Enter Train number:"))
noofp=int(input("Enter Number of passengers"))
c=input("Enter Class:")
d=input("Enter Destination:")
amt=int(input("Enter amount:"))
s=input("Enter Status:")
pnr=input("Enter PNR No.:")
df.loc[n]=[a,tn,noofp,c,d,amt,s,pnr]
print(df)
def status():
print("Show Status of Ticket")
df=pd.read_csv("C:\\Users\\hp\\Documents\\
passenger.csv",usecols=['PNAME','STATUS'])
print(df)
def main_menu():
print("WELCOME TO TRAIN RESERVATION SYSTEM")
print("1. Admin panel")
print("2. EXIT")
ch=int(input("Enter your choice:"))
while True:
if ch==1:
admin_password()
elif ch==2:
print("THANK YOU FOR USING RESERVATION SYSTEM")
break
def datavisulaisation():
print("Data Visulisation menu")
print("1.Line plot")
print("2.Line1 plot")
print("3.Bar plot")
print("4.Barh plot")
print("5.Histogram")
print("6.Exit")
ch=int(input("Enter your choice:"))
if ch==1:
print("Line Plot")
df=pd.read_csv("C:\\Users\\hp\\Documents\\train.csv")
print(df)
x=df['Tname']
y=df['AC1']
plt.title('AC Fare for Trains', fontsize=14,color='r')
plt.xlabel("Trains", fontsize=14,color='r')
plt.ylabel("AC Fare", fontsize=14,color='r')
plt.plot(x,y,marker='X',ls='dashed',linewidth=4,color='g')
plt.show()
elif ch==2:
print("Line Plot")
df=pd.read_csv("C:\\Users\\hp\\Documents\\train.csv")
print(df)
plt.plot(df['Tname'],df['Slp'],marker='o',label='Fare')
plt.title('Sleeper Fare for Trains', fontsize=14,color='r')
plt.xlabel("Trains", fontsize=14,color='r')
plt.ylabel("Sleeper Fare", fontsize=14,color='r')
plt.xticks(rotation=30)
plt.legend()
plt.grid(True)
plt.show()
elif ch==3:
df=pd.read_csv("C:\\Users\\hp\\Documents\\train.csv")
print(df)
x=df['Tname']
y=df['Slp']
plt.title("Sleeper Fare for Trains", fontsize=14,color='r')
plt.xlabel("Trains", fontsize=14,color='r')
plt.ylabel("Sleeper Fare", fontsize=14,color='r')
plt.xticks(rotation=30)
plt.bar(x,y,color=['red','green'])
plt.show()
elif ch==4:
print("Horizontal Bar Plot")
df=pd.read_csv("C:\\Users\\hp\\Documents\\train.csv")
print(df)
x=df['Tname']
y=df['AC1']
plt.title("AC Fare for Trains", fontsize=14,color='b')
plt.xlabel("Trains", fontsize=14,color='b')
plt.ylabel("AC Fare", fontsize=14,color='b')
plt.barh(x,y,color='blue',edgecolor='pink')
plt.show()
elif ch==5:
print("Histogram")
df=pd.read_csv("C:\\Users\\hp\\Documents\\train.csv")
print(df)
x=df['Tname']
y=df['AC1']
plt.title("AC Fare for Trains", fontsize=14,color='b')
plt.xlabel("Trains", fontsize=14,color='b')
plt.ylabel("AC Fare", fontsize=14,color='b')
plt.hist(x,y,color='blue',edgecolor='pink')
plt.show()
opt=""
while True:
menu()
opt=int(input("enter your choice:"))
if opt==0:
about()
if opt==1:
read_train()
elif opt==2:
new_train()
elif opt==3:
schedule()
elif opt==4:
totaltrains()
elif opt==5:
sort_trainno()
elif opt==6:
fare()
elif opt==7:
enquiry()
elif opt==8:
booked_tickets()
elif opt==9:
cancel_ticket()
elif opt==10:
changetiming()
elif opt==11:
read_passenger()
elif opt==12:
new_passenger()
elif opt==13:
ticketreservation()
elif opt==14:
status()
elif opt==15:
top_bottom()
elif opt==15:
datavisulaisation()
elif opt==16:
break
else:
print("Inavid Option")
print("\a")