COMPUTER SCIENCE PROJECT OF RAILWAY RESERVATION SYSTEM PYTHON PROGRAMMING.pdf

26,628 views 38 slides Jun 27, 2023
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

THIS PROJECT IS FOR THE 12TH STANDARD STUDENTS WHICH ARE FACING PROBLEM IN MAKING COMPUTER SCIENCE PROJECTS LIKE RAILWAY RESERVATION SYSTEM FOR REPORT FILE FOR THE 12TH BOARDS . IN THIS PROJECT IS BASED ON PYTHON PROGRAMMING . THE DATABASE WE HAVE USED IN THIS MYSQL AND CONNECT IT TO PYTHON THROUGH ...


Slide Content

ASSISI CONVENT SCHOOL
Agra Road, Etah (UP) Pin 207001

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
ASSISI CONVENT SCHOOL

Agra Road, Etah(UP) Pin 207001
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.




RAHUL JOHRI ANJALI MARIA
H.O.D (Computer Science) Principal
Assisi Convent School Assisi Convent School
Etah Etah
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.

Secondly, I would like to thank my subject teacher
MR. RAHUL JOHRI who continuously guided me and
helped me from time to time during the development
of this project.

At last, I would like to thank my friends and family
members for their valuable support.







AKSHAT TIWARI

TABLE OF CONTENTS

SN


PARTICULARS

PAGE
NO.

TEACHER’S
SIGNATURE
1 INTRODUCTION OF
THE PROJECT

1

2 REQUIREMENTS
2-3
3 PROGRAMMING
LANGUAGE &
CONCEPTS USED

4
4 PACKAGES,
MODULES AND
FUNCTIONS USED

5-7
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

The topic of the project is RAILWAY RESERVATION
SYSTEM .The railway reservation system facilitates
the passengers to enquiry about the trains available
on the basis of source and destination, booking and
cancellation of tickets, enquiry about the status of the
booked ticket, etc. The aim of case study is to design
and develop a data base maintaining records of
different trains, train status and passengers.This
project contains introduction to the railways
reservation system. It is the computerized system of
reserving the seats of train seats in advance. It is
mainly used for a long route. Online reservation has
made the process for the reservation of seats very
much easier than ever before.

REQUIREMENTS
HARDWARE REQUIREMENT S :-
• The hardware requirements are laptop of RAM-
4.00 GB32-bit operating system
• printer
SOFTWARE REQUIREMENTS:
• A window based operating system with DOS
support
• The system must be connected with a LAN
connection
PROCESSOR REQUIREMENTS:
• Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz 2.60
GHz
MEMORY REQUIREMENTS:
• Hard disk of about 152GB
OTHER REQUIREMENTS:
• MySql version 5.7
• Python version 3.10.5

• MySql connectivity
• MS Word 2010

PROGRAMING LANGUAGE
AND CONCEPTS USED
The programming language of the project is PYTHON
The concepts that we have used in our project are ---
we have taken the use of MySql connectivity for this
project , we had made a database in Sql with the help
of python programming and perform every task in Sql
by python programming only. We made various types
of user defined functions for the function of each and
every functioning in the program. We made the use of
if , elif and else approx in every function for the
conditional statements . we have also imported
tabulate and random module , tabulate module for
displaying the data from the database in a tabular
form and random module for generating random no.
from randint() method for generating a random pnr_no
for the tickets.



PACKAGES, MODULES &

FUNCTIONS USED
PACKAGE
NAME
MODULE
NAME
FUNTION
S
DESCRIPTION



Nil

random


randint()

Used to
generate a
Pnr number in
a given range

mysql.

connector

connect()
To make a
connection
between mysql
and python

cursor()
It provides a
cursor object
for the working
of the database
through

menu()
It regulates
activities like
signup, signin
in the project















main()
It regulates all
the activities
like ticket
booking,
checking
,cancelling and

User
defined
functions
also show the
account details
of the user

ticket_boo
king()
This function is
for the booking
of the ticket for
train

delhi()
This function is
for the fare of
the train delhi
express

sabarmati
()
This function is
for the fare of
the train
sabarmati
express
goa() This function is
for the fare of
the train goa
express










User
Defined
functions

chennai() This function is
for the fare of
the train
chennai
express
ticket_che
cking()
This function is
for the checking
for the booked
tickets
ticket_can
celling()
This function is
for the
cancellation of
the booked
tickets

DATABASE & TABLES
USED





















tabulate

checking_
2()
This function is
for the deletion
of existing user
account
checking_
1()
This function is
for creating a
new account in
the project
checking() This function is
used for logging
in of an existing
account in
project
checking_
3()
This function is
for checking
our personal
account details


tabulate()
Used for
displaying the
data in a
tabular format

The Database used in this project is
RAILWAY104
TABLE
NAME
FIELD
NAME
DATA TYPE DESCRIPTION



User_
accounts


fname varchar(100) Stores the first
name of the
user
lname varchar(100) Stores the last
name of the
user
user_
name
varchar(100) Stores the
username of
the user
password Varchar(100) Stores the
password for
the account of
the user
phno Varchar(15) Stores the
phone no. of
the user
gender Varchar(50) Stores the
gender of the
user
dob Varchar(50) Stores the date
of birth of the
user
age Varchar(4) Stores the age
of the user

TABLE
NAME
FILED
NAME
DATA TYPE DESCRIPTION






Train_
details
TRAIN_
NAME
Varchar(30) Stores the
train name
given by the
user
TRAIN_NO Varchar(20) Stores the
train no given
by the user
Source Varchar(30) Stores the
starting point
or location of
the train
Destination Varchar(30) Stores the
destination of
the train
AC1 Varchar(20) Stores the AC1
fare of the
ticket
AC2 Varchar(20) Stores the AC2
fare of the
AC3

Varchar(20)
Stores the AC3
fare of the
ticket









Sleeper Varchar(10) Stores the
sleeper fare of
ticket

TABLE
NAME
FILED
NAME
DATA
TYPE
DESCRIPTION








Railway
PNR_NO Varchar(10) Stores the
generated pnr
no.
pname Varchar(30) Stores the
passenger
name
Age Int(11) Store the age of
the passenger
Train_no Varchar(10) Store the train
no of that train
with which the
passenger is
travelling
Train_name Varchar(30) Store the train
name of that
train with
which the
passenger is
travelling
gender Varchar(10) Stores the
gender of the
passemger

SCOPE OF THE PROJECT
Class Varchar(10) Stores the
class of the
train
source Varchar(20) Stores the
starting point
of the train
Destination

Varchar(30) Stores the
destination of
the train
fare int(11) Stores the fare
of the train of
the pasengers

The scope of the project railway reservation system is
we can perfrom a various types of activities through
this project. When you run the code the most starting
you will get to see is there will be four options 1. SIGN
IN 2. SIGN UP 3. DELETE ACCOUNT 4 . EXIT first
you should sign up for new user account , when you
made it just select the 1
st
option and sign in with the
same account you made above . now you will get to see
4 options again 1.TICKET BOOKING, 2.TICKET
CHECKING, 3. TICKET CANCELLING AND ACC OUNT
DETAILS you have to choose the first option first and
by following the steps you can book a ticket , for
booking you have 4 trains available in this project that
will also be shown to you at the time of booking . so
just select the type of seat and book the train.
After booking the train you can choose 2
nd
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
Now just select the 3
rd
option that is TICKET
CANCELLING here also you will be asked by the same

PNR no generated at that time . just type the no and
your all tickets will be cancelled
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
That’s all this project can perform for the users










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

from tabulate import tabulate
def menu():
ch=1
while ch==1:
print('\t\t-------WELECOME TO ONLINE RAILWAY
RESERVATION SYSTEM -------\t\t')
print('1.SIGN IN')
print('2.SIGN UP')
print('3.DELETE ACCOUNT')
print('4.EXIT')
ch1=int(input('ENTER YOUR CHOICE:'))
if ch1==1:
a=checking()
if a==True:
print('WELCOME')
main()

else:

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 :",pn rno)
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')

ch=int(input("WANT TO CHECK A TICKET:"))

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:

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()
data=list(data)
print(tabulate(data,headers=x,tablefmt="psql"))
else:
return False
except:
print('ACCOUNT DOES NOT EXIST')

menu()

SCREENSHOTS OF
OUTPUT
SIGNING UP FOR A NEW ACCOUNT: -

NOW SIGNING IN WITH THE ABOVE ACCOUNT:-





NOW MOVING TOWARDS MORE OPTIONS AND
BOOK A RAILWAY TICKET: -

CHECKING THE TICKET WE BOOKED ABOVE: -

CANCELLATION OF THE ABOVE TICKET: -

CHECK THE ACCOUNT DETAILS: -




NOW LOG OUT THE ACCOUNT : -


LETS DELETE THE ACCOUNT: -