In: Computer Science
Project Description
The BlueMont chain hotels have 4 different types of room:
Single room: $60/night
Double room: $75/night
King room: $100/night
Suite room: $150/night
The size of the hotel chains in different locations may be different in terms of the number of floors and the type and the number of rooms on each floor.
You are required to write a program that calculates the occupancy rate and the total hotel income for one night and displays this information as well as some other information described below.
The program starts by asking the location where this hotel chain is located and the number of floors in the hotel. The number of floors may not exceed 5. The User then enters the total number of rooms for each floor. The program then asks specifically the number of occupied rooms for each room type on this floor. The total number of rooms on each floor may not exceed 30 and the program should check that the total number of occupied rooms on each floor does not exceed the total of rooms on that floor.
After the information is entered for each floor, the program calculates the following:
- Hotel income (based on the room type and its rate),
- The total number of occupied rooms,
- Total number of the uncopied rooms,
- The rate of occupancy,
- Floor number with the minimum number of rooms. (Assume no two floors have the same number of rooms).
- A message to improve the occupancy rate for the occupancy rate of less than 60%.
- Programmer’s full name
- Project number
- Project due date
Project Specifications
-Use constant variables to hold room rates, max and min # of floors and rooms.
-The program should continuously ask for the correct floor number if it is not within the range of 1 and 5.
-The program should continuously ask for the correct number of rooms for each floor if it is not within the range of 1 and 30.
-The program should repeat the process of asking the number of rooms on the floor and number of occupied rooms if the total number of occupied rooms exceeds the total number of rooms on the floor.
Code:
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main() {
string location;
int i, floors, rooms[30], singleRoom[10], doubleRoom[10], kingRoom[10], suiteRoom[10];
int singleRoomRate = 60, doubleRoomRate = 75, kingRoomRate = 100, suiteRoomRate = 150;
int unoccupied, min;
double totalRooms = 0, occupiedRooms = 0, income = 0.0, occupancyRate;
int sum = 0;
cout << fixed << setprecision(2);
cout << "====================================================\n";
cout << right << setw(30) << "BlueMount Hotel\n";
cout << "====================================================\n";
cout << "Enter the Location of this hotel chain: ";
cin >> location;
cout << "Enter total number of floors of the hotel: ";
cin >> floors;
while (floors <= 0 || floors > 5) {
cout << "number of floors should be between 1 and 5 !! please try again.\n";
cout << "\nEnter total number of floors of the hotel: ";
cin >> floors;
}
for (i = 1; i <= floors; i++) {
cout << "\n\nEnter total number of rooms in the " << i << "th floor: ";
cin >> rooms[i];
while (rooms[i] <= 0 || rooms[i] > 30) {
cout << "number of rooms should be between 1 and 30 !! please try again.\n\n";
cout << "Enter total number of rooms in the " << i << "th floor : ";
cin >> rooms[i];
}
cout << "How many SINGLE rooms are occupied in the " << i << "th floor : ";
cin >> singleRoom[i];
cout << "How many DOUBLE rooms are occupied in the " << i << "th floor : ";
cin >> doubleRoom[i];
cout << "How many KING rooms are occupied in the " << i << "th floor : ";
cin >> kingRoom[i];
cout << "How many SUITE rooms are occupied in the " << i << "th floor : ";
cin >> suiteRoom[i];
sum = singleRoom[i] + doubleRoom[i] + kingRoom[i] + suiteRoom[i];
while (sum > rooms[i]) {
cout << "Total number of occupied rooms exceeds the total number of " <<
"rooms on this floor. Please try again!!";
sum = 0;
cout << "\n\nEnter total number of rooms in the " << i << "th floor : ";
cin >> rooms[i];
while (rooms[i] <= 0 || rooms[i] > 30) {
cout << "number of rooms should be between 1 and 30 !! please try again.\n\n";
cout << "Enter total number of rooms in the " << i << "th floor : ";
cin >> rooms[i];
}
cout << "How many SINGLE rooms are occupied in the " << i << "th floor : ";
cin >> singleRoom[i];
cout << "How many DOUBLE rooms are occupied in the " << i << "th floor : ";
cin >> doubleRoom[i];
cout << "How many KING rooms are occupied in the " << i << "th floor : ";
cin >> kingRoom[i];
cout << "How many SUITE rooms are occupied in the " << i << "th floor : ";
cin >> suiteRoom[i];
sum = singleRoom[i] + doubleRoom[i] + kingRoom[i] + suiteRoom[i];
}
}
cout << "\n\n================================================================================\n";
cout << right << setw(40) << "BlueMont Hotel located in " << location << endl << endl;
cout << right << setw(47) << "TODAY'S ROOM RATES<US$/night>" << endl << endl;
cout << right << setw(20) << "Single Room" << setw(20) << "Double Room" << setw(20) <<
"King Room" << setw(20) << "Suite Room";
cout << endl << endl;
cout << right << setw(20) << singleRoomRate << setw(20) << doubleRoomRate << setw(20) <<
kingRoomRate << setw(20) << suiteRoomRate;
cout << "\n===================================================================================\n";
for (i = 1; i <= floors; i++) {
income = income + (singleRoom[i] * singleRoomRate) +
(doubleRoom[i] * doubleRoomRate) + (kingRoom[i] * kingRoomRate) + (suiteRoom[i] * suiteRoomRate);
totalRooms = totalRooms + rooms[i];
occupiedRooms = occupiedRooms + singleRoom[i] + doubleRoom[i] + kingRoom[i] + suiteRoom[i];
}
unoccupied = totalRooms - occupiedRooms;
occupancyRate = (occupiedRooms / totalRooms) * 100;
cout << "\n" << right << setw(35) << "Hotel Income: " << right << setw(10) << "$" << income;
cout << "\n" << right << setw(35) << "Total # of rooms: " << right << setw(10) << totalRooms;
cout << "\n" << right << setw(35) << "Total # Occupied Rooms: " << right << setw(10) << occupiedRooms;
cout << "\n" << right << setw(35) << "Total # Unoccupied Rooms: " << right << setw(10) << unoccupied;
cout << "\n" << right << setw(35) << "Occupancy rate: " << right << setw(10) << occupancyRate << "%";
int r = 1;
min = rooms[1];
for (i = 2; i <= floors; i++) {
if (rooms[i] < min) {
min = i;
r = i;
}
}
cout << "\n\n" << r << "th Floor with " << rooms[r] << " rooms, has the least # of rooms.";
if (occupancyRate < 60) {
cout << "\nNeed to improve Hotel occupancy rate!!\n\n";
}
}
Output 1:
Output 2: