Project Report: Assisi Convent School
Project Report: Assisi Convent School
PROJECT REPORT
On
RAILWAY RESERVATION
SYSTEM
ACADEMIC SESSION
2022-2023
SUBJECT
COMPUTER SCIENCE (083)
Prepared By :
1.AKSHAT TIWARI
2.KUSHAGRA DUBEY
3.ARYAN SINGH TOMAR
4.AMAN PRATAP
CERTIFICATE
This is to certify that AKSHAT TIWARI of
Class XII, has completed his project entitled
“RAILWAY RESERVATION SYSTEM” under my
supervision for the subject “COMPUTER
SCIENCE(083) ” for All India Secondary School
Examination 2022-2023.
He has taken proper care and shown utmost
sincerity in the completion of this project. I certify that
this project is up to my expectation and as per the
guidelines issued by CBSE.
ACKNOWLEDGEMENT
Firstly, I would like to express my special thanks of
gratitude to my principal REV. SR. ANJALI MARIA,
who gave me this opportunity to work on this project.
I would like to thank her for the completion of this
project.
AKSHAT TIWARI
TABLE OF CONTENTS
SN PARTICULARS PAGE TEACHER’S
NO. SIGNATURE
1 INTRODUCTION OF
THE PROJECT 1
2 REQUIREMENTS
2-3
3 PROGRAMMING
LANGUAGE & 4
CONCEPTS USED
4 PACKAGES,
MODULES AND 5-7
FUNCTIONS USED
5 DATABASE & TABLES
USED 8-11
6 SCOPE OF THE
PROJECT 12-13
7 PROJECT CODE
14-30
8 SCREENSHOTS OF
THE OUTPUT 31-34
INTRODUCTION TO THE
PROJECT
SOFTWARE REQUIREMENTS:
• A window based operating system with DOS
support
• The system must be connected with a LAN
connection
PROCESSOR REQUIREMENTS:
MEMORY REQUIREMENTS:
It regulates all
the activities
main() like ticket
booking,
checking
,cancelling and
User also show the
defined account details
functions of the user
This function is
ticket_boo for the booking
king() of the ticket for
train
This function is
delhi() for the fare of
the train delhi
express
This function is
sabarmati for the fare of
() the train
sabarmati
express
goa() This function is
for the fare of
the train goa
express
chennai() This function is
for the fare of
the train
chennai
express
After booking the train you can choose 2nd option that
is TICKET CHECKING , while booking of the train you
will have gotten a PNR Number so now while checking
just insert your generated PNR number and you will
get to know the no of tickets you have booked with
that PNR no. In this project we have only given a limit
of 2 tickets with one PNR number at a time
Our last option is account details ,here you get all the
details about the account you made at first .
You can log out your account with this project and
also can delete the existing account that you have
made
PROJECT CODE
TABLES CODE:-
import mysql.connector
db=mysql.connector.connect(host='localhost',user='root',pass
word='akshat@123')
c=db.cursor()
s="create database railway104"
c.execute(s)
s="use railway104"
c.execute(s)
s="create table railway(PNR_No varchar(10),pname
varchar(30), Age integer,Train_No varchar(10),train_name
varchar(30),gender varchar(10),Class varchar(10),source
varchar(20),Destination varchar(30),fare integer)"
c.execute(s)
s="create table user_accounts(fname varchar(100),lname
varchar(100),user_name varchar(100),password varchar(100)
,phno varchar(15),gender varchar(50),dob varchar(50),age
varchar(4))"
c.execute(s)
s="create table train_details(Train_Name varchar(30),
Train_No varchar(20),Source varchar(30), Destination
varchar(30), Ac1 varchar(20),Ac2 varchar(20), Ac3
varchar(20), Sleeper varchar(10))"
c.execute(s)
s="insert into train_details values('delhi
express','2365','delhi','jaipur',6000,'5000','4000','4000')"
c.execute(s)
s="insert into train_details values('goa
express','3425','agra','goa',10000,'9000','8000','7000')"
c.execute(s)
s="insert into train_details values('chennai
express','1267','delhi','chennai',12000,'10000','9000','7000')"
c.execute(s)
s="insert into train_details values('sabarmati
express','2365','agra','gujarat',9000,'8000','7000','5000')"
c.execute(s)
db.commit()
MAIN CODE:-
import random
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',p
asswd='akshat@123',database='railway104')
cursor=mycon.cursor()
mycon.autocommit=True
continue
elif ch1==2:
a=checking_1()
if a==True:
main()
else:
print('PASSWORD ALREADY EXISTS')
continue
elif ch1==3:
c=checking_2()
if c==True:
print('ACCOUNT DELETED')
continue
else:
print('YOUR PASSWAORD OR USER_NAME IS
INCORRECT')
continue
elif ch1==4:
print('THANK YOU')
break
else:
print('ERROR 404:PAGE NOT FOUND')
break
print('1.YES')
print('2.NO')
ch=int(input('DO YOU WANT TO CONTINUE OR NOT:'))
def main():
print('1.YES')
print('2.NO')
c=int(input("DO YOU WANT TO CONTINUE OR NOT:"))
while (c==1):
print(' 1.TICKET BOOKING',"\n", '2.TICKET
CHECKING',"\n",'3.TICKET CANCELLING',"\n",'4.ACCOUNT
DETAILS',"\n",'5.LOG OUT')
ch=int(input('enter ur choice:'))
if ch==1:
ticket_booking()
elif ch==2:
ticket_checking()
elif ch==3:
ticket_cancelling()
elif ch==4:
checking_3()
elif ch==5:
print('THANK YOU')
break
else:
print('WRONG INPUT')
else:
print('ERROR 404: ERROR PAGE NOT FOUND')
def ticket_booking():
mycon.autocommit=True
print("******AVAILABLE TRAINS******")
g="select*from train_details"
cursor.execute(g)
data=cursor.fetchall()
Data=list(data)
a=['TRAIN_NAME','TRAIN_NO','SOURCE','DESTINATION','AC1'
,'AC2','AC3','SLEEPER']
print(tabulate(data,headers=a,tablefmt="psql"))
print("2365.DELHI EXPRESS")
print("3425.GOA EXPRESS")
print("1267.CHENNAI EXPRESS")
print("2564.SABARMATI EXPRESS")
x=input("ENTER THE TRAIN NO. FOR MORE TICKET
OPTIONS:")
n=int(input("HOW MANY TICKETS YOU WANT\n(YOU CAN
BOOK ONLY 2 TICKETS):"))
if n<=2:
if x=='2365':
g=delhi()
h="JAIPUR"
c1="DELHI"
c2="DELHI EXPRESS"
elif x=='3425':
g=goa()
h="GOA"
c1="AGRA"
c2="GOA EXPRESS"
elif x=='1267':
g=chennai()
h="CHENNAI"
c1="DELHI"
c2="CHENNAI EXPRESS"
elif x=='2564':
g=sabarmati()
h="GUJARAT"
c1="AGRA"
c2="SABARMATI EXPRESS"
else:
print("INVALID OPTION")
pnrno=random.randint(1000,3000)
for i in range (n):
b=input("ENTER THE PERSON'S NAME:")
c=input("ENTER THE AGE:")
print(' M=MALE','\n','F=FEMALE','\n','N=NOT TO
MENTION')
v={'m':'MALE','f':'FEMALE','n':'NOT TO MENTION'}
s=input("ENTER THE GENDER:")
s2="insert into railway
values('{}','{}',{},'{}','{}','{}','{}','{}','{}','{}')".format(pnrno,b,c,x,c2,s,g[1]
,c1,h,g[0])
cursor.execute(s2)
print('BOOKED SUCCESSFULLY')
print("YOUR PNR NO. GENERATED IS :",pnrno)
else:
print("MORE THAN 2 TICKETS ARE NOT ALLOWED")
def delhi():
x=input("ENTER YOUR CHOICE OF
TICKET(AC1/AC2/AC3/SLEEPER):")
if(x=='ac1'):
print ("YOU HAVE Chosen FIRST CLASS AC TICKET")
s=6000
elif (x=='ac2'):
print ("YOU HAVE Chosen SECOND CLASS AC TICKET")
s=5000
elif (x=='ac3'):
print ("YOU HAVE Chosen THIRD CLASS AC TICKET")
s=4000
elif (x=='sleeper'):
print ("YOU HAVE Chosen SLEEPER TICKET")
s=3000
else:
print("Invalid option")
print("YOUR TICKET PRICE FOR EACH IS ",s,"\n")
return s,x
def sabarmati():
x=input("ENTER YOUR CHOICE OF
TICKET(AC1/AC2/AC3/SLEEPER):")
if(x=='ac1'):
print ("YOU HAVE Chosen FIRST CLASS AC TICKET")
s=9000
elif (x=='ac2'):
print ("YOU HAVE Chosen SECOND CLASS AC TICKET")
s=8000
elif (x=='ac3'):
print ("YOU HAVE Chosen THIRD CLASS AC TICKET")
s=7000
elif (x=='sleeper'):
print ("YOU HAVE Chosen SLEEPER TICKET")
s=5000
else:
print("Invalid option")
print("YOUR TOTAL TICKET PRICE FOR EACH IS ",s,"\n")
return s,x
def goa():
x=input("ENTER YOUR CHOICE OF
TICKET(AC1/AC2/AC3/SLEEPER):")
if(x=='ac1'):
print ("YOU HAVE Chosen FIRST CLASS AC TICKET")
s=10000
elif (x=='ac2'):
print ("YOU HAVE Chosen SECOND CLASS AC TICKET")
s=9000
elif (x=='ac3'):
print ("YOU HAVE Chosen THIRD CLASS AC TICKET")
s=8000
elif (x=='sleeper'):
print ("YOU HAVE Chosen SLEEPER TICKET")
s=7000
else:
print("Invalid option")
print("YOUR TOTAL TICKET PRICE FOR EACH IS ",s,"\n")
return s,x
def chennai():
x=input("ENTER YOUR CHOICE OF
TICKET(AC1/AC2/AC3/SLEEPER):")
if(x=='ac1'):
print ("YOU HAVE Chosen FIRST CLASS AC TICKET")
s=12000
elif (x=='ac2'):
print ("YOU HAVE Chosen SECOND CLASS AC TICKET")
s=10000
elif (x=='ac3'):
print ("YOU HAVE Chosen THIRD CLASS AC TICKET")
s=9000
elif (x=='sleeper'):
print ("YOU HAVE Chosen SLEEPER TICKET")
s=7000
else:
print("Invalid option")
print("YOUR TOTAL TICKET PRICE FOR EACH IS ",s,"\n")
return s,x
def ticket_checking():
print('1.yes')
print('2.no')
if ch==1:
pnrno=int(input('ENTER YOUR GENERATED PNR NO.:'))
try:
s1="select * from railway where
pnr_no='{}'".format(pnrno)
cursor.execute(s1)
data=cursor.fetchall()
Data=list(data)
a=['PNRNO','P.NAME','AGE','TRAIN NO.','TRAIN
NAME','GENDER','CLASS','SOURCE','DESTINATION','FARE']
print(tabulate(data,headers=a,tablefmt="psql"))
except:
print('TICKET DOES NOT EXISTS')
elif ch==2:
print('THANK YOU')
else:
print('ERROR 404:PAGE NOT FOUND')
def ticket_cancelling():
print('1.yes')
print('2.no')
ch=int(input("WANT TO CANCEL A TICKET:"))
if ch==1:
pnrno=input('ENTER THE PNR NO:')
s1="delete from railway where pnr_no='{}'".format(pnrno)
cursor.execute(s1)
print('TICKET CANCELLED')
elif ch==2:
print('THANK YOU')
else:
print('ERROR 404:PAGE NOT FOUND')
def checking_2():
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where
password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
print('IS THIS YOUR ACCOUNT')
s1="select user_name from user_accounts where
password='{}'".format(b)
c1="select fname,lname from user_accounts where
password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
x=['FIRST NAME','LAST NAME','PHONE
NUMBER','GENDER','DATE OF BIRTH','AGE']
s1="select fname,lname,phno,gender,dob,age from
user_accounts where password='{}'".format(b)
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
for i in range(0,6):
print(x[i],':::',data[i])
print('1.yes')
print('2.no')
vi=int(input('enter your choice:'))
if vi==1:
b1="delete from user_accounts where password
= '{}'".format(b)
cursor.execute(b1)
return True
elif vi==2:
print('SORRY,RETRY')
else:
print('ERROR 404:PAGE NOT FOUND')
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
def checking_1():
f=input("FIRST NAME\t\t:")
l=input("LAST NAME \t\t:")
n=f+" "+l
a=input('USER NAME \t\t:')
b=input('PASS WORD \t\t:')
c=input('RE-ENTER YOUR PASS WORD :')
ph=input("PHONE NUMBER\t\t:")
print(' M=MALE','\n','F=FEMALE','\n','N=NOT TO
MENTION')
gen=input('ENTER YOUR GENDER\t:')
print("ENTER YOR DATE OF BIRTH")
d=input("Date(DD) :")
o=input("Month(MM) :")
p=input("Year(YYYY) :")
dob=d+'/'+o+'/'+p
age=input('YOUR AGE \t\t:')
v={'m':'MALE','f':'FEMALE','n':'NOT TO MENTION'}
if b==c:
try:
c1="insert into user_accounts
values('{}','{}','{}','{}','{}','{}','{}','{}')".format(f,l,a,b,ph,v[gen],dob,age)
cursor.execute(c1)
print('WELCOME',f,' ',l)
return True
except:
print('PASSWORD ALREADY EXISTS')
return False
else:
print('BOTH PASSWORDS ARE NOT MATCHING')
def checking():
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where
password='{}'".format(b)
c1="select fname,lname from user_accounts where
password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)[0]
if data==a:
print(' HII ',data1)
return True
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')
def checking_3():
a=input('USER NAME:')
b=input('PASS WORD:')
try:
s1="select user_name from user_accounts where
password='{}'".format(b)
c1="select fname,lname from user_accounts where
password='{}'".format(b)
cursor.execute(c1)
data1=cursor.fetchall()[0]
data1=list(data1)
data1=data1[0]+' '+data1[1]
cursor.execute(s1)
data=cursor.fetchall()[0]
data=list(data)
if data[0]==a:
menu()
SCREENSHOTS OF
OUTPUT
SIGNING UP FOR A NEW ACCOUNT:-
NOW SIGNING IN WITH THE ABOVE ACCOUNT:-