PYTHON CODE
import [Link]
import random
from datetime import datetime
# LOGIN SYSTEM
def login():
username = input("Enter Login ID: ")
password = input("Enter Password: ")
if username == "admin" and password == "1234":
print("\nLogin Successful!\n")
return True
else:
print("\nIncorrect Login Details!")
print("Please Create ID")
print("Use → Username: admin, Password: 1234\n")
return False
# MYSQL CONNECTION
mydb = [Link]( host="localhost",user="root",
password="your_mysql_password",database="railway")
cur = [Link]()
# SEARCH TRAIN
def search_train():
src = input("Enter Source Station: ")
dst = input("Enter Destination Station: ")
query = "SELECT * FROM trains WHERE source=%s AND destination=%s"
[Link](query, (src, dst))
data = [Link]()
if data:
print("\nAvailable Trains!")
for row in data:
print(row)
else:
print("\nNo Trains Found!")
# BOOK TICKET
def book_ticket():
train_no = int(input("Enter Train Number: "))
seats = int(input("How many seats?: "))
[Link]("SELECT fare FROM trains WHERE train_no=%s", (train_no,))
result = [Link]()
if result:
fare = result[0]
total = fare * seats
pnr = [Link](100000, 999999)
booking_date = [Link]().strftime("%d-%m-%Y %H:%M")
print("\nEnter Passenger Details:")
passenger_info = ""
for i in range(1, seats + 1):
print(f"\nPassenger {i}:")
name = input("Name: ")
age = input("Age: ")
gender = input("Gender: ")
passenger_info += f"Passenger {i}: {name} (Age: {age}, Gender: {gender})\n"
if i == 1:
main_passenger_name = name
main_passenger_age = age
query = """INSERT INTO bookings
(pnr, train_no, passenger_name, age, seats, total_fare, passenger_details)
VALUES (%s, %s, %s, %s, %s, %s, %s)"""
values = (pnr, train_no, main_passenger_name, main_passenger_age,
seats, total, passenger_info)
[Link](query, values)
[Link]()
print("\nTicket Booked Successfully!")
print("PNR Number:", pnr)
print("Total Fare:", total)
print("Booking Date:", booking_date)
else:
print("Invalid Train Number!")
# CANCEL TICKET
def cancel_ticket():
pnr = int(input("Enter PNR Number: "))
[Link]("SELECT * FROM bookings WHERE pnr=%s", (pnr,))
result = [Link]()
if result:
[Link]("DELETE FROM bookings WHERE pnr=%s", (pnr,))
[Link]()
print("Ticket Cancelled Successfully!")
else:
print("PNR Not Found!")
# PRINT TICKET
def print_ticket():
pnr = int(input("Enter PNR Number: "))
[Link]("SELECT * FROM bookings WHERE pnr=%s", (pnr,))
data = [Link]()
if data:
print("\n--- Ticket Details ---")
print("PNR:", data[0])
print("Train No:", data[1])
print("Main Passenger:", data[2])
print("Age:", data[3])
print("Seats Booked:", data[4])
print("Total Fare:", data[5])
print("\nAll Passenger Details:")
print(data[6])
else:
print("Ticket Not Found!")
# MAIN MENU
def menu():
while True:
print("\n----- RAILWAY RESERVATION SYSTEM -----")
print("1. Search Train")
print("2. Book Ticket")
print("3. Cancel Ticket")
print("4. Print Ticket")
print("5. Exit")
choice = int(input("Enter choice: "))
if choice == 1:
search_train()
elif choice == 2:
book_ticket()
elif choice == 3:
cancel_ticket()
elif choice == 4:
print_ticket()
elif choice == 5:
print("Thank you!")
break
else:
print("Invalid Choice!")
# PROGRAM START
print("----- RAILWAY RESERVATION SYSTEM -----")
if login():
menu()
else:
print("Please Restart and Login Again.")
SQL CODE
CREATE DATABASE railway;
USE railway;
CREATE TABLE trains (
train_no INT PRIMARY KEY,
train_name VARCHAR(50),
source VARCHAR(40),
destination VARCHAR(40),
fare INT
);
INSERT INTO trains VALUES
(101, 'Mumbai Express', 'Mumbai', 'Delhi', 550),
(202, 'Konark Express', 'Mumbai', 'Bhubaneswar', 450),
(303, 'Chennai Mail', 'Chennai', 'Bangalore', 300),
(404, 'Rajdhani Express', 'Delhi', 'Kolkata', 900),
(505, 'Kerala Sampark', 'Kochi', 'Mumbai', 650);
CREATE TABLE bookings (
pnr INT PRIMARY KEY,
train_no INT,
passenger_name VARCHAR(50),
age INT,
seats INT,
total_fare INT,
passenger_details TEXT
);