Pages

Friday, 19 August 2016

Chapter 6 Exercise 7, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

*6.7 (Financial application: compute the future investment value) Write a method that computes future investment value at a given interest rate for a specified number of years. The future investment is determined using the formula in Programming Exercise 2.21. Use the following method header:

public static double futureInvestmentValue( double investmentAmount, double monthlyInterestRate, int years)

For example, futureInvestmentValue(10000, 0.05/12, 5) returns 12833.59. Write a test program that prompts the user to enter the investment amount (e.g., 1000) and the interest rate (e.g., 9%) and prints a table that displays future value for the years from 1 to 30, as shown below:

The amount invested: 1000
Annual interest rate: 9
Years Future Value
1        1093.80
2        1196.41
...
29      13467.25
30      14730.57

import java.util.Scanner;

public class Exercise6_7 {
 /** Main Method */
 public static void main(String[] args) {
  Scanner input = new Scanner(System.in); // Create a Scanner
  final int NUMBER_OF_YEARS = 30; // Number of years to display

  // Prompt the user to enter the investment amount and interest rate
  System.out.print("\nEnter investment amount: ");
  double amount = input.nextDouble();
  System.out.print("Enter annual interest rate in percentage: ");
  double annualInterestRate = input.nextDouble();

  // Get monthly interest rate
  double monthlyInterestRate = annualInterestRate / 1200;

  // Print a table that displays future value for the years from 1 to 30
  System.out.println("Years     Future Value"); // Table header
  for (int years = 1; years <= NUMBER_OF_YEARS; years++) {
   System.out.printf("%-10d", years);
   System.out.printf("%11.2f\n", 
    futureInvestmentValue(amount, monthlyInterestRate, years));
  }
 }

 /** Method futureInvestmentValue computes future investement value */
 public static double futureInvestmentValue(
  double investmentAmount, double monthlyInterestRate, int years) {
  return investmentAmount * Math.pow(1 + monthlyInterestRate, years * 12);
 }
}

2 comments :

  1. This is the solution for problem 6.6 NOT 6.7! How am I suppose to figure this out when you put in the completely wrong code!? Please fix!

    ReplyDelete
  2. @Bryan Zamora Lazo thank you for pointing out that. I had by mistake wrote 6.6 solution. I have fixed the solution. I really appropriate you guys trying to make these solutions better.

    ReplyDelete