Reference no: EM132358289
Advanced Programming Assignment -
You are required to implement a basic Java program using Java Standard Edition 8.0 or higher. This assignment is designed to:
- Practise your knowledge of design classes in Java.
- Practise the implementation of various kinds of classes in Java.
- Practise the use of polymorphism.
Overview -
NOTE: Carefully read this document. In addition, regularly follow the Canvas assignment discussion board for assignment related clarifications and discussion.
For this assignment you need to write a console application in the Java programming language which allows a hotel named CityLodge to manage the renting and maintenance of two types of hotel rooms: standard hotel rooms and suites.
Common Features of All Hotel Rooms - Each hotel room managed by CityLodge has the following attributes:
- Room id: a string which uniquely identifies each room. A room id must begin with R_ if the room is a standard hotel room and S_ if the room is a suite. For example R_108 or S_559.
- Number of beds: a standard room can have either 1, 2, or 4 beds. A suite always has 6 beds.
- Feature summary: a short string (maximum 20 words) to summarise all the room features. For example "air conditioning, cable TV, Wifi, fridge, electric kettle".
- Room type: CityLodge currently has two types of rental rooms: standard room and suite. For simplicity, we use two values for room type: i.e. Standard and Suite. The different characteristics of those types of rooms are described in the sections below.
- Room status: employees of CityLodge inspect this attribute to determine whether the room is currently available for rent or being rented or under maintenance. For simplicity, we use three values for room status: i.e. Available, Rented and Maintenance.
Furthermore, each room also keeps its own collection of Hiring Records, i.e information about the 10 most recent times that room has been rented. Details of a hiring record is shown in attached file.
Implementation Requirements - Your Hiring Record class must meet the following requirements:
- Override the public String toString() method to return a string containing the details of a hiring record.
- Implement a public String getDetails() method. This method should build a string and return that string. The returned string should be formatted in a human readable form as shown below. This method MUST NOT do the actual printing to the console.
Start-up Class - You should create a startup class which contains a main method in which an object of the CityLodge class is created and a single method is called on that object to run the entire CityLodge application.
General Implementation Requirements -
- You are required to modularise classes properly. No method should be longer than 50 lines.
- You should aim to provide high cohesion and low coupling.
- You should aim for maximum encapsulation and information hiding.
- Your coding style should be consistent with Java coding conventions.
- You should comment important sections of your code remembering that clear and readily comprehensible code is preferable to a comment.
- Your programs will be marked with Java SE 8.0. Make sure you test your programs with this setting before you make the submission.
Design Requirements -
You must work out an object design for the above task. You should take advantage of object-oriented concepts such as composition, inheritance, method overriding, abstract classes, interfaces wherever appropriate.
Class hierarchies, relationships and components must be conceptualised in a relevant manner, based on the problem description and special conditions listed in this document. Furthermore, you must be able to explain how your program design will perform in certain scenarios and circumstances.
It may be necessary for your design to provide more functionality, such as accessors and mutators, than is specified in the above sections here for the mechanics of your design to work.
Attachment:- Advanced Programming Assignment File.rar