Calculate and display the loan amount to two decimal places

Assignment Help JAVA Programming
Reference no: EM131269961

Java Programming Assignment 3: Expressions, class Methods, and Parameter passing

Problem Summary

A mortgage company would like you to help compute mortgage payments for its customers, when given a mortgage loan.

The mortgage company currently only issues 30-year mortgage loans, and always requires a 10% down payment to obtain a mortgage loan. Therefore, the Loan Amount will always be 90% of the Purchase Price (the price paid for the home).

To protect its interests, the mortgage company handles paying the property taxes and insurance on the property. Therefore, the monthly mortgage payment consists of three parts:

- property taxes
- insurance
- principle and interest for the loan

The property tax portion is computed as follows:

Home's Assessed Value = 85% of Purchase Price

Annual Property Taxes = 0.63% of Home's Assessed Value + $35.00 admin fee

For example, if the home's purchase price was $101,000.00

The assessed value would be $85,850.00
The annual property taxes would be $540.86 + 35.00 = $575.86
And the monthly property taxes would be $47.99

The insurance portion is computed as follows:

Annual Insurance Premium = 0.49% of Purchase Price Monthly premiums will be rounded to the nearest dollar.

For example, if the home's purchase price was $101,000.00

The annual insurance premium would be $494.90 And the monthly insurance cost would be $41.00

NOTES:

- The tax and insurance percentages are less than 1%, so make sure you enter the values correctly for calculations (i.e. 0.49% == 0.0049)

- Both annual property taxes and annual insurance premiums must be divided by 12 to obtain a monthly cost.

The principle and interest portion is computed as follows:

Monthly Loan Payment = factor x Monthly Interest Rate x Loan Amount factor - 1 where

factor = exp( Loan Length In Months x log(1 + Monthly Interest Rate) );

Predefined exp and log mathematical functions are located in the built-in java.lang.Math class.

The monthly interest rate will be 1/12th of the loan's annual interest rate. Be sure to also convert the percent entered by user (e.g. 5%) to an amount that can be used in calculations (e.g. 0.05).

For example, if the home's purchase price was $101,000.00 and the annual interest was 5%:

The loan amount would be $90,900.00 (after subtracting the down payment)

The monthly interest rate would be 0.00417

The loan length would be 360 months

So the monthly loan payment would be $487.97

NOTE: For hand calculating results to test your program, the equivalent algebraic equation for factor is:

factor = (1 + MonthlyInterestRate) TermInMonths

Overview of Program

In your last two Alice assignments, you:

- Created programs that were broken down into multiple methods.
- Used variables to store user input and calculation results.
- Used parameters and return values to pass information between methods.

This assignment will require you to do the same things in Java. This program will contain:

- A main method to read the inputs from the user, display some values, and call the other methods.
- A method (1) to display a description of what the program will do.
- A method (2) to compute the monthly property tax..
- A method (3) to compute the monthly insurance premium.
- A method (4) to compute the monthly principle and interest loan payment.
- A method (5) to compute and display the results of the program.

Program Requirements

Given the price paid for a home and the annual interest rate for a 30-year loan (both read from the user), compute the individual parts of a monthly mortgage payment, along with the total, as follows:

1. Create only one Java class for this program, named as follows:

LastnameJavaClassName For example: SmithMortgagCalculator

2. Implement the following methods, within this class:

NOTE: All of these methods should have descriptive names that include a verb, describing the methods action.

Method 1: A method to display an explanation of what the program will do to the user.

o This method will not have any parameters or a return value.

Method 2: A method to compute the monthly property tax. This method will:

o Have 1 parameter: the purchase price of the home
o Define and use three local (non-static) constants, that contain the values for:

- the percentage of the purchase price used to compute the home's assessed value
- the percentage of the home's assessed value used to compute the property tax
- the dollar amount of the admin fee

o Compute the monthly property tax using the formulas on page 1

o Return a double value: the monthly property tax payment

Method 3: A method to compute the monthly insurance premium. This method will:

o Have 1 parameter: the purchase price of the home

o Define and use a local (non-static) constant that contains the percentage of the purchase price used to compute the insurance premium.

o Compute the monthly insurance premium using the formulas on page 1

o Use the round method in the java.Math class to round the monthly insurance premium to a whole dollar amount.

o Return a double value: the rounded monthly insurance premium

Method 4: A method to compute the monthly principle and interest loan payment for a 30-year loan. This method will:

o Have 2 parameters:

- the loan amount
- the annual interest rate for the loan

o Define and use a local (non-static) constant that is set to the value of:

- the number of months in the loan period

o Use the exp and log methods from in the java.lang.Math class to calculate the factor
o Compute the monthly principle and interest loan payment using the formulas on page 1
o Return a double value: the monthly loan payment

Method 5: A method to compute and display the results, with no return value. This method will:

o Have 3 parameters:

- the monthly tax payment
- the monthly insurance premium
- the monthly principle and interest loan payment

o Calculate the total monthly mortgage payment
o Use the println and printf statements to:

- Display the header "Monthly Mortgage Payment"

- Display each of the parameter values (the three parts of the mortgage payment), to 2 decimal places, indented under the header and lined up on the decimal points

- Display a dashed addition line below the parts of the mortgage payment.

- Then display the total monthly mortgage payment. This total also be displayed to 2 decimal places, indented under the header, and should line up with the figures above.

3. Within the main method, write the Java code to:

NOTE: The main method will be defined first, at the top of the class, before all the other methods.

- Define and use a local (non-static) constant to hold the percentage of a home's purchase price that a loan will be issued for (used to compute loan amount), set to 90%.

Call method 1 to display the program description.

- Prompt for (using descriptive prompts) and read the user inputs (home's purchase price and loan's annual interest rate).

Sample Display and Input from main method

- Display a few blank lines to separate the input from the output.
- Calculate and display the loan amount to 2 decimal places.
- Call all the calculation methods (methods 2 - 4) to compute the three parts of the monthly mortgage payment, and save the results returned from each.
- Call the method 5 to display the final results.

Sample Output from method 5

Output must display exactly as shown: All decimal points in the payment components and total payment must line up with each other. And the descriptions must be indented 2 spaces.

4. You must also define and use:

o Local variables for each input or computed value, defined using descriptive names and appropriate data types.

WARNING: The methods must be implemented exactly as specified in these requirements.

Reference no: EM131269961

Questions Cloud

Paper on comparative politics : Submit your paper on Comparative Politics. Before you submit any work, be sure to check the Guidelines for Writing Research Papers in Course Materials. Your comparative politics paper will require you to write a 5-page research paper in which you ..
What are two defining goals of a database management system : Do you think that the single-file redundancy problem is more serious, less serious, or about the same as the multi file redundancy problem? Why?
Is the problem managerial or technical in nature : What factors might lead to redundant data across multiple files? Is the problem managerial or technical in nature?
How many words per minute should be able to handle : How long, to the nearest week, should it take the student to achieve 90 words per minute? How many words per minute should the student be able to handle by the end of the course?
Calculate and display the loan amount to two decimal places : Calculate and display the loan amount to 2 decimal places. Call all the calculation methods (methods 2 - 4) to compute the three parts of the monthly mortgage payment, and save the results returned from each.
Discuss how you have used that skill in your work life : Pick one of the listed skills and in your own words discuss how you have used that skill in your work life. Please Address the Following the problem or issue and the actions you took using that skill
Find the average number of voters during the period : The number of voters (in thousands) in a certain city is given.- Find the average number of voters during the period from t = 0 to t = 5.
Should data be considered a true corporate resource : Defend or refute the following statement: ‘‘Data is the most important corporate resource because it describes all of the others.''
What is sequential access and direct access : What is the difference between a record type and an occurrence of that record? Give some examples.

Reviews

Write a Review

JAVA Programming Questions & Answers

  Robot preparing for competition

Create an event so that the skateboard can be controlled by game player

  Create the mouse program

Question 1: Create the Mouse program. Test it with interesting data. Question 2: Modify the MouseDriver program you just created in Question #1. Currently, it uses the same value of growthRate for both mice. Change the program so it accepts a d..

  Problem regarding the java memory model

Draw a box-and-arrow illustration showing the order constraints on the memory actions (read, load, use, assign,store, write) associated with the four assignments that appear in the two threads (you do not need to show these actions for the two assg..

  Implement a probability calculator for the standard normal

implement a probability calculator for the standard normal distribution using GUI.

  Program to find maximum-minimum of sequence of values

Common task which should be done in loop is to find maximum and minimum of sequence of values. File Temps.java contains program which reads in sequence of hourly temperature readings over 24- hour period.

  Create a class with a method that accepts a charge card acnt

Create a class with a method that accepts a charge card account number as its argument. The method should determine whether the number is valid by comparing it with a list of valid charge card account numbers

  Make a program in java language with classes

Make a program, in JAVA language with classes, that simulates health attending in one business day, according to the information just given.

  Mvc pattern and servlet

When you use the MVC pattern, the controller directs the flow of control to

  Write a program that illustrates packet routing at a router

Write a program that illustrates packet routing at a router. The program should accept as A text file containing a list of packets (with just destination addresses)

  Javas drawing capabilities

This week, we will be learning to use some of Java's drawing capabilities. The Graphics class provides methods for drawing many different shapes, using different colors, and for drawing strings using different fonts.

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Explain getters and setters in java

A constructor will allow a name and a new, validated subject code to be provided when a new subject is created.

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