Monday, January 20, 2025

BUS TICKET BOOKING SYSTEM

 CODE:

class Bus:

    def __init__(self, bus_route, sp, ep, seats, cost_per_seat):

        self.bus_route = bus_route

        self.sp = sp

        self.ep = ep

        self.seats = seats

        self.available_seats = seats

        self.cost_per_seat = cost_per_seat

        self.booked_seats = [] 

    def book_seat(self, seat_number):

        if 1 <= seat_number <= self.seats:

            if seat_number not in self.booked_seats:

                self.available_seats -= 1

                self.booked_seats.append(seat_number)

                return True

            else:

                print(f"Seat {seat_number} is already booked. Please choose another seat.")

                return False

        else:

            print("Invalid seat number.")

            return False

    def __str__(self):

        return f"{self.bus_route} ({self.sp} to {self.ep}) - {self.available_seats} seats available"

def get_customer_details():

    name = input("Enter your Name: ")

    gender = input("Enter your Gender (M/F): ")

    age = int(input("Enter your Age: "))

    return name, gender, age

def generate_receipt(bus, seat_numbers, customer_name, customer_details, payment_method):

    receipt = f"""

***Welcome to SETC Bus Booking System***


Route: {bus.bus_route}

From: {bus.sp}

To: {bus.ep}

Seats Booked: {', '.join(map(str, seat_numbers))}

Customer Name: {customer_name}

Gender: {customer_details[1]}

Age: {customer_details[2]}

Cost: Rs.{bus.cost_per_seat * len(seat_numbers)}

Payment Method: {payment_method}


***Thank You for Choosing Us!***

"""

    with open(f"receipt_{bus.bus_route}_{customer_name}.txt", "w") as file:

        file.write(receipt)

    print("Receipt downloaded.")

def main():

    buses = [

        Bus("SETC1", "Coimbatore", "Udumalpet", 60, 150),

        Bus("SETC2", "Pollachi", "Palani", 55, 120),

        Bus("SETC3", "Palani", "Madurai", 50, 180)

    ]

    while True:

        print("\n-----Menu-----\n1. View Buses\n2. Book Seats\n3. Exit")

        choice = input("Enter choice: ")

        if choice == '1':

            print("\nAvailable Routes:")

            for i, bus in enumerate(buses):

                print(f"{i + 1}. {bus}")

        elif choice == '2':

            print("\n***Welcome to SETC Bus Booking System***")

            bus_index = int(input("Choose bus number: ")) - 1

            if 0 <= bus_index < len(buses):

                seats_requested = int(input("How many seats do you want to book? : "))

                if seats_requested > 0:

                    booked_seats = []

                    for _ in range(seats_requested):

                        while True:

                            try:

                                seat_number = int(input(f"Enter desired seat number (1-{buses[bus_index].seats}): "))

                                if buses[bus_index].book_seat(seat_number):

                                    booked_seats.append(seat_number)

                                    break

                            except ValueError:

                                print("Invalid seat number. Please enter a number.")

                    if len(booked_seats) == seats_requested:

                        customer_details = get_customer_details()

                        payment_method = input("Enter payment method (Card/Cash): ").upper()

                        generate_receipt(buses[bus_index], booked_seats, customer_details[0], customer_details, payment_method)

                    else:

                        print("Seat booking failed.") 

                else:

                    print("Invalid number of seats.")

            else:

                print("Invalid bus number.")

        elif choice == '3':

            print("Thank you for using us!.")

            break

        else:

            print("Invalid choice. Please try again.")

if __name__ == "__main__":

    main()

OUTPUT:








PETROL BUNK BILLING SYSTEM USING PYTHON

  CODE: from datetime import datetime print("***Petrol Bunk Billing System***") petrol_price = 100 diesel_price = 95 print("...