Write a console application in the java programming language

Assignment Help JAVA Programming
Reference no: EM132062600

Computer Science and Information Technology

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 company called FlexiRent to manage the renting and maintenance of various types of rental apartments in Melbourne CBD. Unlike traditional hotels, FlexiRent offers stylish 1, 2, and 3­bedroom Apartments and Premium Suites for short­term stays in Melbourne.

Implementation Requirements

General Implementation Requirements

• Although you are not required to use more than one class per task, 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.
• It is not necessary to use dynamic data structures to store the input data (i.e. it is fine to define a fixed size data structure taking into account the maximum possible amount of input data).
• Your programs will be marked with Java SE 8.0. Make sure you test your programs with this setting before you make the submission.

Main Implementation Requirements

Your Rental Record class must meet the following requirements:

• Override the public String toString() method to print the details of a rental record in the following format:

recordId:rentDate:estimatedReturnDate:actualReturnDate:rentalFee:lateFee
(notice how the colon is used as a separator)

• 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 SHOULD NOT do the actual printing to the console. Please refer to the following examples:

Implementation requirements for all rental property classes (Apartment and Premium Suite)

Each rental property must maintain its own collection of rental records. These records store information about the 10 most recent times that property has been rented.

• In assignment 1, you are required to use an array to implement that rental record collection, in which the first element of the array is always the latest rental record, the second element of the array is always the second latest rental record, and so on.

• If the rental record array is full, then the oldest rental record (the one at array index number 9) will be removed.Then all rental records in the array will be shifted to the next position in the array while their orders are preserved, and the latest record will be inserted at the beginning of the array (at array index number 0).

The following methods can be called on any object of type Apartment or Premium Suite:

(Hint: implementing these methods is a good chance for you to apply inheritance and polymorphism in your code)

public boolean rent(String customerId, DateTime rentDate, int numOfRentDay)

This method is called on a rental property object (either an Apartment or a Premium Suite) to perform the operations required to rent this property.

This method should check for pre­conditions to determine if that property can be rented. For example, this method will return false when that property is currently being rented or is under maintenance. You should check any other possible conditions which would make this method return false.

If the property is available for rent, this method will perform all necessary operations to update the information stored in this property object based on the input parameters. For example, updating the property status, creating a new rental record, updating the rental record array, and any other operations you consider necessary.

Finally, this method will return true if the property can be rented successfully.

public boolean return(DateTime returnDate)

This method is called on a rental property object (either an Apartment or a Premium Suite) to perform the operations required to return this property.

This method should check for pre­conditions to determine if that property can be returned. For example, this method will return false when the given returnDate is prior to the rentDate stored in the rental record. You should check any other possible conditions which would make this method return false.

If the property can be returned, this method will perform all necessary operations to update the information stored in this property object based on the input parameters. For example, updating

the property status, updating the corresponding rental record with the rental fee, the late fee, and any other operations you consider necessary.

Finally, this method will return true if the property can be returned successfully.

public boolean performMaintenance()

This method is called on a rental property object (either an Apartment or a Premium Suite) to perform the operations required to perform the maintenance of that property

This method should check for pre­conditions to determine if maintenance operations can be performed in that property. For example, this method will return false when the property is currently being rented. You should check any other possible conditions which would make this method return false.

If the property is ready for maintenance, this method will perform all necessary operations to update the information stored in this property object when a maintenance happens. Finally, this method will return true if the property is now under maintenance.

public boolean completeMaintenance(DateTime completionDate)

This method is called on a rental property object (either an Apartment or a Premium Suite) to perform the operations required when the maintenance of that property is finished.

This method should check for pre­conditions. For example, when this property is currently being rented, it does not make sense to call completeMaintenance method on this property object, and therefore this method should return false. You should check any other possible conditions which would make this method return false.

If it is possible to complete maintenance, this method will perform all necessary operations to update the information stored in this property object now that maintenance has been finished. Finally, this method will return true to indicate that the maintenance of this property has finished.

public String toString()

This method should build a string and return it to the calling method. The returned string should be formatted in a pre­defined format as shown below:

propertyId:streetNumber:streetName:suburb:propertyType:numOfBedRoom:status

(Notice how the colon is used as a separator. If that property is a Premium Suite, the attribute lastMaintenanceDate is appended.)

Example 1: A 2­bedroom Apartment is available for rent, having id A_108CRSB and address 108, City Road, Southbank. Calling toString should return the following line:

A_108CRSB:108:City Road:Southbank:Apartment:2:Available

Example 2: A Premium Suite is currently being rented, having id S_63WMSB and address 63, Whiteman Street, Southbank, and its last maintenance date is 22/07/2018. Calling toString should return the following line:

S_63WMSB:63:Whiteman Street:Southbank:Premium Suite:3:Rented:22/07/2018

public String getDetails()

This method should build a string and return it to the calling method. This method SHOULD NOT do the actual printing. The returned string contains all information about the rental property, including details about up to 10 most recent rental records of that property. The returned string should be formatted in a pre­defined human readable format.

Implementing the FlexiRentSystem application class

You are required to implement a class named FlexiRentSystem which will contain one single array to store up to 50 objects of both type Apartment and Premium Suite. Objects of type Apartment and Premium Suite will be added during runtime by the user of your program in the command line using a menu system described below.

Your FlexiRentSystem class should present the following menu for employees of FlexiRent company to manage rental properties.

User should enter a number from the menu above to select an option. If the input is outside of that range, an error message should be displayed and the menu should be re­displayed. When a valid number is entered, your program should execute the corresponding method and then return to the menu. Your program should exit if the user selects the Exit Program option.

You may use a sub menu under an option.

All output data should be printed to the standard output.

Following is a description of each feature provided by the menu above:

Add Property

The user (an employee of FlexiRent) selects this option to create a new rental property. The user can enter all relevant details of a new property, such as property id, property type, street number, street name, suburb, number of bedrooms, (last maintenance date if it is a Premium Suite)

You should perform all necessary data validation, for example, invalid property id or property id already exists. If there is an error, your program should print an appropriate error message to the console should go back to the menu immediately without creating or storing a new rental property.

Rent Property

By selecting this option, an employee of FlexiRent can then enter a property ID and enter relevant information for a customer to rent that property.

Return Property

By selecting this option, an employee of FlexiRent can then enter a property ID and a return date to return that property. If a return is successful, your program should print all relevant information about that property, including information about the latest rental record. See the example below.

You should perform all necessary data validation, for example, if that property is currently under maintenance, it's not reasonable to return that property.

Property Maintenance

By selecting this option, an employee of FlexiRent can then enter a property ID to put that property under maintenance. You should perform all necessary data validation to avoid any unreasonable scenario.

Complete Maintenance

By selecting this option, an employee of FlexiRent can then enter a property ID to complete maintenance of that property. From the ID, if that property is a Premium Suite, then the system will prompt the employee to enter a maintenance completion date.

Display All Properties

By selecting this option, an employee of FlexiRent can see on the Console all information about all rental properties stored in the system, including details about up to 10 most recent rental records of each property. (Hint: calling the getDetails method on each rental property object)

Start­up Class.

You should create a startup class which contains a main method in which an object of the FlexiRentSystem class is created and a single method is called on that object to run the entire FlexiRentSystem application.

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:- Assignment - Advanced programming.rar

Verified Expert

This is a console based application for flexirent using Java Programming language. It is implemented using object oriented programming language such are inheritance, abstraction, information hiding, etc..

Reference no: EM132062600

Questions Cloud

How much will the investment be worth at end of year four : You have just purchased an investment that generates the cash flows shown below for the next four years. You are able to reinvest these cash flows.
Determine the mass of oxygen produced : Determine the mass of oxygen produced if 4.86 g of the peroxide decomposes.
What is the expected concentration of chloride ions : The concentration of cobalt(ll) ions is found to be 0.23 mol/L. What is the expected concentration of chloride ions?
Determine what is the current market value : You have just purchased a six-month, $640,000 negotiable CD, which will pay a 5.5 percent annual interest rate.
Write a console application in the java programming language : COSC1295 Advanced Programming - Computer Science and Information Technology - write a console application in the Java programming language
Calculate the amount of phosphoric acid : Calculate the amount of phosphoric acid, in moles, that is in 50.3 mL of a 4.62 mol/L phosphoric acid solution.
What price do you need if you expect to sell the share : You have just purchased a share of stock for $21.96. The company is expected to pay a dividend of $0.68 per share in exactly one year.
Calculate the mass required to make 250 ml : A student was instructed to prepare 250 mL of a 0.500 mol/L solution potassium permanganate. What is the correct order for this
Calculate the return on equity in the given years : What is the return on equity in 2015? What is the price-earnings ratio in 2015 if the stock price is $25 per share?

Reviews

len2062600

7/23/2018 4:57:37 AM

need assignment help for advanced programming and below is the assignment details. Its is very important to check plagiarism. Please read carefully all information shown below: You can ask questions about this assignment in the Discussion page Submission due date: 11:59 PM on 9th (end of Week 5) This is an individual assignment. Group work is not allowed. This assignment is worth 15% towards your final grade. A more detailed marking rubric will be provided closer to submission. You are required to implement this assignment using Java SE 8.0 or higher. Your programs will be marked with Java SE 8.0. Make sure you test your programs with this setting before you make the submission. You are allowed multiple submissions however only the final one will be marked. Standard RMIT Late penalty of 10% per day (of full marks) applies (to a maximum of 5 days after which time assignment will not be accepted unless special consideration applies).

len2062600

7/23/2018 4:53:04 AM

Introduction This assignment is worth 15% towards your final grade. NOTE ? This assignment is of a size and scope that can be done as an individual assignment. Group work is not allowed. ? A more detailed marking rubric will be provided closer to submission. 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 You must submit a zip file of your project via Canvas. You can submit your assignment as many times as you would like prior to the due date. The latest submission will be graded. This assignment has a lab demo component in Week 5. Details will be posted later on the course announcement. Design documents should be in one of the following formats only and should be named as design (e.g. design.doc, design.pdf, design.gif, design.jpg or design.png) ? Microsoft Word format (must be compatible with Microsoft Word on RMIT CS terminals) ? Adobe PDF format ? GIF, PNG or JPEG image format (please do NOT submit BMP files)

Write a Review

JAVA Programming Questions & Answers

  Write a java class which implements methods

write a Java class which implements methods to perform symbolic computations on fractions. The input to your program will be 2 arrays which you will transform

  Calculate the optimal position of the large pipeline

Your task is to calculate the optimal position (on the y-axis) of the large pipeline, so that the total length of all smaller pipelines is shortest

  Sequence of method in vector class

Construct a Vector class implementing a number of vector operations as methods along with a testing program to verify the class is working.

  Evaluate the sorting algorithms

Create an Evaluator class that will evaluate the sorting algorithms you learned about in this chapter - evaluate each sorting algorithm with each of the 3 array

  Program that interviews the users about name

I need a program that interviews the users about their name, how many houses they have and what the purchase price was for each of their houses.

  Discuss auto backup for android applications

What are the different data types supported as preference-setting values? What is the directory on the Android file system that stores application Preference XML files? Discuss Auto Backup for Android Applications.

  Write a java application that allows the user to read

Write a java application that allows the user to read, validate, store, display, sort and search the internet account number (integer number), usage (integer number) and cost (double number) for N customers. N should be declared as a constant and it ..

  What is the output of this code sequence

What is the output of this code sequence

  Class that displays your favorite movie quote

Write, compile, and test a class that displays your favorite movie quote, the movie it comes from, the character who said it, and the year of the movie.

  Write java program that display a welcoming message

Write a complete Java program with the following specifications: Display a welcoming message such as: "Welcome to Cubing Program!" Prompt the user twice to enter two positive whole numbers, indicating starting and finishing values, first one being s..

  Modify the java application using netbeans ide

Modify the Week Three Java application using NetBeans IDE to meet these additional and changed business requirements The application will now compare the total annual compensation of at least two salespersons.

  Describe creating java programs to calculate the squares

Using a while loop, write the square of all integer numbers from 0 to 10 make the program calculate the squares

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd