Design: Hotel Booking System
Design focuses on core classes and their relationships for hotel, room, and booking management. Payment processing, user authentication, and UI are out of scope.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
HotelBookingSystem | +-- Hotel | +-- Room | +-- Booking Classes: Hotel -- owns --> Rooms Booking -- references --> Room Booking -- has --> date range
class Room:
def __init__(self, number):
self.number = number
self.is_available = True
class Booking:
def __init__(self, room):
self.room = room
self.room.is_available = False
room101 = Room(101)
print(room101.is_available)
booking1 = Booking(room101)
print(room101.is_available)class Room:
def __init__(self, number):
self.number = number
self.is_available = True
class Booking:
def __init__(self, room, guest):
self.room = room
self.guest = guest
def book(self):
if self.room.is_available:
self.room.is_available = False
print("Booking successful")
else:
print("Room not available")
room = Room(201)
booking = Booking(room)
booking.book()