Post a New Question

programming

posted by .

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 -

    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 -

    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 -

    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 -

    I got it. Thanks so much. You're awesome.

  • programming :) -

    You did most of the work, so you deserve the credit too!

Answer This Question

First Name
School Subject
Your Answer

Related Questions

More Related Questions

Post a New Question