0% found this document useful (0 votes)
25 views5 pages

Code 8import Pandas As PD

This document defines classes to track hotel guests and their reservations. A Guest class stores a guest's name, email, and reservation. A Reservation class stores room type and check-in/out dates. A GuestTracker class manages a list of guests, allows adding/removing guests and retrieving them by email or date range. It can generate a Pandas report on all guests. Example code provides a menu to interact with the GuestTracker to add/view guests and generate reports.

Uploaded by

Harrison Adom
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)
25 views5 pages

Code 8import Pandas As PD

This document defines classes to track hotel guests and their reservations. A Guest class stores a guest's name, email, and reservation. A Reservation class stores room type and check-in/out dates. A GuestTracker class manages a list of guests, allows adding/removing guests and retrieving them by email or date range. It can generate a Pandas report on all guests. Example code provides a menu to interact with the GuestTracker to add/view guests and generate reports.

Uploaded by

Harrison Adom
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/ 5

import pandas as pd

class Guest:

def __init__(self, name, email, reservation):

self.name = name

self.email = email

self.reservation = reservation

class Reservation:

def __init__(self, room_type, check_in_date, check_out_date):

self.room_type = room_type

self.check_in_date = check_in_date

self.check_out_date = check_out_date

class GuestTracker:

def __init__(self):

self.guests = []

def add_guest(self, guest):

self.guests.append(guest)

def remove_guest(self, guest):

self.guests.remove(guest)

def get_guest_by_email(self, email):

for guest in self.guests:

if guest.email == email:

return guest

return None
def get_guests_by_date_range(self, start_date, end_date):

result = []

for guest in self.guests:

reservation = guest.reservation

if reservation.check_in_date >= start_date and reservation.check_out_date <= end_date:

result.append(guest)

return result

def generate_report(self):

data = []

for guest in self.guests:

data.append({

'Name': guest.name,

'Email': guest.email,

'Room Type': guest.reservation.room_type,

'Check-in Date': guest.reservation.check_in_date,

'Check-out Date': guest.reservation.check_out_date

})

df = pd.DataFrame(data)

return df

# Example usage

tracker = GuestTracker()

while True:

print("1. Add guest")

print("2. Remove guest")


print("3. Get guest by email")

print("4. Get guests by date range")

print("5. Generate guest report")

print("6. Exit")

choice = input("Enter your choice: ")

if choice == "1":

name = input("Enter guest name: ")

email = input("Enter guest email: ")

room_type = input("Enter room type: ")

check_in_date = input("Enter check-in date (YYYY-MM-DD): ")

check_out_date = input("Enter check-out date (YYYY-MM-DD): ")

reservation = Reservation(room_type, check_in_date, check_out_date)

guest = Guest(name, email, reservation)

tracker.add_guest(guest)

print("Guest added successfully.")

elif choice == "2":

email = input("Enter guest email to remove: ")

guest = tracker.get_guest_by_email(email)

if guest:

tracker.remove_guest(guest)

print("Guest removed successfully.")

else:

print("Guest not found.")

elif choice == "3":

email = input("Enter guest email: ")


guest = tracker.get_guest_by_email(email)

if guest:

print("Guest found:")

print("Name:", guest.name)

print("Email:", guest.email)

print("Room Type:", guest.reservation.room_type)

print("Check-in Date:", guest.reservation.check_in_date)

print("Check-out Date:", guest.reservation.check_out_date)

else:

print("Guest not found.")

elif choice == "4":

start_date = input("Enter start date (YYYY-MM-DD): ")

end_date = input("Enter end date (YYYY-MM-DD): ")

guests = tracker.get_guests_by_date_range(start_date, end_date)

if guests:

print("Guests in date range:")

for guest in guests:

print("Name:", guest.name)

print("Email:", guest.email)

print("Room Type:", guest.reservation.room_type)

print("Check-in Date:", guest.reservation.check_in_date)

print("Check-out Date:", guest.reservation.check_out_date)

else:

print("No guests found in the specified date range.")

elif choice == "5":

guest_report = tracker.generate_report()

print(guest_report)
elif choice == "6":

print("Exiting...")

break

else:

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

# a menu-driven interface is implemented using a while loop. The user can select various options to
perform operations on the guest tracker, such as adding a guest, removing a guest, retrieving guest
information, getting guests within a specified date range, generating a guest report, and exiting the
program.

The input from the user is validated and processed accordingly. The guest tracker functionalities are
invoked based on the user's choices.

You might also like