Untitled

 avatar
unknown
plain_text
2 months ago
5.0 kB
5
Indexable
#include <stdio.h>
#include <string.h>

#define MAX_ROOMS 10

typedef struct {
    int isOccupied;
    char tcNo[12];
    char firstName[30];
    char lastName[30];
    char checkInDate[11]; // Format: dd.mm.yyyy
} Room;

Room rooms[MAX_ROOMS];

void initializeRooms() {
    int i;
    for (i = 0; i < MAX_ROOMS; i++) {
        rooms[i].isOccupied = 0;
    }
}

void newCustomer() {
    int roomNum;
    printf("Enter room number (1-%d): ", MAX_ROOMS);
    scanf("%d", &roomNum);
    roomNum--;

    if (roomNum < 0 || roomNum >= MAX_ROOMS) {
        printf("Invalid room number!\n");
        return;
    }

    if (rooms[roomNum].isOccupied) {
        printf("This room is already occupied!\n");
        return;
    }

    printf("Customer ID (TC): ");
    scanf("%s", rooms[roomNum].tcNo);
    printf("Customer First Name: ");
    scanf("%s", rooms[roomNum].firstName);
    printf("Customer Last Name: ");
    scanf("%s", rooms[roomNum].lastName);
    printf("Check-in Date (dd.mm.yyyy): ");
    scanf("%s", rooms[roomNum].checkInDate);

    rooms[roomNum].isOccupied = 1;
    printf("Customer added successfully!\n");
}

void showOccupiedRooms() {
    int i, found = 0;
    printf("Occupied Rooms:\n");
    for (i = 0; i < MAX_ROOMS; i++) {
        if (rooms[i].isOccupied) {
            printf("Room %d - %s %s, ID: %s, Date: %s\n",
                   i + 1, rooms[i].firstName, rooms[i].lastName,
                   rooms[i].tcNo, rooms[i].checkInDate);
            found = 1;
        }
    }
    if (!found)
        printf("No occupied rooms found.\n");
}

void deleteCustomer() {
    char tc[12];
    int i;
    printf("Enter the ID (TC) of the customer checking out: ");
    scanf("%s", tc);

    for (i = 0; i < MAX_ROOMS; i++) {
        if (rooms[i].isOccupied && strcmp(rooms[i].tcNo, tc) == 0) {
            rooms[i].isOccupied = 0;
            printf("Customer record deleted.\n");
            return;
        }
    }
    printf("No customer found with the entered ID!\n");
}

void roomStatus() {
    int i, occupied = 0, empty = 0;
    printf("Room Status:\n");
    for (i = 0; i < MAX_ROOMS; i++) {
        if (rooms[i].isOccupied) {
            printf("Room %d: OCCUPIED\n", i + 1);
            occupied++;
        } else {
            printf("Room %d: EMPTY\n", i + 1);
            empty++;
        }
    }
    printf("Occupancy Rate: %.2f%%\n", (occupied / (float)MAX_ROOMS) * 100);
    printf("Total Occupied Rooms: %d, Empty Rooms: %d\n", occupied, empty);
}

void searchCustomer() {
    int choice;
    char query[30];
    int i;
    printf("Search Criteria:\n1. By Room Number\n2. By Last Name\n3. By Check-in Date\nYour Choice: ");
    scanf("%d", &choice);

    if (choice == 1) {
        int roomNum;
        printf("Enter Room Number: ");
        scanf("%d", &roomNum);
        roomNum--;
        if (roomNum >= 0 && roomNum < MAX_ROOMS && rooms[roomNum].isOccupied) {
            printf("Room %d - %s %s, ID: %s, Date: %s\n",
                   roomNum + 1, rooms[roomNum].firstName,
                   rooms[roomNum].lastName, rooms[roomNum].tcNo,
                   rooms[roomNum].checkInDate);
        } else {
            printf("No customer found in this room.\n");
        }
    } else if (choice == 2) {
        printf("Enter Customer Last Name: ");
        scanf("%s", query);
        for (i = 0; i < MAX_ROOMS; i++) {
            if (rooms[i].isOccupied && strcmp(rooms[i].lastName, query) == 0) {
                printf("Room %d - %s %s, ID: %s, Date: %s\n",
                       i + 1, rooms[i].firstName, rooms[i].lastName,
                       rooms[i].tcNo, rooms[i].checkInDate);
            }
        }
    } else if (choice == 3) {
        printf("Enter Check-in Date (dd.mm.yyyy): ");
        scanf("%s", query);
        for (i = 0; i < MAX_ROOMS; i++) {
            if (rooms[i].isOccupied && strcmp(rooms[i].checkInDate, query) == 0) {
                printf("Room %d - %s %s, ID: %s, Date: %s\n",
                       i + 1, rooms[i].firstName, rooms[i].lastName,
                       rooms[i].tcNo, rooms[i].checkInDate);
            }
        }
    } else {
        printf("Invalid choice!\n");
    }
}

int main() {
    int choice;
    initializeRooms();

    do {
        printf("\n=== HOTEL MANAGEMENT PROGRAM ===\n");
        printf("1. New Customer\n2. Show Records\n3. Check-out Customer\n4. Search\n5. Room Status\n6. Exit\nYour Choice: ");
        scanf("%d", &choice);

        switch (choice) {
        case 1: newCustomer(); break;
        case 2: showOccupiedRooms(); break;
        case 3: deleteCustomer(); break;
        case 4: searchCustomer(); break;
        case 5: roomStatus(); break;
        case 6: printf("Exiting program...\n"); break;
        default: printf("Invalid choice!\n");
        }
    } while (choice != 6);

    return 0;
}
Leave a Comment