Posted by AB on Tuesday, May 22, 2012 at 9:00pm.
A hotel’s occupancy rate is calculated as follows: Occupancy rate = number of rooms occupied total number of rooms Write a program that calculates the occupancy rate for each fl oor of a hotel. The program should start by asking for the number of fl oors in the hotel. A loop should then iterate once for each fl oor. During each iteration, the loop should ask the user for the number of rooms on the fl oor and the number of them that are occupied. After all the iterations, the program should display the number of rooms the hotel has, the number of them that are occupied, the number that are vacant, and the occupancy rate for the hotel. Input Validation: Do not accept a value less than 1 for the number of floors. Do not accept a number less than 10 for the number of rooms on a floor.
**I believe I have the program done correctly, I just can't figure out how to get it not to accept a number less than 10 for the number of rooms on a floor.** Here is the code:
package hotel;
import java.util.Scanner;
public class Hotel {
public static void main(String[]args) {
int floors, occupiedRooms = 0, totalRooms = 0;
Scanner input = new Scanner(System.in);
System.out.print("How many floors are present: ");
floors = input.nextInt();
for(int i = 1; i <= floors; i++) {
System.out.print("Level " + i + ": How many rooms are there: ");
int totalRoomsOnLevel = input.nextInt();
System.out.print("Level " + i + ":How many are occupied: ");
int occupiedRoomsOnLevel = input.nextInt();
System.out.println();
totalRooms += totalRoomsOnLevel;
occupiedRooms += occupiedRoomsOnLevel;
}
System.out.println();
System.out.println("Total hotel rooms: " + totalRooms);
int vacantRooms = totalRooms - occupiedRooms;
System.out.println("Total vacant rooms: " + vacantRooms);
double occupancyRate = (double)occupiedRooms / totalRooms;
System.out.println("Occupancy rate: " + occupancyRate);
}
}
- programming - MathMate, Tuesday, May 22, 2012 at 9:40pm
Your code looks carefully thought out.
For making sure there are 10 storeys or more, you can modify the input segment:
System.out.print("How many floors are present: ");
floors = input.nextInt();
while(floors<10){
// print Number of floors must be at least 10
floors = input.nextInt();
}
But this would continue indefinitely until user enters a number greater than 10.
A better way is to use a for-loop to loop a maximum (say 5) of times after which a message will appear and the program terminates.
- programming - AB, Tuesday, May 22, 2012 at 9:59pm
I'm sorry. I think I was confusing. There can't be less than 1 for the number of floors, but has to be at least 10 for the number of rooms on a floor.
- programming - MathMate, Tuesday, May 22, 2012 at 10:05pm
It would be along the same lines, just change floors to rooms, and for floors, change 10 to 1 for the number of floors.
- programming - AB, Tuesday, May 22, 2012 at 10:59pm
I got it. Thanks so much. You're awesome.
- programming :) - MathMate, Wednesday, May 23, 2012 at 2:51pm
You did most of the work, so you deserve the credit too!
Answer this Question
Related Questions
math/algebra - I need help in solving this word problem using linear system ...
Math - A local motel has 100 rooms. The occupancy rate for the winter months is ...
Production & Operations Mgmt in Business - If someone could help me, I am ...
Algebra - I have two questions... 1.Lenear system...If you are painting the ...
statistics - Consider the average available for all hotel rooms from the ...
BUSSINESS STATISTICS - Consider the average available for all hotel rooms from ...
Managerial Economics - A CA resort offers year-round activities and the resort...
Managerial Economics - A CA resort offers year-round activities and the resort...
math - a hotel chain charges $120 per room and rents an avg of 40 rooms per ...
math - a hotel chain charges $120 per room and rents an avg of 40 rooms per ...
For Further Reading