LoanCalculator - MSCS

mammetlizardlickSoftware and s/w Development

Nov 3, 2013 (4 years and 5 days ago)

58 views




LoanCalculator.java


Input:



amount of a loan (double)



annual rate of interest (double)



loan period


i.e. the number of years to repay the loan (int)


Output:



echo print the user input values (always)



the mont
h
ly payment



the total payment over the len
gth of the loan




Let: A = the amount of the loan


R = the monthly rate of interest


N = the number of monthly payments



monthlyPayment =
N
R








1
1
1
R
*

A


All files are at:
http://www.mscs.mu.edu/~marian/60/ClassExamples/03LoanCalculator



TheLoanCalculator.java


Modifies the existing
LoanCalculator.java

by introducing a
java.util.Scanner
, which is
new to Java 1.5.0.


The final version introduces

error


checking of the input using an if


LoanCalculator1.java



/* Author: Wu (revised)


*Purpose: User inputs amount of loan, annual interest rate and


* time in years (integer) for repayment. Output is


* the monthly payment and the

total repayment.


*/


import javax.swing.*;


class LoanCalculator

{


public static void main (String[] args)


{


double loanAmount,


annualInterestRate;



int loanPeriod;


String inputStr;



//get inp
ut values


inputStr = JOptionPane.showInputDialog(null,


"Loan Amount (Dollars+Cents):");


loanAmount = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDial
og(null,


"Annual Interest Rate (e.g., 9.5):");


annualInterestRate = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDialog(null,


"Loan Period
-

# of years:");


loanPeriod = Integer.parseInt(inputStr);



//echo print the input values


System.out.println("Loan Amount: $" + loanAmount);


System.out.println("Annual Interest Rate: " + annualInterestRate +
"%");


System.out.println("Loan Period (years): " + loanPeriod);


}

}



/********* The output *********


Loan Amount: $100000.0

Annual Interest Rate: 6.0%

Loan Period (years): 30

*/

LoanCalculator2.java

import javax.swing.*;


clas
s LoanCalculator

{


public static void main (String[] args)


{


double loanAmount,


annualInterestRate,


monthlyPayment,


totalPayment;



int loanPeriod;



String inputStr;




//get input values


inputStr = JOptionPane.showInputDialog(null,


"Loan Amount (Dollars+Cents):");


loanAmount = Double.parseDouble(inputStr);



inputStr = JOptionPane.
showInputDialog(null,


"Annual Interest Rate (e.g., 9.5):");


annualInterestRate = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDialog(null,


"
Loan Period
-

# of years:");


loanPeriod = Integer.parseInt(inputStr);



//compute the monthly and total payments


monthlyPayment = 132.15;


totalPayment = 15858.10;



//display the result


System.out.pri
ntln("Loan Amount: $" + loanAmount);


System.out.println("Annual Interest Rate: " + annualInterestRate + "%");


System.out.println("Loan Period (years): " + loanPeriod);



System.out.println("
\
n"); //skip two lines


System.out.println("Monthly payment is $ " + monthlyPayment);


System.out.println(" TOTAL payment is $ " + totalPayment);


}

}


/********** Output **********

Loan Amount: $100000.0

Annual Interest Rate: 6.0%

Loan Period (years):

30



Monthly payment is $ 132.15


TOTAL payment is $ 15858.1

*/

LoanCalculator3.java

import javax.swing.*;


class LoanCalculator

{



public static void main (String[] args)


{


final int MONTHS_IN_YEAR = 12;



double loanAmo
unt,


annualInterestRate,


monthlyPayment,


totalPayment,


monthlyInterestRate;



int loanPeriod,


numberOfPayments;



String inputStr;



//get input value
s


inputStr = JOptionPane.showInputDialog("Loan Amount (Dollars+Cents):");


loanAmount = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDialog(


"Annual Inter
est Rate (e.g., 9.5):");


annualInterestRate = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDialog("Loan Period
-

# of years:");


loanPeriod = Integer.parseInt(inputStr);




//compute the mon
thly and total payments


monthlyInterestRate = annualInterestRate / MONTHS_IN_YEAR / 100;


numberOfPayments = loanPeriod * MONTHS_IN_YEAR;



monthlyPayment = (loanAmount * monthlyInterestRate) /


(1
-

Math.pow(1/(1 + mont
hlyInterestRate), numberOfPayments ) );



totalPayment = monthlyPayment * numberOfPayments;



//display the result


System.out.println("Loan Amount: $" + loanAmount);


System.out.println("Annual Interest Rate: " + an
nualInterestRate + "%");


System.out.println("Loan Period (years): " + loanPeriod);



System.out.println(


"
\
nMonthly payment is $ " + monthlyPayment +


"
\
n TOTAL payment is $ " + totalPayment);


}

}



/******
**** Outout **********

Loan Amount: $100000.0

Annual Interest Rate: 6.0%

Loan Period (years): 30


Monthly payment is $ 599.5505251527582


TOTAL payment is $ 215838.18905499292

*/
LoanCalculator.java


/* Author: Wu (revised)


*Purpose:

User inputs amount of loan, annual interest rate and


* time in years (integer) for repayment. Output is


* the monthly payment and the total repayment.


*/


import javax.swing.*;

import java.text.*;


class LoanCalculator

{


public sta
tic void main (String[] args)


{


final int MONTHS_IN_YEAR = 12;



double loanAmount,


annualInterestRate,


monthlyPayment,


totalPayment,


monthlyInterestRate;



int
loanPeriod,


numberOfPayments;



String inputStr;



DecimalFormat df = new DecimalFormat("0.00");



//describe the program


System.out.println(


"
\
nThis program computes the monthly and total" +



"
\
npayments for a given loan amount, annual " +


"
\
ninterest rate, and loan period." +


"
\
nLoan amount in dollars and cents, e.g., 12345.50" +


"
\
nAnnual interest rate in percentage, e.g., 12.75" +


"
\
nLoan per
iod in number of years, e.g., 15");



//get input values


inputStr = JOptionPane.showInputDialog("Loan Amount (Dollars+Cents):");


loanAmount = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDialog(



"Annual Interest Rate (e.g., 9.5):");


annualInterestRate = Double.parseDouble(inputStr);



inputStr = JOptionPane.showInputDialog("Loan Period
-

# of years:");


loanPeriod = Integer.parseInt(inputStr);



//compute th
e monthly and total payments


monthlyInterestRate = annualInterestRate / MONTHS_IN_YEAR / 100;


numberOfPayments = loanPeriod * MONTHS_IN_YEAR;



monthlyPayment = (loanAmount * monthlyInterestRate) /


(1
-

Math.pow(1/(1
+ monthlyInterestRate), numberOfPayments));



totalPayment = monthlyPayment * numberOfPayments;



//display the result


System.out.println(


"
\
nLoan Amount: $" +
df.format(loanAmount)

+


"
\
nAnnual Inter
est Rate: " +
df.format(annualInterestRate)

+ "%" +


"
\
nLoan Period (years): " + loanPeriod +


"
\
n" + //skip a line


"
\
nMonthly payment is $ " +
df.format(monthlyPayment)

+


"
\
n TOTAL payment is
$ " +
df.format(totalPayment))
;


}

}


/****************** Output ******************

This program computes the monthly and total

payments for a given loan amount, annual

interest rate, and loan period.

Loan amount in dollars and cents, e.g., 12345.50

An
nual interest rate in percentage, e.g., 12.75

Loan period in number of years, e.g., 15


Loan Amount:
$100000.00

Annual Interest Rate:
6.00%

Loan Period (years): 30


Monthly payment is
$ 599.55


TOTAL payment is
$ 215838.19

*/


TheLoanCa
lculator
1
.java


Uses

a
java.util.Scanner

object

instead of an InputDialog


Only the code that has been changed is shown.

...

indicates missing code that

is

identical to the final version of
LoanCalculator.java


import java.util.*;

import java.text.*;


cla
ss TheLoanCalculator

{


public static void main (String[] args)


{



// ... variable declarations ...



Scanner scanner = new Scanner(System.in);



//
...
describe the program

...



//get input values


System.out.pr
int("Loan Amount (Dollars+Cents): ");


loanAmount = scanner.nextDouble();



System.out.print("Annual Interest Rate (e.g., 9.5): ");


annualInterestRate = scanner.nextDouble();



System.out.print("Loan Period
-

# of years: ");



loanPeriod = scanner.nextInt();



//
...
compute the monthly and total payments

...



//
...
display the result
...


}

}


/****************** Output ******************

This program computes the monthly and total

payments for a given lo
an amount, annual

interest rate, and loan period.

Loan amount in dollars and cents, e.g., 12345.50

Annual interest rate in percentage, e.g., 12.75

Loan period in number of years, e.g., 15



Loan Amount (Dollars+Cents): 100000

Annual Interest Rate (e.g., 9.
5): 5.8

Loan Period
-

# of years: 20


Loan Amount: $100000.00

Annual Interest Rate: 5.8%

Loan Period (years): 20


Monthly payment is $ 704.94


TOTAL payment is $ 169185.83

*/



TheLoanCalculator.java


Add Error Checking to the Input St
atements


New code that is added to the existing TheLoanCaluclator.java is shown and highlighted.



//get input values


System.out.print("Loan Amount (Dollars+Cents): ");


loanAmount = scanner.nextDouble();


if(loanAmount <= 0)


{


System.out.println(


"
\
nERROR
-

The loan amount must be greater than or equal to 0");


System.exit(0);


}



System.out.print("Annual Interest Rate (e.g., 9.5): ");


annualInterestRate = s
canner.nextDouble();


if(annualInterestRate <= 0)


{


System.out.println(


"
\
nERROR
-

The interest rate must be greater than or equal to 0");


System.exit(0);


}



System.out.print("Loan Peri
od
-

# of years: ");


loanPeriod = scanner.nextInt();


if(loanPeriod <= 0)


{


System.out.println(


"
\
nERROR
-

The loan period must be greater than or equal to 0");


System.exit(0);


}


/****
****************** Output ********************


This program computes the monthly and total

payments for a given loan amount, annual

interest rate, and loan period.

Loan amount in dollars and cents, e.g., 12345.50

Annual interest rate in percentage, e.g.,
12.75

Loan period in number of years, e.g., 15



Loan Amount (Dollars+Cents):
-
10000


ERROR
-

The loan amount must be greater than or equal to 0



***************************


This program computes the monthly and total

payments for a given loa
n amount, annual

interest rate, and loan period.

Loan amount in dollars and cents, e.g., 12345.50

Annual interest rate in percentage, e.g., 12.75

Loan period in number of years, e.g., 15



Loan Amount (Dollars+Cents): 2000

Annual Interest Rate (e.g., 9.5):

-
1


ERROR
-

The interest rate must be greater than or equal to 0


*/