0% found this document useful (0 votes)
8 views10 pages

Complete Railway Reservation System

Uploaded by

chessaadil
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)
8 views10 pages

Complete Railway Reservation System

Uploaded by

chessaadil
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/ 10

Railway Reservation System Project

# Import necessary modules

import pickle

import time

import random

import os

#_______________________CLASS
TICKETS_________________

class Tickets:

def __init__(self):

self.no_ofac1stclass = 0

self.no_ofac2ndclass = 0

self.no_ofac3rdclass = 0

self.no_ofsleeper = 0

self.no_oftickets = 0

self.name = ''

self.age = ''

self.resno = 0

self.status = ''

self.totaf = 0

# Returns Reservation Number

def ret(self):

return self.resno

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

# Returns Name

def retname(self):

return self.name

# Displays the Data

def display(self):

f=0

try:

with open("tickets.dat", "rb") as fin1:

n = int(input("ENTER PNR NUMBER: "))

print("\n\nFetching data... Please wait.")

time.sleep(1)

os.system('cls')

while True:

tick = pickle.load(fin1)

if n == tick.ret():

f=1

print("=" * 80)

print("PNR STATUS".center(80))

print("=" * 80)

print("\nPASSENGER'S NAME:", tick.name)

print("PASSENGER'S AGE:", tick.age)

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

print("PNR NO:", tick.resno)

print("STATUS:", tick.status)

print("NO OF SEATS BOOKED:", tick.no_oftickets)

break

except EOFError:

pass

except FileNotFoundError:

print("ERROR: 'tickets.dat' file not found.")

if f == 0:

print("WRONG PNR NUMBER!")

# Pending Status

def pending(self):

self.status = "WAITING LIST"

print("PNR NUMBER:", self.resno)

print("STATUS:", self.status)

print("NO OF SEATS BOOKED:", self.no_oftickets)

# Confirmed Status

def confirmation(self):

self.status = "CONFIRMED"

print("PNR NUMBER:", self.resno)

print("STATUS:", self.status)

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

# Ticket Cancellation

def cancellation(self):

f=0

r = int(input("ENTER PNR NUMBER: "))

try:

with open("tickets.dat", "rb") as fin, open("temp.dat", "wb") as


fout:

while True:

tick = pickle.load(fin)

if tick.ret() != r:

pickle.dump(tick, fout)

else:

f=1

except EOFError:

pass

except FileNotFoundError:

print("ERROR: 'tickets.dat' file not found.")

os.remove("tickets.dat")

os.rename("temp.dat", "tickets.dat")

if f == 0:

print("NO SUCH RESERVATION NUMBER FOUND")

else:

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

print("TICKET CANCELLED")

# Ticket Reservation

def reservation(self):

trainno = int(input("ENTER THE TRAIN NO: "))

try:

with open("trdetails.dat", "rb") as fin2:

while True:

tr = pickle.load(fin2)

if trainno == tr.gettrainno():

print("TRAIN NAME IS:", tr.gettrainname())

self.name = input("ENTER THE PASSENGER'S NAME: ")

self.age = int(input("PASSENGER'S AGE: "))

print("SELECT A CLASS YOU WOULD LIKE TO TRAVEL IN:")

print("1. AC FIRST CLASS")

print("2. AC SECOND CLASS")

print("3. AC THIRD CLASS")

print("4. SLEEPER CLASS")

choice = int(input("ENTER YOUR CHOICE: "))

amt1 = 0

if choice == 1:

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

self.no_oftickets = int(input("ENTER NO_OF FIRST


CLASS AC SEATS TO BE BOOKED: "))

amt1 = 1000 * self.no_oftickets

elif choice == 2:

self.no_oftickets = int(input("ENTER NO_OF SECOND


CLASS AC SEATS TO BE BOOKED: "))

amt1 = 900 * self.no_oftickets

elif choice == 3:

self.no_oftickets = int(input("ENTER NO_OF THIRD


CLASS AC SEATS TO BE BOOKED: "))

amt1 = 800 * self.no_oftickets

elif choice == 4:

self.no_oftickets = int(input("ENTER NO_OF SLEEPER


CLASS SEATS TO BE BOOKED: "))

amt1 = 550 * self.no_oftickets

print("TOTAL AMOUNT TO BE PAID =", amt1)

self.resno = random.randint(1000, 2546)

self.confirmation()

with open("tickets.dat", "ab") as fout:

pickle.dump(self, fout)

break

except EOFError:

print("NO SUCH TRAINS FOUND!")

except FileNotFoundError:

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

print("ERROR: 'trdetails.dat' file not found.")

#____________________CLASS
TRAIN_________________

class Train:

def __init__(self):

self.trainno = 0

self.trainname = ''

self.no_ofac1stclass = 0

self.no_ofac2ndclass = 0

self.no_ofac3rdclass = 0

self.no_ofsleeper = 0

self.startingpt = ""

self.destination = ""

# Gets Train Input

def getinput(self):

print("ENTER THE TRAIN DETAILS")

self.trainname = input("ENTER THE TRAIN NAME: ").upper()

self.trainno = int(input("ENTER THE TRAIN NUMBER: "))

self.no_ofac1stclass = int(input("ENTER NO_OF AC FIRST CLASS


SEATS TO BE RESERVED: "))

self.no_ofac2ndclass = int(input("ENTER NO_OF AC SECOND


CLASS SEATS TO BE RESERVED: "))

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

self.no_ofac3rdclass = int(input("ENTER NO_OF AC THIRD CLASS


SEATS TO BE RESERVED: "))

self.no_ofsleeper = int(input("ENTER NO_OF SLEEPER CLASS


SEATS TO BE RESERVED: "))

self.startingpt = input("ENTER THE STARTING POINT: ")

self.destination = input("ENTER THE DESTINATION POINT: ")

# Displays Train Data

def output(self):

print("TRAIN NAME:", self.trainname)

print("TRAIN NUMBER:", self.trainno)

print("STARTING POINT:", self.startingpt)

print("DESTINATION POINT:", self.destination)

print("NO_OF AC FIRST CLASS SEATS RESERVED:",


self.no_ofac1stclass)

print("NO_OF AC SECOND CLASS SEATS RESERVED:",


self.no_ofac2ndclass)

print("NO_OF AC THIRD CLASS SEATS RESERVED:",


self.no_ofac3rdclass)

print("NO_OF SLEEPER CLASS SEATS RESERVED:",


self.no_ofsleeper)

# Getter Methods

def gettrainname(self):

return self.trainname

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

def gettrainno(self):

return self.trainno

# Main Menu

def menu():

tr = Train()

tick = Tickets()

while True:

print("RAILWAY RESERVATION SYSTEM")

print("1. UPDATE TRAIN DETAILS")

print("2. TRAIN DETAILS")

print("3. RESERVATION OF TICKETS")

print("4. CANCELLATION OF TICKETS")

print("5. DISPLAY PNR STATUS")

print("6. QUIT")

choice = int(input("ENTER YOUR CHOICE: "))

if choice == 1:

password = input("ENTER THE PASSWORD: ")

if password == "*****":

tr.getinput()

with open("trdetails.dat", "ab") as fout:

pickle.dump(tr, fout)

else:

Class 12 | Computer Science | Aadil Irshad


Railway Reservation System Project

print("WRONG PASSWORD")

elif choice == 2:

try:

with open("trdetails.dat", "rb") as fin:

while True:

tr = pickle.load(fin)

tr.output()

input("PRESS ENTER TO VIEW NEXT TRAIN DETAILS")

except EOFError:

pass

except FileNotFoundError:

print("ERROR: 'trdetails.dat' file not found.")

elif choice == 3:

tick.reservation()

elif choice == 4:

tick.cancellation()

elif choice == 5:

tick.display()

elif choice == 6:

break

else:

print("INVALID CHOICE!")

menu()

Class 12 | Computer Science | Aadil Irshad

You might also like