0% found this document useful (0 votes)
73 views18 pages

Railway Reservation

The document connects to a MySQL database and creates tables to store passenger and train details. It then inserts sample data into the tables through multiple SQL queries and commits the changes to the database. It prints messages welcoming the user to the railway reservation portal.

Uploaded by

Kingston Op
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views18 pages

Railway Reservation

The document connects to a MySQL database and creates tables to store passenger and train details. It then inserts sample data into the tables through multiple SQL queries and commits the changes to the database. It prints messages welcoming the user to the railway reservation portal.

Uploaded by

Kingston Op
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

while True:

a1=int(input("Enter the Admin Password Of Railway Reservation.: "))


if a1==123:
print("Logging in...")

try:
import mysql.connector as msc
import datetime
import random as rd
import pandas as pd
import sys
import matplotlib.pyplot as plt

mydb=msc.connect(host="localhost",
user="root",
password="mysql",
)
crs=mydb.cursor()
qry01="CREATE DATABASE IF NOT EXISTS ABC"
crs.execute(qry01)
qry02="USE ABC"
crs.execute(qry02)

qry03="CREATE TABLE IF NOT EXISTS Passenger_Details (Pnr_Number


int(10) primary key,Psn_Name varchar(25),Psn_Ph_no VARCHAR(10),Psn_age
int(10),Psn_gender char(1),Train_from varchar(20),Train_to
varchar(20),Scheduled_Date DATE,Email_ID varchar(30),Fare int(12))"
crs.execute(qry03)

qry21="INSERT INTO Passenger_Details VALUES


(1021959091,'MOHAN','9658256315',25,'M','AJMER','DELHI','2021-03-
09','[email protected]',720) ON DUPLICATE KEY UPDATE
Pnr_Number=1021959091"
qry22="INSERT INTO Passenger_Details VALUES
(1021959311,'ROHIT',9652256315,21,'M','AJMER','AJMER','2021-03-
29','[email protected]',452) ON DUPLICATE KEY UPDATE
Pnr_Number=1021959311"
qry23="INSERT INTO Passenger_Details VALUES
(1021959332,'CARL',6235256363,20,'F','AGRA','MATHURA','2021-05-
19','[email protected]', 1123) ON DUPLICATE KEY UPDATE
Pnr_Number=1021959332"
qry24="INSERT INTO Passenger_Details VALUES
(1021959301,'MARK',6582563151,26,'M','SHIMLA','BANGLORE','2021-05-
05','[email protected]',558) ON DUPLICATE KEY UPDATE
Pnr_Number=1021959301"
qry25="INSERT INTO Passenger_Details VALUES
(1021951231,'VON',7584635269,24,'M','CHENNAI','KANYKUMARI','2021-03-
25','[email protected]',320) ON DUPLICATE KEY UPDATE
Pnr_Number=1021951231"
qry26="INSERT INTO Passenger_Details VALUES
(1021959441,'RONIT',8529639636,21,'M','HALDIA','DELHI','2021-05-
09','[email protected]',750) ON DUPLICATE KEY UPDATE
Pnr_Number=1021959441"
qry27="INSERT INTO Passenger_Details VALUES
(1021952331,'SUNIT',6589262529,22,'M','LUCKNOW','VARANASI','2021-06-
23','[email protected]',950) ON DUPLICATE KEY UPDATE
Pnr_Number=1021952331"
crs.execute(qry21)
crs.execute(qry22)
crs.execute(qry23)
crs.execute(qry24)
crs.execute(qry25)
crs.execute(qry26)
crs.execute(qry27)

qry04="USE Yash_kumar"
crs.execute(qry04)
qryo2="CREATE TABLE IF NOT EXISTS avail_Train(Srno int(10),Train_No
int(15) primary key,Train_Name varchar(250),Train_from varchar(200),Train_to
varchar(300))"
crs.execute(qryo2)

qry1="INSERT INTO avail_Train VALUES (1001,12847,'Howrah - Digha


SUPER AC Express','Howrah','Digha') ON DUPLICATE KEY UPDATE Train_No
=12847"
qry2="INSERT INTO avail_Train VALUES (1002,12009,'Mumbai Central -
Ahmedabad Shatabdi Express','Mumbai','Ahmedabad') ON DUPLICATE KEY
UPDATE Train_No =12009"
qry3="INSERT INTO avail_Train VALUES (1003,120010,'New Delhi -
Lucknow Jn Swarn Shatabdi Express','New Delhi' ,'Lucknow ') ON DUPLICATE KEY
UPDATE Train_No=120010"
qry4="INSERT INTO avail_Train VALUES (1004,1280050,'New Delhi -
Amritsar Shatabdi Express','New Delhi','Amritsa') ON DUPLICATE KEY UPDATE
Train_No=1280050"
qry5="INSERT INTO avail_Train VALUES (1005,1282371,'New Delhi -
Daurai (Ajmer) Shatabdi Express','New Delhi','Ajmer') ON DUPLICATE KEY UPDATE
Train_No=1282371"
qry6="INSERT INTO avail_Train VALUES (1006,1204745,'Howrah -
Ranchi Shatabdi Express','Digha','Ranchi') ON DUPLICATE KEY UPDATE
Train_No=1204745"
qry7="INSERT INTO avail_Train VALUES (1007,1284769,'KSR Bengaluru -
MGR Chennai Central Shatabdi Expres','Bengaluru','Chennai') ON DUPLICATE KEY
UPDATE Train_No=1284769"
qry8="INSERT INTO avail_Train VALUES (1008,1201789,'New Delhi -
Kanpur Central Shatabdi Express','New Delhi','Kanpur') ON DUPLICATE KEY
UPDATE Train_No=1201789"
qry9="INSERT INTO avail_Train VALUES (1009,100052,'MGR Chennai
Central - Coimbatore Shatabdi Express','Chennai','Coimbatore') ON DUPLICATE
KEY UPDATE Train_No=100052"
qry10="INSERT INTO avail_Train VALUES (1010,1286565,'New Delhi -
Chandigarh Shatabdi Express','New Delhi','Chandigarh') ON DUPLICATE KEY
UPDATE Train_No=1286565"
qry11="INSERT INTO avail_Train VALUES (1011,101285,'Pune -
Secunderabad Shatabdi Express','Pune ','Secunderabad') ON DUPLICATE KEY
UPDATE Train_No=101285"
qry12="INSERT INTO avail_Train VALUES (1012,100212,'New Delhi -
Firozpur Cantt Shatabdi Express','New Delhi','Firozpur') ON DUPLICATE KEY
UPDATE Train_No=100212"
qry13="INSERT INTO avail_Train VALUES (1013,130201,'New Delhi -
Jammu Tawi Rajdhani Express','New Delhi','Jammu ') ON DUPLICATE KEY UPDATE
Train_No=130201"
qry14="INSERT INTO avail_Train VALUES (1014,111000,'KSR Bengaluru -
Hazrat Nizamuddin Rajdhani Express','Bengaluru','Hazrat Nizamuddin') ON
DUPLICATE KEY UPDATE Train_No=111000"
qry15="INSERT INTO avail_Train VALUES (1015,100005,'M.G.R Chennai
Central - Hazrat Nizamuddin Rajdhani E','Chennai','Hazrat Nizamuddin') ON
DUPLICATE KEY UPDATE Train_No=100005"
qry16="INSERT INTO avail_Train VALUES (1016,104040,'New Delhi -
Ranchi Rajdhani Express','New Delhi','Ranchi') ON DUPLICATE KEY UPDATE
Train_No=104040"
qry17="INSERT INTO avail_Train VALUES (1017,121546,'MGR Chennai
Central - Thiruvananthapuram Central','Chennai','Thiruvananthapuram') ON
DUPLICATE KEY UPDATE Train_No=121546"
qry18="INSERT INTO avail_Train VALUES( 1018,141524,'Mumbai LTT -
Haridwar AC Express (PT)','Mumbai','Haridwar') ON DUPLICATE KEY UPDATE
Train_No=141524"
qry19="INSERT INTO avail_Train VALUES (1019,152634,'Bhuj - Mumbai
Bandra (T.) AC SuperFast Express','Bhuj ','Mumbai') ON DUPLICATE KEY UPDATE
Train_No=152634"
qry20="INSERT INTO avail_Train VALUES (1020,136524,'Lucknow - New
Delhi AC Superfast Express','Lucknow','New Delhi') ON DUPLICATE KEY UPDATE
Train_No=136524"
qry31="INSERT INTO avail_Train VALUES (1021,1201546,'Nagpur -
Amritsar AC SF Express','Nagpur','Amritsar') ON DUPLICATE KEY UPDATE
Train_No=1201546"
qry32="INSERT INTO avail_Train VALUES (1022,126352,'Arunachal AC SF
Express','New Delhi','Itanagar') ON DUPLICATE KEY UPDATE Train_No=126352"
qry33="INSERT INTO avail_Train VALUES (1023,104152,'Darshan
Express','Howrah','Digha') ON DUPLICATE KEY UPDATE Train_No=104152"
qry34="INSERT INTO avail_Train VALUES (1024,100525,'Visakhapatnam -
Secunderabad AC SF Express','Visakhapatnam','Secunderabad') ON DUPLICATE
KEY UPDATE Train_No=100525"
qry35="INSERT INTO avail_Train VALUES (1025,100121,'Patna - Ranchi
AC Express','Patna','Ranchi') ON DUPLICATE KEY UPDATE Train_No=100121"
qry36="INSERT INTO avail_Train VALUES (1026,114754,'Barmer -
Yesvantpur AC Express','Barmer','Yesvantpur') ON DUPLICATE KEY UPDATE
Train_No=114754"
qry37="INSERT INTO avail_Train VALUES (1027,128474,'Jammu Tawi -
Ahmedabad Express','Jammu Tawi','Ahmedabad') ON DUPLICATE KEY UPDATE
Train_No=128474"
qry38="INSERT INTO avail_Train VALUES (1028,128654,'Jammu Tawi -
Guwahati Amarnath Express (PT)','Jammu Tawi','Guwahati') ON DUPLICATE KEY
UPDATE Train_No=128654"
qry39="INSERT INTO avail_Train VALUES (1029,1280417,'Bandra
Terminus - Gorakhpur Avadh Express (PT)','Mumbai','Gorakhpur') ON DUPLICATE
KEY UPDATE Train_No=1280417"
qry40="INSERT INTO avail_Train VALUES (1030,124557,'Dibrugarh -
Amritsar Weekly Express (PT)','Dibrugarh','Amritsar') ON DUPLICATE KEY UPDATE
Train_No=124557"
crs.execute(qry1)
crs.execute(qry2)
crs.execute(qry3)
crs.execute(qry4)
crs.execute(qry5)
crs.execute(qry6)
crs.execute(qry7)
crs.execute(qry8)
crs.execute(qry9)
crs.execute(qry10)
crs.execute(qry11)
crs.execute(qry12)
crs.execute(qry13)
crs.execute(qry14)
crs.execute(qry15)
crs.execute(qry16)
crs.execute(qry17)
crs.execute(qry18)
crs.execute(qry19)
crs.execute(qry20)
crs.execute(qry31)
crs.execute(qry32)
crs.execute(qry33)
crs.execute(qry34)
crs.execute(qry35)
crs.execute(qry36)
crs.execute(qry37)
crs.execute(qry38)
crs.execute(qry39)
crs.execute(qry40)
mydb.commit()

crs.close()

print("""
_____ ___ _____ ____ ____ ____ _____
____ _____
| |\ | | \ | | | |\ | | || | | | | | | |\ /|
|
| | \ | | | | |____| | \ | |____| |____| | | | | |
____| \___/ |_____
| | \|| | | | || \| |\ | | | | | /\ | | | |
|
__|__ | \| |___/ __|__ | | | \| | \ | | __|__ |____ |/ \|
| | | |_____|
__________________________________________
____________________________________________________________

""")

d=datetime.date.today()
t=datetime.datetime.now()
print(" ")
print(" ")
print(" DATE:-",d.strftime("%A, %d %B %Y"))
print(" ")
print(" TIME:-",t.strftime("%H:%M:%S"))
print("")
print('')
print(" ")
print("
===================================================================
==============================================================")
print(" WELCOME TO RAILWAY
RESERVATION PORTAL")
print("
===================================================================
==============================================================")
print(" ")

while True:

#"LOAD DATA LOCAL INFILE 'C:/Users/Jyoti/Desktop/Yash/Train.csv' into table


avail_train fields terminated by ',' lines terminated by '\r\n' ;"
print("""
***************************** DASHBOARD
********************************
+--------------------------------+
| 1.Passenger |
+--------------------------------+
+--------------------------------+
| 2.EXIT |
+--------------------------------+
""")
break
e=input(" || **SELECT** || :-")

def railsmenu():
print("""

+====================================+
| **** MAIN MENU **** |
+====================================+
| |
| 1. Ticket Booking |
| 2. Train_btw_Stations |
| 3. Train List |
| 4. Your Ticket |
| 5. Ticket Cancellation |
| 6. Fare |
| 7. Analytics |
| 8. Exit |
| |
+====================================+
""")
#break
x=int(input("""YOUR OPTION:-"""))

if x==1:
ticket_booking()

elif x==2:
print(" ")
print(btw_Stations())

elif x==3:
print(" ")
print("-----FOLLOWING TRAINS ARE AVAILABLE-----")
print(" ")
print(Available_ALL_Trains())

elif x==4:
print(" ")
print(self_booked_ticket())

elif x==5:
print(" ")
print(ticket_cancellation())

elif x==6:
print(" ")
print(fare_cal())

elif x==7:
print(" ")
print(Analytics())

elif x==8:
print(" ")
print("\n"
" \n"
"
##======================================================##\n"
" || THANK YOU ||\n"
"
##======================================================##\n"
"\n")
print('''
DEVELOPED BY
''')

else:
print(" ")
print("~!~!~!~WRONG CHOICE PLEASE ENTER A VALID
VALUE~!~!~!~")
return("")

def ticket_booking():
import mysql.connector
mydb=mysql.connector.connect(host='localhost',
user='root',
password="mysql",
database='Yash_kumar')
crs=mydb.cursor()
mydb.autocommit=True
Psn_Name=input('Enter Name.:')
Psn_Ph=input('Enter Phone No.:')
Psn_Ph_no=str(Psn_Ph)
Psn_age=int(input('Enter age.:'))
print()
print(' M=MALE','\t','F=FEMALE','\t','N=NOT TO MENTION')
while True:
Psn_gender=input('Enter Gender M/F:')
if Psn_gender==("M") or Psn_gender==("F"):
break
else:
print(" !~!~!~~ M\F only ~~!~!~!~")
Gender=Psn_gender.upper()
print()
print('Journey Details__')
Train_from=input(' From Station.:')
Train_to=input(' Destination.:')
Scheduled_Date=input('Enter Date of Journey (YYYY-MM-DD):')

Pnr_Number="10"+str(Psn_age)+str(rd.randint(100000,999999))
Email_ID=input("Enter the Email_ID :")
Fare=rd.randint(400,1200)
s1="INSERT INTO Passenger_Details VALUES(%s,%s,%s,%s,%s,%s,%s,
%s,%s,%s)"

data=(Pnr_Number,Psn_Name,Psn_Ph_no,Psn_age,Psn_gender,Train_from,Train
_to,Scheduled_Date,Email_ID,Fare)
crs.execute(s1,(data),)
print()
print(' ***TICKET BOOKED SUCCESSFULLY***')
print("\t","Your Pnr Number is: ", Pnr_Number)
return("")

def Available_ALL_Trains():
import mysql.connector as msc

mydb=msc.connect(host='localhost',user='root',passwd='mysql',database='yash_k
umar')
crs=mydb.cursor()
mydb.autocommit=True
crs.execute("use yash_kumar")
crs.execute("LOAD DATA LOCAL INFILE
'C:/Users/Jyoti/Desktop/Yash/Train.csv' into table avail_train fields terminated by
',' lines terminated by '\r\n' ;")
qry="Select * from avail_train "
crs.execute(qry)
data1 = crs.fetchall()

df = pd.DataFrame(data1,
columns=["Srno","Train_No","Train_Name","Train_from","Train_to","Fare",])
print(df)
mydb.commit()
crs.close()
return("")

def btw_Stations():
import mysql.connector as msc

mydb=msc.connect(host='localhost',user='root',passwd='mysql',database='yash_k
umar')
crs=mydb.cursor()
mydb.autocommit=True
crs.execute("use yash_kumar")

Sr_train=input("Enter the Source Station.:")


De_train=input("Enter the Destination Station.:")
qry='select * from avail_train WHERE TRAIN_NO = 12009'
crs.execute(qry,)
data=crs.fetchall()
a=[]
for i in data:
a.append(i)

if len(a)!=1:
print('~!~!~!~!~~NO DATA FOUND~~!~!~!~!~')

else:
print("")
print("")
print(a)
mydb.commit()
df = pd.DataFrame(data,
columns=["Srno","Train_No","Train_Name", "Train_from" , "Train_to" ])

#print(df)
mydb.commit()
crs.close()
return("")

def self_booked_ticket():
import mysql.connector as msc

mydb=msc.connect(host='localhost',user='root',passwd='mysql',database='yash_k
umar')
crs=mydb.cursor()
mydb.autocommit=True
Self_Pnr=int(input('Enter your Pnr_number No:'))
crs.execute('select * from passenger_details where
Pnr_Number=(%s)',(Self_Pnr,))
data=crs.fetchall()
a=[]
for i in data:
a.append(i)

if len(a)!=1:
print('~!~!~!~!~~NO DATA FOUND~~!~!~!~!~')

else:
print(a)
mydb.commit()
return("")

def ticket_cancellation():
import mysql.connector as msc

mydb=msc.connect(host='localhost',user='root',passwd='mysql',database='yash_k
umar')
crs=mydb.cursor()
mydb.autocommit=True
crs.execute("use yash_kumar")
Self_Pnr=int(input("Enter Your Pnr_Number.:"))
Self_Name=input("Enter Your Name.:")
Self_Phno=int(input("Enter You Phone no.:"))
#qry='DELETE FROM passenger_details WHERE Pnr_Number=(%s) or
Psn_Name=(%s) or Psn_Ph_no=(%s)'

s=input("ARE YOU SURE YOU WANT TO CANCEL THE TICKET


(YES/NO): ")
a=[]
for i in s:
a.append(i)

if len(s)==3:
crs.execute('DELETE FROM passenger_details WHERE
Pnr_Number=(%s) or Psn_Name=(%s) or Psn_Ph_no=(%s)',
(Self_Pnr,Self_Name,Self_Phno,))

else:
print(" Ticket NOT Cancelled")

print("")
print(" Your Ticket is Cancelled")
return("")

def Analytics():
print("""

+=====================================================+
| **** MAIN MENU **** |

+=====================================================+
| |
| 1. BAR PLOT :- Fare of Passengers |
| 2. LINE PLOT :- AC Fare Of Trains |
| 3. BAR PLOT :- Sleeper Fare Of Trains |
| 4. LINE PLOT :- Average Distance Covered By Train |
| |

+=====================================================+
""")
opt=int(input(""" YOUR OPTION:-"""))

if opt==1:
print(" ")
print(bar_plot())

elif opt==2:
print(" ")
print(line_plot())

elif opt==3:
print(" ")
print(barh_plot())

elif opt==4:
print(" ")
print(line1_plot())

else:
print(" ")
print("~!~!~!~WRONG CHOICE PLEASE ENTER A VALID
VALUE~!~!~!~")

def bar_plot():
plt.figure(figsize=(9,6))

plt.bar(x=["MOHAN","ROHIT","CARL","MARK","VON","RONIT","SUNIT"],

height=[720,452,1123,558,320,750,950],color='midnightblue')
plt.xticks(rotation=45)
plt.title("Fare of Passengers")
plt.savefig("Fare of Passengers.png")
plt.show()
return("")

def line_plot():
print("Line Plot")
x=["Goa Express","JammuTavi Superfast","Punjab Mail
Express","Dakshin Express","Delhi-Mumbai Shatabdi"]
y=[4500,8500,3600,7600,12000]
plt.title("AC Fare Of Trains",fontsize=14,color="g")
plt.xlabel("Trains",fontsize=14,color="g")
plt.ylabel("AC Fare",fontsize=14,color="g")
plt.xticks(rotation=12)

plt.plot(x,y, marker="X",ls="dashed",linewidth=4, color="m")


plt.savefig("AC Fare For Trains.png")
plt.show()
return("")

def barh_plot():
print("Horizontal Bar Plot")
x=["Goa Express","JammuTavi Superfast","Punjab Mail
Express","Dakshin Express","Delhi-Mumbai Shatabdi"]
y=[1500,4500,2600,7600,9000]
plt.title("Sleeper Fare Of Trains",fontsize=14,color="b")
plt.xlabel("Trains",fontsize=14,color="c")
plt.ylabel("Sleeper Fare",fontsize=14,color="c")
plt.barh(x,y, color="y", edgecolor="pink")
plt.savefig("Sleeper Fare Of Trains.png")
plt.show()
return("")

def line1_plot():
print("Line Plot")
x=["Goa Express","JammuTavi Superfast","Punjab Mail
Express","Dakshin Express","Delhi-Mumbai Shatabdi"]
y=[500,1200,650,750,1350]
plt.title("Average Distance Covered By
Train",fontsize=14,color="c")
plt.xlabel("Trains",fontsize=14,color="c")
plt.ylabel("(Distance in Kms)",fontsize=14,color="r")
plt.plot(x,y, marker="o", label="Avg Distance")
plt.xticks(rotation=17)
plt.legend()
plt.savefig("Avearage Distance By Trains.png")
plt.show()
return("")

if e=="1" :
print(railsmenu())
elif e=="2":
print(" ")
print("\n"
" \n"
"
##======================================================##\n"
" || THANK YOU ||\n"
"
##======================================================##\n"
"\n")
print('''

DEVELOPED BY ABC
''')

else:
print(" ")
print("~!~!~!~PLEASE ENTER 1 OR 2~!~!~!~")
mydb.close()
except():
pass
else:
print("Password is incorrect,\nPlease enter the correct password.")
a2=str(input("Enter any number to again apply for password or press any
alphabet to exit:"))
print()
if a2.isalpha():
print("Thanks for using our service.")
break

You might also like