Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

n#include <stdio.

h>
#include <string.h>

#define MAX_ROOMS 10

typedef struct {
int roomNumber;
char guestName[50];
char checkInDate[15];
} Reservation;

typedef struct {
int roomNumber;
int isOccupied;
} Room;

Room rooms[MAX_ROOMS];
Reservation reservations[MAX_ROOMS];
int numReservations = 0;

void displayMenu() {
printf("\n*******************************************\n");
printf("* *\n");
printf("* Welcome to the Grand Hotel! *\n");
printf("* Exquisite Living, Exceptional Stay *\n");
printf("* *\n");
printf("*******************************************\n");
printf("* 1. Check-in *\n");
printf("* 2. Check-out *\n");
printf("* 3. Display Room Status *\n");
printf("* 4. Exit *\n");
printf("*******************************************\n");
}

void checkIn() {
int roomNumber;
printf("\nEnter room number: ");
scanf("%d", &roomNumber);

if (roomNumber > 0 && roomNumber <= MAX_ROOMS && !rooms[roomNumber -


1].isOccupied) {
rooms[roomNumber - 1].isOccupied = 1;
reservations[numReservations].roomNumber = roomNumber;

printf("Enter guest name: ");


scanf(" %[^\n]", reservations[numReservations].guestName);
printf("Enter check-in date: ");
scanf("%s", reservations[numReservations].checkInDate);

numReservations++;
printf("\nCheck-in successful! Enjoy your luxurious stay!\n");
} else {
printf("\nInvalid room number or room is already booked!\n");
}
}

void checkOut() {
int roomNumber;
printf("\nEnter room number for check-out: ");
scanf("%d", &roomNumber);

if (roomNumber > 0 && roomNumber <= MAX_ROOMS && rooms[roomNumber -


1].isOccupied) {
rooms[roomNumber - 1].isOccupied = 0;
printf("\nCheck-out successful! We hope to welcome you back soon!\n");
} else {
printf("\nInvalid room number or room is not booked!\n");
}
}

void displayRoomStatus() {
printf("\nRoom Status:\n");
printf("***************************************************\n");
printf("| Room No | Status | Guest Name | Check-In Date |\n");
printf("***************************************************\n");

for (int i = 0; i < MAX_ROOMS; i++) {


printf("| %d \t |\t %s \t |\t\t %s \t\t |\t\t %s \t\t |\n", i + 1,
rooms[i].isOccupied ? "Booked" : "Available",
rooms[i].isOccupied ? reservations[i].guestName : "",
rooms[i].isOccupied ? reservations[i].checkInDate : "");
}

printf("***************************************************\n");
}

int main() {
int choice;

for (int i = 0; i < MAX_ROOMS; i++) {


rooms[i].roomNumber = i + 1;
rooms[i].isOccupied = 0;

do {
displayMenu();
printf("Enter your choice: ");
scanf("%d", &choice);

switch (choice) {
case 1:
checkIn();
break;
case 2:
checkOut();
break;
case 3:
displayRoomStatus();
break;
case 4:
printf("\nThank you for choosing the Grand Hotel! Have a splendid
day!\n");
break;
default:
printf("\nInvalid choice! Please try again.\n");
}
} while (choice != 4);

return 0;
}

You might also like