Untitled
unknown
plain_text
a year ago
5.0 kB
9
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;
}
Editor is loading...
Leave a Comment