This question explores objects, classes, methods, selection and iteration as well as use of a collection. You may want to look up methods in the Java API documentation. You should be able to answer this question once you have completed Chapters 1-4.
In all questions, assume that sensible arguments are received by methods, unless otherwise stated.
As you answer the question parts you should provide multiline comments for your class, constructor, and methods. Make sure that your comments explain the purpose of the code and identify which part of the TMA question you are answering in each case.
For example, if you were answering part (d)(ii) of a question, and this involved writing a setter for a field onLoan, a suitable comment would be
/**
* (d)(ii) Set the onLoan field to the received value
*/
Scenario
A hotel allows interaction with a collection of rooms.
For example, a hotel has facilities to:
a.Launch BlueJ or any Java platforms. Note that this project does not contain any classes yet.
b. Now add the following private fields to the Room class:
c. Add a constructor to the class Room with the modifier and header
d. Now add the following public methods to the Room class:
e. Add a method to tell if the room is available or not, called isAvailable.
f. Add a method verifyRoom() that returns true if the room has a valid number, and otherwise returns false.
g. Add a method getType that returns a string describing the type of the room, based on the room number's third character. You may assume that the room number is valid.
h. Add a method called description that takes no parameters and returns a string describing the room, using the following format:
i. Go back and check that you have provided multiline comments for your class, constructor, and methods.
NEXT do the following, in the same project file
a. Make a public class called Hotel .
b. In the class Hotel add two private fields:
c. Add a public constructor with one String parameter called aName to the Hotel class.
d. Add The method addRooms which has been provided for you below
Use the following method
/**
* (d) Adds some unoccupied test rooms to the hotel
*/
public void addRooms()
{
int i = 10;
while (i < 19) {
String number = "" + i;
double rate;
if(i % 3 == 1) {
number += "A";
rate = 100;
}
else if (i % 3 == 2) {
number += "B";
rate = 180;
}
else
{
number += "C";
rate = 250;
}
Room r = new Room("", number, rate);
rooms.add(r);
i++;
}
}
Copy this method, which sets up a number of unoccupied rooms, to your Hotel class, so that you can use it to help you set up some rooms for testing purposes.
In your Solution Document, explain the following details of how the addRooms method works outside of the class and under a separate entry for part (d):
In the following parts, add public methods to the Hotel class using the given signatures. You will need to choose your own sensible formal parameter names.
e. calculateBill(Room, int) will calculate a bill for a room that is being vacated.
f. getMatchingRooms(String) receives the type of a Room as a parameter and returns an ArrayList of rooms in the hotel whose types match the parameter and which are unoccupied.
g. vacancies() takes no parameters and returns the number of vacancies in the hotel rooms list as an int, based on 1 vacancy for every single room, 2 for every double room, and 4 for every family room that is unoccupied.
h. bookRoom(Room) takes a Room as an argument and searches the rooms list for a room with a matching number. If a match is found, the hotel room concerned has its guest field set to a dummy value "Guest".
i. removeRoom(String) is used to take a room out of service.
j. Go back and check that you have provided multiline comments for your class, methods and constructor.
sec
sectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia puUnlock access to this and over
10,000 step-by-step explanations
Have an account? Log In
sectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet. Nam risus ante, dapibus a molestie consequat, ultrices ac magna. Fusce dui lectus, congue vel laoreet ac, dictum vitae odio. Donec aliquet. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam lacinia pulvinar tortor nec facilisis. Pellentesque dapibus efficitur laoreet.