from
mysql.connector import Error
import random
from tabulate import tabulate
conn
= mysql.connector
.connect
(host
= 'localhost', user
= 'root', password
='root', database
= 'flight_db',auth_plugin
= 'mysql_native_password')cursor = conn.cursor()
# Create cus_details table
cursor.execute('''
CREATE TABLE IF NOT EXISTS cus_details (
primary_key INT PRIMARY KEY,
cus_name VARCHAR(100),
fl_details INT,
fl_name VARCHAR(100),
dept VARCHAR(100),
dest VARCHAR(100),
f_time TIME,
price INT
);
''')
# Create food_item table
cursor.execute('''
CREATE TABLE IF NOT EXISTS food_item (
sl_number INTEGER PRIMARY KEY,
food_item_name TEXT,
worker TEXT
);
''')
# Create luggage table
cursor.execute('''
CREATE TABLE IF NOT EXISTS luggage (
luggage_id INTEGER PRIMARY KEY,
luggage_type TEXT,
owner_name TEXT
);
''')
# Create flight_details table
cursor.execute('''
CREATE TABLE IF NOT EXISTS flight_details (
flight_id INTEGER PRIMARY KEY,
flight_name TEXT,
flight_price TEXT,
departure TEXT,
destination TEXT,
day TEXT,
time TEXT,
business INTEGER
);
''')
# Commit changes and close the connection
conn.commit()
# Close the connection
conn.close()
print("Tables created successfully!")
# Insert default values into cus_details
cursor.executemany('''
INSERT OR REPLACE INTO cus_details (primary_key, cus_name, fl_details, fl_name, dept, dest, f_time, price)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
''', [
(1, 'John Doe', 101, 'Air India AI202', 'Delhi', 'Mumbai', '10:30:00', 5000),
(2, 'Jane Smith', 102, 'IndiGo 6E303', 'Mumbai', 'Chennai', '12:45:00', 4500),
(3, 'Sam Wilson', 103, 'SpiceJet SG101', 'Bangalore', 'Kolkata', '06:00:00', 4000),
(4, 'Anna Brown', 104, 'Vistara UK102', 'Hyderabad', 'Delhi', '08:15:00', 5500)
])
# Insert default values into food_item
cursor.executemany('''
INSERT OR REPLACE INTO food_item (sl_number, food_item_name, worker)
VALUES (?, ?, ?)
''', [
(1, 'Pizza', 'John'),
(2, 'Burger', 'Emma'),
(3, 'Pasta', 'Liam'),
(4, 'Salad', 'Sophia')
])
# Insert default values into luggage
cursor.executemany('''
INSERT OR REPLACE INTO luggage (luggage_id, luggage_type, owner_name)
VALUES (?, ?, ?)
''', [
(101, 'Suitcase', 'Michael'),
(102, 'Backpack', 'Olivia'),
(103, 'Duffel Bag', 'Noah'),
(104, 'Trolley Bag', 'Isabella')
])
# Insert default values into flight_details
cursor.executemany('''
INSERT OR REPLACE INTO flight_details (flight_id, flight_name, departure, destination, day, time, business)
VALUES (?, ?, ?, ?, ?, ?, ?)
''', [
(1, 'Air India AI202', 'Delhi', 'Mumbai', 'Monday', '10:30 AM', 50),
(2, 'IndiGo 6E303', 'Mumbai', 'Chennai', 'Tuesday', '2:45 PM', 30),
(3, 'SpiceJet SG101', 'Bangalore', 'Kolkata', 'Wednesday', '6:00 AM', 40),
(4, 'Vistara UK102', 'Hyderabad', 'Delhi', 'Friday', '8:15 PM', 60)
])
# Commit changes and close the connection
conn.commit()
# Close the connection
conn.close()
print("Tables and default values inserted successfully!")
import sqlite3
# Connect to SQLite database
conn = sqlite3.connect('items.db')
cursor = conn.cursor()
# Client functions
def fetch_flight_details():
print("THE AVAILABLE FLIGHTS ARE: ")
print(" ")
cursor.execute("SELECT * FROM flight_details")
flights = cursor.fetchall()
print("\nFlight Details:")
for flight in flights:
print(f"ID: {flight[0]}, Name: {flight[1]}, Departure: {flight[2]}, Destination: {flight[3]}, Day: {flight[4]}, Time: {flight[5]}, Business Seats: {flight[6]}")
def fetch_food_details():
print(" THE AVAILABLE FOODS ARE: ")
print(" ")
cursor.execute("SELECT * FROM food_item")
foods = cursor.fetchall()
print("\nFood Details:")
for food in foods:
print(f"Serial No: {food[0]}, Food Item: {food[1]}, Worker: {food[2]}")
def book_ticket():
print("\nEnter details to book a ticket:")
primary_key = int(input("Primary Key: "))
cus_name = input("Customer Name: ")
fl_details = int(input("Flight ID: "))
fl_name = input("Flight Name: ")
dept = input("Departure Location: ")
dest = input("Destination: ")
f_time = input("Flight Time (HH:MM:SS): ")
cursor.execute("INSERT INTO cus_details (primary_key, cus_name, fl_details, fl_name, dept, dest, f_time) VALUES ({},'{}',{},'{}','{}','{}','{}',{})".format(primary_key, cus_name, fl_details, fl_name, dept, dest, f_time))
conn.commit()
print("Ticket booked successfully!")
def show_user_details():
cursor.execute("SELECT * FROM cus_details")
users = cursor.fetchall()
print("\nUser Details:")
for user in users:
print(f"Primary Key: {user[0]}, Name: {user[1]}, Flight ID: {user[2]}, Flight Name: {user[3]}, Departure: {user[4]}, Destination: {user[5]}, Time: {user[6]}, Price: {user[7]}")
# Admin functions
def change_flight_price():
flight_id = int(input("Enter Flight ID to update price: "))
new_price = int(input("Enter new price: "))
cursor.execute("UPDATE flight_details SET business = ? WHERE flight_id = ?", (new_price, flight_id))
conn.commit()
print("Price updated successfully!")
def manage_food():
print("\n1. Add Food Item")
print("2. Remove Food Item")
action = int(input("Choose action: "))
if action == 1:
food_name = input("Enter food name: ")
worker = input("Enter worker name: ")
cursor.execute("INSERT INTO food_item (food_item_name, worker) VALUES (?, ?)", (food_name, worker))
conn.commit()
print(f"Food item '{food_name}' added.")
elif action == 2:
food_id = int(input("Enter food serial number to remove: "))
cursor.execute("DELETE FROM food_item WHERE sl_number = ?", (food_id,))
conn.commit()
print(f"Food item {food_id} removed.")
else:
print("Invalid action.")
def manage_luggage():
print("\n1. Add Luggage")
print("2. Remove Luggage")
action = int(input("Choose action: "))
if action == 1:
luggage_type = input("Enter luggage type: ")
owner_name = input("Enter owner's name: ")
cursor.execute("INSERT INTO luggage (luggage_type, owner_name) VALUES (?, ?)", (luggage_type, owner_name))
conn.commit()
print(f"Luggage '{luggage_type}' added.")
elif action == 2:
luggage_id = int(input("Enter luggage ID to remove: "))
cursor.execute("DELETE FROM luggage WHERE luggage_id = ?", (luggage_id,))
conn.commit()
print(f"Luggage {luggage_id} removed.")
else:
print("Invalid action.")
# Admin login
def admin_login():
password = input("Enter admin password: ")
if password == "humanmade@123":
print("Admin authenticated.")
return True
else:
print("Incorrect password.")
return False
# Main menu
def main():
print("****************** WELCOME TO LAMNIO AIRLINES**********************")
print("************ MAKE YOUR JOURNEY SUCCESS WITH US!*****************")
user_type = input("Are you an admin or client? (admin/client): ").strip().lower()
if user_type == 'admin':
if admin_login():
while True:
print("\nAdmin Menu:")
print("1. Change Flight Price")
print("2. Manage Food Items")
print("3. Manage Luggage")
print("4. Exit")
choice = int(input("Enter choice: "))
if choice == 1:
change_flight_price()
elif choice == 2:
manage_food()
elif choice == 3:
manage_luggage()
elif choice == 4:
print("Exiting admin panel.")
break
else:
print("Invalid choice!")
elif user_type == 'client':
while True:
print("\nClient Menu:")
print("1. Fetch Flight Details")
print("2. Fetch Food Details")
print("3. Book Ticket")
print("4. Show User Details")
print("5. Exit")
choice = int(input("Enter choice: "))
if choice == 1:
fetch_flight_details()
elif choice == 2:
fetch_food_details()
elif choice == 3:
book_ticket()
elif choice == 4:
show_user_details()
elif choice == 5:
print("Exiting program.")
break
else:
print("Invalid choice!")
else:
print("Invalid user type!")
main()
aW1wb3J0IG15c3FsLmNvbm5lY3Rvcgpmcm9tIG15c3FsLmNvbm5lY3RvciBpbXBvcnQgRXJyb3IKaW1wb3J0IHJhbmRvbQpmcm9tIHRhYnVsYXRlIGltcG9ydCB0YWJ1bGF0ZQoKCmNvbm4gPSBteXNxbC5jb25uZWN0b3IuY29ubmVjdChob3N0ID0gJ2xvY2FsaG9zdCcsIHVzZXIgPSAncm9vdCcsIHBhc3N3b3JkID0ncm9vdCcsIGRhdGFiYXNlID0gJ2ZsaWdodF9kYicsYXV0aF9wbHVnaW4gPSAnbXlzcWxfbmF0aXZlX3Bhc3N3b3JkJykKY3Vyc29yID0gY29ubi5jdXJzb3IoKQoKIyBDcmVhdGUgY3VzX2RldGFpbHMgdGFibGUKY3Vyc29yLmV4ZWN1dGUoJycnCiAgICBDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBjdXNfZGV0YWlscyAoCiAgICAgICAgcHJpbWFyeV9rZXkgSU5UIFBSSU1BUlkgS0VZLAogICAgICAgIGN1c19uYW1lIFZBUkNIQVIoMTAwKSwKICAgICAgICBmbF9kZXRhaWxzIElOVCwKICAgICAgICBmbF9uYW1lIFZBUkNIQVIoMTAwKSwKICAgICAgICBkZXB0IFZBUkNIQVIoMTAwKSwKICAgICAgICBkZXN0IFZBUkNIQVIoMTAwKSwKICAgICAgICBmX3RpbWUgVElNRSwKICAgICAgICBwcmljZSBJTlQKICAgICk7CicnJykKCiMgQ3JlYXRlIGZvb2RfaXRlbSB0YWJsZQpjdXJzb3IuZXhlY3V0ZSgnJycKICAgIENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGZvb2RfaXRlbSAoCiAgICAgICAgc2xfbnVtYmVyIElOVEVHRVIgUFJJTUFSWSBLRVksCiAgICAgICAgZm9vZF9pdGVtX25hbWUgVEVYVCwKICAgICAgICB3b3JrZXIgVEVYVAogICAgKTsKJycnKQoKIyBDcmVhdGUgbHVnZ2FnZSB0YWJsZQpjdXJzb3IuZXhlY3V0ZSgnJycKICAgIENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGx1Z2dhZ2UgKAogICAgICAgIGx1Z2dhZ2VfaWQgSU5URUdFUiBQUklNQVJZIEtFWSwKICAgICAgICBsdWdnYWdlX3R5cGUgVEVYVCwKICAgICAgICBvd25lcl9uYW1lIFRFWFQKICAgICk7CicnJykKCiMgQ3JlYXRlIGZsaWdodF9kZXRhaWxzIHRhYmxlCmN1cnNvci5leGVjdXRlKCcnJwogICAgQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgZmxpZ2h0X2RldGFpbHMgKAogICAgICAgIGZsaWdodF9pZCBJTlRFR0VSIFBSSU1BUlkgS0VZLAogICAgICAgIGZsaWdodF9uYW1lIFRFWFQsCiAgICAgICAgZmxpZ2h0X3ByaWNlIFRFWFQsCiAgICAgICAgZGVwYXJ0dXJlIFRFWFQsCiAgICAgICAgZGVzdGluYXRpb24gVEVYVCwKICAgICAgICBkYXkgVEVYVCwKICAgICAgICB0aW1lIFRFWFQsCiAgICAgICAgYnVzaW5lc3MgSU5URUdFUgogICAgKTsKJycnKQoKIyBDb21taXQgY2hhbmdlcyBhbmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24KY29ubi5jb21taXQoKQoKIyBDbG9zZSB0aGUgY29ubmVjdGlvbgpjb25uLmNsb3NlKCkKCnByaW50KCJUYWJsZXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkhIikKCgojIEluc2VydCBkZWZhdWx0IHZhbHVlcyBpbnRvIGN1c19kZXRhaWxzCmN1cnNvci5leGVjdXRlbWFueSgnJycKICAgIElOU0VSVCBPUiBSRVBMQUNFIElOVE8gY3VzX2RldGFpbHMgKHByaW1hcnlfa2V5LCBjdXNfbmFtZSwgZmxfZGV0YWlscywgZmxfbmFtZSwgZGVwdCwgZGVzdCwgZl90aW1lLCBwcmljZSkKICAgIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPykKJycnLCBbCiAgICAoMSwgJ0pvaG4gRG9lJywgMTAxLCAnQWlyIEluZGlhIEFJMjAyJywgJ0RlbGhpJywgJ011bWJhaScsICcxMDozMDowMCcsIDUwMDApLAogICAgKDIsICdKYW5lIFNtaXRoJywgMTAyLCAnSW5kaUdvIDZFMzAzJywgJ011bWJhaScsICdDaGVubmFpJywgJzEyOjQ1OjAwJywgNDUwMCksCiAgICAoMywgJ1NhbSBXaWxzb24nLCAxMDMsICdTcGljZUpldCBTRzEwMScsICdCYW5nYWxvcmUnLCAnS29sa2F0YScsICcwNjowMDowMCcsIDQwMDApLAogICAgKDQsICdBbm5hIEJyb3duJywgMTA0LCAnVmlzdGFyYSBVSzEwMicsICdIeWRlcmFiYWQnLCAnRGVsaGknLCAnMDg6MTU6MDAnLCA1NTAwKQpdKQoKIyBJbnNlcnQgZGVmYXVsdCB2YWx1ZXMgaW50byBmb29kX2l0ZW0KY3Vyc29yLmV4ZWN1dGVtYW55KCcnJwogICAgSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBmb29kX2l0ZW0gKHNsX251bWJlciwgZm9vZF9pdGVtX25hbWUsIHdvcmtlcikKICAgIFZBTFVFUyAoPywgPywgPykKJycnLCBbCiAgICAoMSwgJ1BpenphJywgJ0pvaG4nKSwKICAgICgyLCAnQnVyZ2VyJywgJ0VtbWEnKSwKICAgICgzLCAnUGFzdGEnLCAnTGlhbScpLAogICAgKDQsICdTYWxhZCcsICdTb3BoaWEnKQpdKQoKCiMgSW5zZXJ0IGRlZmF1bHQgdmFsdWVzIGludG8gbHVnZ2FnZQpjdXJzb3IuZXhlY3V0ZW1hbnkoJycnCiAgICBJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIGx1Z2dhZ2UgKGx1Z2dhZ2VfaWQsIGx1Z2dhZ2VfdHlwZSwgb3duZXJfbmFtZSkKICAgIFZBTFVFUyAoPywgPywgPykKJycnLCBbCiAgICAoMTAxLCAnU3VpdGNhc2UnLCAnTWljaGFlbCcpLAogICAgKDEwMiwgJ0JhY2twYWNrJywgJ09saXZpYScpLAogICAgKDEwMywgJ0R1ZmZlbCBCYWcnLCAnTm9haCcpLAogICAgKDEwNCwgJ1Ryb2xsZXkgQmFnJywgJ0lzYWJlbGxhJykKXSkKCiMgSW5zZXJ0IGRlZmF1bHQgdmFsdWVzIGludG8gZmxpZ2h0X2RldGFpbHMKY3Vyc29yLmV4ZWN1dGVtYW55KCcnJwogICAgSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyBmbGlnaHRfZGV0YWlscyAoZmxpZ2h0X2lkLCBmbGlnaHRfbmFtZSwgZGVwYXJ0dXJlLCBkZXN0aW5hdGlvbiwgZGF5LCB0aW1lLCBidXNpbmVzcykKICAgIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPykKJycnLCBbCiAgICAoMSwgJ0FpciBJbmRpYSBBSTIwMicsICdEZWxoaScsICdNdW1iYWknLCAnTW9uZGF5JywgJzEwOjMwIEFNJywgNTApLAogICAgKDIsICdJbmRpR28gNkUzMDMnLCAnTXVtYmFpJywgJ0NoZW5uYWknLCAnVHVlc2RheScsICcyOjQ1IFBNJywgMzApLAogICAgKDMsICdTcGljZUpldCBTRzEwMScsICdCYW5nYWxvcmUnLCAnS29sa2F0YScsICdXZWRuZXNkYXknLCAnNjowMCBBTScsIDQwKSwKICAgICg0LCAnVmlzdGFyYSBVSzEwMicsICdIeWRlcmFiYWQnLCAnRGVsaGknLCAnRnJpZGF5JywgJzg6MTUgUE0nLCA2MCkKXSkKCiMgQ29tbWl0IGNoYW5nZXMgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uCmNvbm4uY29tbWl0KCkKCiMgQ2xvc2UgdGhlIGNvbm5lY3Rpb24KY29ubi5jbG9zZSgpCgpwcmludCgiVGFibGVzIGFuZCBkZWZhdWx0IHZhbHVlcyBpbnNlcnRlZCBzdWNjZXNzZnVsbHkhIikKCgoKaW1wb3J0IHNxbGl0ZTMKCiMgQ29ubmVjdCB0byBTUUxpdGUgZGF0YWJhc2UKY29ubiA9IHNxbGl0ZTMuY29ubmVjdCgnaXRlbXMuZGInKQpjdXJzb3IgPSBjb25uLmN1cnNvcigpCgojIENsaWVudCBmdW5jdGlvbnMKZGVmIGZldGNoX2ZsaWdodF9kZXRhaWxzKCk6CiAgICBwcmludCgiVEhFIEFWQUlMQUJMRSBGTElHSFRTIEFSRTogIikKICAgIHByaW50KCIgIikKICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIGZsaWdodF9kZXRhaWxzIikKICAgIGZsaWdodHMgPSBjdXJzb3IuZmV0Y2hhbGwoKQogICAgcHJpbnQoIlxuRmxpZ2h0IERldGFpbHM6IikKICAgIGZvciBmbGlnaHQgaW4gZmxpZ2h0czoKICAgICAgICBwcmludChmIklEOiB7ZmxpZ2h0WzBdfSwgTmFtZToge2ZsaWdodFsxXX0sIERlcGFydHVyZToge2ZsaWdodFsyXX0sIERlc3RpbmF0aW9uOiB7ZmxpZ2h0WzNdfSwgRGF5OiB7ZmxpZ2h0WzRdfSwgVGltZToge2ZsaWdodFs1XX0sIEJ1c2luZXNzIFNlYXRzOiB7ZmxpZ2h0WzZdfSIpCgpkZWYgZmV0Y2hfZm9vZF9kZXRhaWxzKCk6CiAgICBwcmludCgiIFRIRSBBVkFJTEFCTEUgRk9PRFMgQVJFOiAiKQogICAgcHJpbnQoIiAiKQogICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCAqIEZST00gZm9vZF9pdGVtIikKICAgIGZvb2RzID0gY3Vyc29yLmZldGNoYWxsKCkKICAgIHByaW50KCJcbkZvb2QgRGV0YWlsczoiKQogICAgZm9yIGZvb2QgaW4gZm9vZHM6CiAgICAgICAgcHJpbnQoZiJTZXJpYWwgTm86IHtmb29kWzBdfSwgRm9vZCBJdGVtOiB7Zm9vZFsxXX0sIFdvcmtlcjoge2Zvb2RbMl19IikKCmRlZiBib29rX3RpY2tldCgpOgogICAgcHJpbnQoIlxuRW50ZXIgZGV0YWlscyB0byBib29rIGEgdGlja2V0OiIpCiAgICBwcmltYXJ5X2tleSA9IGludChpbnB1dCgiUHJpbWFyeSBLZXk6ICIpKQogICAgY3VzX25hbWUgPSBpbnB1dCgiQ3VzdG9tZXIgTmFtZTogIikKICAgIGZsX2RldGFpbHMgPSBpbnQoaW5wdXQoIkZsaWdodCBJRDogIikpCiAgICBmbF9uYW1lID0gaW5wdXQoIkZsaWdodCBOYW1lOiAiKQogICAgZGVwdCA9IGlucHV0KCJEZXBhcnR1cmUgTG9jYXRpb246ICIpCiAgICBkZXN0ID0gaW5wdXQoIkRlc3RpbmF0aW9uOiAiKQogICAgZl90aW1lID0gaW5wdXQoIkZsaWdodCBUaW1lIChISDpNTTpTUyk6ICIpCiAgICAKICAgIAogICAgY3Vyc29yLmV4ZWN1dGUoIklOU0VSVCBJTlRPIGN1c19kZXRhaWxzIChwcmltYXJ5X2tleSwgY3VzX25hbWUsIGZsX2RldGFpbHMsIGZsX25hbWUsIGRlcHQsIGRlc3QsIGZfdGltZSkgVkFMVUVTICh7fSwne30nLHt9LCd7fScsJ3t9Jywne30nLCd7fScse30pIi5mb3JtYXQocHJpbWFyeV9rZXksIGN1c19uYW1lLCBmbF9kZXRhaWxzLCBmbF9uYW1lLCBkZXB0LCBkZXN0LCBmX3RpbWUpKQogICAgY29ubi5jb21taXQoKQogICAgcHJpbnQoIlRpY2tldCBib29rZWQgc3VjY2Vzc2Z1bGx5ISIpCgpkZWYgc2hvd191c2VyX2RldGFpbHMoKToKICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIGN1c19kZXRhaWxzIikKICAgIHVzZXJzID0gY3Vyc29yLmZldGNoYWxsKCkKICAgIHByaW50KCJcblVzZXIgRGV0YWlsczoiKQogICAgZm9yIHVzZXIgaW4gdXNlcnM6CiAgICAgICAgcHJpbnQoZiJQcmltYXJ5IEtleToge3VzZXJbMF19LCBOYW1lOiB7dXNlclsxXX0sIEZsaWdodCBJRDoge3VzZXJbMl19LCBGbGlnaHQgTmFtZToge3VzZXJbM119LCBEZXBhcnR1cmU6IHt1c2VyWzRdfSwgRGVzdGluYXRpb246IHt1c2VyWzVdfSwgVGltZToge3VzZXJbNl19LCBQcmljZToge3VzZXJbN119IikKCiMgQWRtaW4gZnVuY3Rpb25zCmRlZiBjaGFuZ2VfZmxpZ2h0X3ByaWNlKCk6CiAgICBmbGlnaHRfaWQgPSBpbnQoaW5wdXQoIkVudGVyIEZsaWdodCBJRCB0byB1cGRhdGUgcHJpY2U6ICIpKQogICAgbmV3X3ByaWNlID0gaW50KGlucHV0KCJFbnRlciBuZXcgcHJpY2U6ICIpKQogICAgY3Vyc29yLmV4ZWN1dGUoIlVQREFURSBmbGlnaHRfZGV0YWlscyBTRVQgYnVzaW5lc3MgPSA/IFdIRVJFIGZsaWdodF9pZCA9ID8iLCAobmV3X3ByaWNlLCBmbGlnaHRfaWQpKQogICAgY29ubi5jb21taXQoKQogICAgcHJpbnQoIlByaWNlIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5ISIpCgpkZWYgbWFuYWdlX2Zvb2QoKToKICAgIHByaW50KCJcbjEuIEFkZCBGb29kIEl0ZW0iKQogICAgcHJpbnQoIjIuIFJlbW92ZSBGb29kIEl0ZW0iKQogICAgYWN0aW9uID0gaW50KGlucHV0KCJDaG9vc2UgYWN0aW9uOiAiKSkKICAgIAogICAgaWYgYWN0aW9uID09IDE6CiAgICAgICAgZm9vZF9uYW1lID0gaW5wdXQoIkVudGVyIGZvb2QgbmFtZTogIikKICAgICAgICB3b3JrZXIgPSBpbnB1dCgiRW50ZXIgd29ya2VyIG5hbWU6ICIpCiAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIklOU0VSVCBJTlRPIGZvb2RfaXRlbSAoZm9vZF9pdGVtX25hbWUsIHdvcmtlcikgVkFMVUVTICg/LCA/KSIsIChmb29kX25hbWUsIHdvcmtlcikpCiAgICAgICAgY29ubi5jb21taXQoKQogICAgICAgIHByaW50KGYiRm9vZCBpdGVtICd7Zm9vZF9uYW1lfScgYWRkZWQuIikKICAgICAgICAKICAgIGVsaWYgYWN0aW9uID09IDI6CiAgICAgICAgZm9vZF9pZCA9IGludChpbnB1dCgiRW50ZXIgZm9vZCBzZXJpYWwgbnVtYmVyIHRvIHJlbW92ZTogIikpCiAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIkRFTEVURSBGUk9NIGZvb2RfaXRlbSBXSEVSRSBzbF9udW1iZXIgPSA/IiwgKGZvb2RfaWQsKSkKICAgICAgICBjb25uLmNvbW1pdCgpCiAgICAgICAgcHJpbnQoZiJGb29kIGl0ZW0ge2Zvb2RfaWR9IHJlbW92ZWQuIikKICAgIAogICAgZWxzZToKICAgICAgICBwcmludCgiSW52YWxpZCBhY3Rpb24uIikKCmRlZiBtYW5hZ2VfbHVnZ2FnZSgpOgogICAgcHJpbnQoIlxuMS4gQWRkIEx1Z2dhZ2UiKQogICAgcHJpbnQoIjIuIFJlbW92ZSBMdWdnYWdlIikKICAgIGFjdGlvbiA9IGludChpbnB1dCgiQ2hvb3NlIGFjdGlvbjogIikpCiAgICAKICAgIGlmIGFjdGlvbiA9PSAxOgogICAgICAgIGx1Z2dhZ2VfdHlwZSA9IGlucHV0KCJFbnRlciBsdWdnYWdlIHR5cGU6ICIpCiAgICAgICAgb3duZXJfbmFtZSA9IGlucHV0KCJFbnRlciBvd25lcidzIG5hbWU6ICIpCiAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIklOU0VSVCBJTlRPIGx1Z2dhZ2UgKGx1Z2dhZ2VfdHlwZSwgb3duZXJfbmFtZSkgVkFMVUVTICg/LCA/KSIsIChsdWdnYWdlX3R5cGUsIG93bmVyX25hbWUpKQogICAgICAgIGNvbm4uY29tbWl0KCkKICAgICAgICBwcmludChmIkx1Z2dhZ2UgJ3tsdWdnYWdlX3R5cGV9JyBhZGRlZC4iKQogICAgICAgIAogICAgZWxpZiBhY3Rpb24gPT0gMjoKICAgICAgICBsdWdnYWdlX2lkID0gaW50KGlucHV0KCJFbnRlciBsdWdnYWdlIElEIHRvIHJlbW92ZTogIikpCiAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIkRFTEVURSBGUk9NIGx1Z2dhZ2UgV0hFUkUgbHVnZ2FnZV9pZCA9ID8iLCAobHVnZ2FnZV9pZCwpKQogICAgICAgIGNvbm4uY29tbWl0KCkKICAgICAgICBwcmludChmIkx1Z2dhZ2Uge2x1Z2dhZ2VfaWR9IHJlbW92ZWQuIikKICAgIAogICAgZWxzZToKICAgICAgICBwcmludCgiSW52YWxpZCBhY3Rpb24uIikKCgoKCgojIEFkbWluIGxvZ2luCmRlZiBhZG1pbl9sb2dpbigpOgogICAgcGFzc3dvcmQgPSBpbnB1dCgiRW50ZXIgYWRtaW4gcGFzc3dvcmQ6ICIpCiAgICBpZiBwYXNzd29yZCA9PSAiaHVtYW5tYWRlQDEyMyI6CiAgICAgICAgcHJpbnQoIkFkbWluIGF1dGhlbnRpY2F0ZWQuIikKICAgICAgICByZXR1cm4gVHJ1ZQogICAgZWxzZToKICAgICAgICBwcmludCgiSW5jb3JyZWN0IHBhc3N3b3JkLiIpCiAgICAgICAgcmV0dXJuIEZhbHNlCgojIE1haW4gbWVudQpkZWYgbWFpbigpOgogICAgcHJpbnQoIioqKioqKioqKioqKioqKioqKiBXRUxDT01FIFRPIExBTU5JTyBBSVJMSU5FUyoqKioqKioqKioqKioqKioqKioqKioiKQogICAgcHJpbnQoIioqKioqKioqKioqKiBNQUtFIFlPVVIgSk9VUk5FWSBTVUNDRVNTIFdJVEggVVMhKioqKioqKioqKioqKioqKioiKQogICAgdXNlcl90eXBlID0gaW5wdXQoIkFyZSB5b3UgYW4gYWRtaW4gb3IgY2xpZW50PyAoYWRtaW4vY2xpZW50KTogIikuc3RyaXAoKS5sb3dlcigpCiAgICAKICAgIGlmIHVzZXJfdHlwZSA9PSAnYWRtaW4nOgogICAgICAgIGlmIGFkbWluX2xvZ2luKCk6CiAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICBwcmludCgiXG5BZG1pbiBNZW51OiIpCiAgICAgICAgICAgICAgICBwcmludCgiMS4gQ2hhbmdlIEZsaWdodCBQcmljZSIpCiAgICAgICAgICAgICAgICBwcmludCgiMi4gTWFuYWdlIEZvb2QgSXRlbXMiKQogICAgICAgICAgICAgICAgcHJpbnQoIjMuIE1hbmFnZSBMdWdnYWdlIikKICAgICAgICAgICAgICAgIHByaW50KCI0LiBFeGl0IikKICAgICAgICAgICAgICAgIGNob2ljZSA9IGludChpbnB1dCgiRW50ZXIgY2hvaWNlOiAiKSkKICAgICAgICAgICAgICAgIGlmIGNob2ljZSA9PSAxOgogICAgICAgICAgICAgICAgICAgIGNoYW5nZV9mbGlnaHRfcHJpY2UoKQogICAgICAgICAgICAgICAgZWxpZiBjaG9pY2UgPT0gMjoKICAgICAgICAgICAgICAgICAgICBtYW5hZ2VfZm9vZCgpCiAgICAgICAgICAgICAgICBlbGlmIGNob2ljZSA9PSAzOgogICAgICAgICAgICAgICAgICAgIG1hbmFnZV9sdWdnYWdlKCkKICAgICAgICAgICAgICAgIGVsaWYgY2hvaWNlID09IDQ6CiAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkV4aXRpbmcgYWRtaW4gcGFuZWwuIikKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICBwcmludCgiSW52YWxpZCBjaG9pY2UhIikKICAgICAgICAgICAgICAgICAgICAKICAgIGVsaWYgdXNlcl90eXBlID09ICdjbGllbnQnOgogICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgIHByaW50KCJcbkNsaWVudCBNZW51OiIpCiAgICAgICAgICAgIHByaW50KCIxLiBGZXRjaCBGbGlnaHQgRGV0YWlscyIpCiAgICAgICAgICAgIHByaW50KCIyLiBGZXRjaCBGb29kIERldGFpbHMiKQogICAgICAgICAgICBwcmludCgiMy4gQm9vayBUaWNrZXQiKQogICAgICAgICAgICBwcmludCgiNC4gU2hvdyBVc2VyIERldGFpbHMiKQogICAgICAgICAgICBwcmludCgiNS4gRXhpdCIpCiAgICAgICAgICAgIGNob2ljZSA9IGludChpbnB1dCgiRW50ZXIgY2hvaWNlOiAiKSkKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIGNob2ljZSA9PSAxOgogICAgICAgICAgICAgICAgZmV0Y2hfZmxpZ2h0X2RldGFpbHMoKQogICAgICAgICAgICBlbGlmIGNob2ljZSA9PSAyOgogICAgICAgICAgICAgICAgZmV0Y2hfZm9vZF9kZXRhaWxzKCkKICAgICAgICAgICAgZWxpZiBjaG9pY2UgPT0gMzoKICAgICAgICAgICAgICAgIGJvb2tfdGlja2V0KCkKICAgICAgICAgICAgZWxpZiBjaG9pY2UgPT0gNDoKICAgICAgICAgICAgICAgIHNob3dfdXNlcl9kZXRhaWxzKCkKICAgICAgICAgICAgZWxpZiBjaG9pY2UgPT0gNToKICAgICAgICAgICAgICAgIHByaW50KCJFeGl0aW5nIHByb2dyYW0uIikKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBwcmludCgiSW52YWxpZCBjaG9pY2UhIikKICAgICAgICAgICAgICAgIAogICAgZWxzZToKICAgICAgICBwcmludCgiSW52YWxpZCB1c2VyIHR5cGUhIikKCm1haW4oKQ==
import mysql.connector
from mysql.connector import Error
import random
from tabulate import tabulate
conn = mysql.connector.connect(host = 'localhost', user = 'root', password ='root', database = 'flight_db',auth_plugin = 'mysql_native_password')
cursor = conn.cursor()
# Create cus_details table
cursor.execute('''
CREATE TABLE IF NOT EXISTS cus_details (
primary_key INT PRIMARY KEY,
cus_name VARCHAR(100),
fl_details INT,
fl_name VARCHAR(100),
dept VARCHAR(100),
dest VARCHAR(100),
f_time TIME,
price INT
);
''')
# Create food_item table
cursor.execute('''
CREATE TABLE IF NOT EXISTS food_item (
sl_number INTEGER PRIMARY KEY,
food_item_name TEXT,
worker TEXT
);
''')
# Create luggage table
cursor.execute('''
CREATE TABLE IF NOT EXISTS luggage (
luggage_id INTEGER PRIMARY KEY,
luggage_type TEXT,
owner_name TEXT
);
''')
# Create flight_details table
cursor.execute('''
CREATE TABLE IF NOT EXISTS flight_details (
flight_id INTEGER PRIMARY KEY,
flight_name TEXT,
flight_price TEXT,
departure TEXT,
destination TEXT,
day TEXT,
time TEXT,
business INTEGER
);
''')
# Commit changes and close the connection
conn.commit()
# Close the connection
conn.close()
print("Tables created successfully!")
# Insert default values into cus_details
cursor.executemany('''
INSERT OR REPLACE INTO cus_details (primary_key, cus_name, fl_details, fl_name, dept, dest, f_time, price)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
''', [
(1, 'John Doe', 101, 'Air India AI202', 'Delhi', 'Mumbai', '10:30:00', 5000),
(2, 'Jane Smith', 102, 'IndiGo 6E303', 'Mumbai', 'Chennai', '12:45:00', 4500),
(3, 'Sam Wilson', 103, 'SpiceJet SG101', 'Bangalore', 'Kolkata', '06:00:00', 4000),
(4, 'Anna Brown', 104, 'Vistara UK102', 'Hyderabad', 'Delhi', '08:15:00', 5500)
])
# Insert default values into food_item
cursor.executemany('''
INSERT OR REPLACE INTO food_item (sl_number, food_item_name, worker)
VALUES (?, ?, ?)
''', [
(1, 'Pizza', 'John'),
(2, 'Burger', 'Emma'),
(3, 'Pasta', 'Liam'),
(4, 'Salad', 'Sophia')
])
# Insert default values into luggage
cursor.executemany('''
INSERT OR REPLACE INTO luggage (luggage_id, luggage_type, owner_name)
VALUES (?, ?, ?)
''', [
(101, 'Suitcase', 'Michael'),
(102, 'Backpack', 'Olivia'),
(103, 'Duffel Bag', 'Noah'),
(104, 'Trolley Bag', 'Isabella')
])
# Insert default values into flight_details
cursor.executemany('''
INSERT OR REPLACE INTO flight_details (flight_id, flight_name, departure, destination, day, time, business)
VALUES (?, ?, ?, ?, ?, ?, ?)
''', [
(1, 'Air India AI202', 'Delhi', 'Mumbai', 'Monday', '10:30 AM', 50),
(2, 'IndiGo 6E303', 'Mumbai', 'Chennai', 'Tuesday', '2:45 PM', 30),
(3, 'SpiceJet SG101', 'Bangalore', 'Kolkata', 'Wednesday', '6:00 AM', 40),
(4, 'Vistara UK102', 'Hyderabad', 'Delhi', 'Friday', '8:15 PM', 60)
])
# Commit changes and close the connection
conn.commit()
# Close the connection
conn.close()
print("Tables and default values inserted successfully!")
import sqlite3
# Connect to SQLite database
conn = sqlite3.connect('items.db')
cursor = conn.cursor()
# Client functions
def fetch_flight_details():
print("THE AVAILABLE FLIGHTS ARE: ")
print(" ")
cursor.execute("SELECT * FROM flight_details")
flights = cursor.fetchall()
print("\nFlight Details:")
for flight in flights:
print(f"ID: {flight[0]}, Name: {flight[1]}, Departure: {flight[2]}, Destination: {flight[3]}, Day: {flight[4]}, Time: {flight[5]}, Business Seats: {flight[6]}")
def fetch_food_details():
print(" THE AVAILABLE FOODS ARE: ")
print(" ")
cursor.execute("SELECT * FROM food_item")
foods = cursor.fetchall()
print("\nFood Details:")
for food in foods:
print(f"Serial No: {food[0]}, Food Item: {food[1]}, Worker: {food[2]}")
def book_ticket():
print("\nEnter details to book a ticket:")
primary_key = int(input("Primary Key: "))
cus_name = input("Customer Name: ")
fl_details = int(input("Flight ID: "))
fl_name = input("Flight Name: ")
dept = input("Departure Location: ")
dest = input("Destination: ")
f_time = input("Flight Time (HH:MM:SS): ")
cursor.execute("INSERT INTO cus_details (primary_key, cus_name, fl_details, fl_name, dept, dest, f_time) VALUES ({},'{}',{},'{}','{}','{}','{}',{})".format(primary_key, cus_name, fl_details, fl_name, dept, dest, f_time))
conn.commit()
print("Ticket booked successfully!")
def show_user_details():
cursor.execute("SELECT * FROM cus_details")
users = cursor.fetchall()
print("\nUser Details:")
for user in users:
print(f"Primary Key: {user[0]}, Name: {user[1]}, Flight ID: {user[2]}, Flight Name: {user[3]}, Departure: {user[4]}, Destination: {user[5]}, Time: {user[6]}, Price: {user[7]}")
# Admin functions
def change_flight_price():
flight_id = int(input("Enter Flight ID to update price: "))
new_price = int(input("Enter new price: "))
cursor.execute("UPDATE flight_details SET business = ? WHERE flight_id = ?", (new_price, flight_id))
conn.commit()
print("Price updated successfully!")
def manage_food():
print("\n1. Add Food Item")
print("2. Remove Food Item")
action = int(input("Choose action: "))
if action == 1:
food_name = input("Enter food name: ")
worker = input("Enter worker name: ")
cursor.execute("INSERT INTO food_item (food_item_name, worker) VALUES (?, ?)", (food_name, worker))
conn.commit()
print(f"Food item '{food_name}' added.")
elif action == 2:
food_id = int(input("Enter food serial number to remove: "))
cursor.execute("DELETE FROM food_item WHERE sl_number = ?", (food_id,))
conn.commit()
print(f"Food item {food_id} removed.")
else:
print("Invalid action.")
def manage_luggage():
print("\n1. Add Luggage")
print("2. Remove Luggage")
action = int(input("Choose action: "))
if action == 1:
luggage_type = input("Enter luggage type: ")
owner_name = input("Enter owner's name: ")
cursor.execute("INSERT INTO luggage (luggage_type, owner_name) VALUES (?, ?)", (luggage_type, owner_name))
conn.commit()
print(f"Luggage '{luggage_type}' added.")
elif action == 2:
luggage_id = int(input("Enter luggage ID to remove: "))
cursor.execute("DELETE FROM luggage WHERE luggage_id = ?", (luggage_id,))
conn.commit()
print(f"Luggage {luggage_id} removed.")
else:
print("Invalid action.")
# Admin login
def admin_login():
password = input("Enter admin password: ")
if password == "humanmade@123":
print("Admin authenticated.")
return True
else:
print("Incorrect password.")
return False
# Main menu
def main():
print("****************** WELCOME TO LAMNIO AIRLINES**********************")
print("************ MAKE YOUR JOURNEY SUCCESS WITH US!*****************")
user_type = input("Are you an admin or client? (admin/client): ").strip().lower()
if user_type == 'admin':
if admin_login():
while True:
print("\nAdmin Menu:")
print("1. Change Flight Price")
print("2. Manage Food Items")
print("3. Manage Luggage")
print("4. Exit")
choice = int(input("Enter choice: "))
if choice == 1:
change_flight_price()
elif choice == 2:
manage_food()
elif choice == 3:
manage_luggage()
elif choice == 4:
print("Exiting admin panel.")
break
else:
print("Invalid choice!")
elif user_type == 'client':
while True:
print("\nClient Menu:")
print("1. Fetch Flight Details")
print("2. Fetch Food Details")
print("3. Book Ticket")
print("4. Show User Details")
print("5. Exit")
choice = int(input("Enter choice: "))
if choice == 1:
fetch_flight_details()
elif choice == 2:
fetch_food_details()
elif choice == 3:
book_ticket()
elif choice == 4:
show_user_details()
elif choice == 5:
print("Exiting program.")
break
else:
print("Invalid choice!")
else:
print("Invalid user type!")
main()