Use this link to download the file needed. : https://www.murach.com/shop/murach-
ID: 3675779 • Letter: U
Question
Use this link to download the file needed. :
https://www.murach.com/shop/murach-s-java-programming-detail
: Just scroll down to the free downloads box & click on it. the file is THERE.
Note: stick with the directions please.
Use the sort method of the Arrays class of sort the values, in the Array, and print the median value (the 50th value)on the console followed by a blank line, then, test this enhancement. Print the 9th value of the array on the console and every 9th value after that . Then, test this enhancement. This exercise guides you through the process of adding a rectangular array to the Future Value application. This array will store the values for up to ten of the calculation that are performed .When the program ends, it wil print a summary of those calculations that looks something like this: open the project named Future value in ex starts directory. then, review the code and run the application to make sure it works correctly. Declare variables at the beginning of the main method for a row counter and a rectangular array of strings that provides for 10 rows and 4 columns. After the code that calculates, formats, and displays the results for each calculation , add code that stores the formatted values as strings in the next row of the array. Add code to display the elements in the array at the console when the user indicates that the program should end. The output should be formatted as shown above and should only include the rows that contain data. then , test the program by making up to 10 future value calculations.Explanation / Answer
import java.util.*;
import java.text.*;
public class FutureValueApp
{
public static void main(String[] args)
{
int rowCounter = 0;
String[][] array = new String[10][4];
// display a welcome message
System.out.println("Welcome to the Future Value Calculator");
System.out.println();
// perform 1 or more calculations
Scanner sc = new Scanner(System.in);
String choice = "y";
while (choice.equalsIgnoreCase("y"))
{
// get the input from the user
System.out.println("DATA ENTRY");
double monthlyInvestment = getDoubleWithinRange(sc,
"Enter monthly investment: ", 0, 1000);
double interestRate = getDoubleWithinRange(sc,
"Enter yearly interest rate: ", 0, 30);
int years = getIntWithinRange(sc,"Enter number of years: ", 0, 100);
// calculate the future value
double monthlyInterestRate = interestRate/12/100;
int months = years * 12;
double futureValue = calculateFutureValue(
monthlyInvestment, monthlyInterestRate, months);
// get the currency and percent formatters
NumberFormat currency = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();
percent.setMinimumFractionDigits(1);
// format the result as a single string
String results =
"Monthly investment: "
+ currency.format(monthlyInvestment) + " "
+ "Yearly interest rate: "
+ percent.format(interestRate/100) + " "
+ "Number of years: "
+ years + " "
+ "Future value: "
+ currency.format(futureValue) + " ";
// storing the result in 2-D array
array[rowCounter][0] = currency.format(monthlyInvestment);
array[rowCounter][1] = percent.format(interestRate/100);
array[rowCounter][2] = Integer.toString(years);
array[rowCounter][3] = currency.format(futureValue);
rowCounter ++;
System.out.println();
System.out.println("FORMATTED RESULTS");
System.out.println(results);
// see if the user wants to continue
System.out.print("Continue? (y/n): ");
choice = sc.next();
System.out.println();
}
System.out.println();
System.out.println("Future Value Calculations ");
System.out.println("Inv/Mo. Rate Years Future Value");
for(int i = 0; i < rowCounter; ++i) {
for (int j =0; j<4 ;j++ ) {
System.out.print(array[i][j]);
System.out.print(" ");
}
System.out.println("");
}
}
public static double getDouble(Scanner sc, String prompt)
{
boolean isValid = false;
double d = 0;
while (isValid == false)
{
System.out.print(prompt);
if (sc.hasNextDouble())
{
d = sc.nextDouble();
isValid = true;
}
else
{
System.out.println("Error! Invalid decimal value. Try again.");
}
sc.nextLine(); // discard any other data entered on the line
}
return d;
}
public static double getDoubleWithinRange(Scanner sc, String prompt, double min, double max)
{
double d = 0;
boolean isValid = false;
while (isValid == false)
{
d = getDouble(sc, prompt);
if (d <= min)
System.out.println(
"Error! Number must be greater than " + min + ".");
else if (d >= max)
System.out.println(
"Error! Number must be less than " + max + ".");
else
isValid = true;
}
return d;
}
public static int getInt(Scanner sc, String prompt)
{
boolean isValidInt = false;
int i = 0;
while (isValidInt == false)
{
System.out.print(prompt);
if (sc.hasNextInt())
{
i = sc.nextInt();
isValidInt = true;
}
else
{
System.out.println("Error! Invalid integer value. Try again.");
}
sc.nextLine(); // discard any other data entered on the line
}
return i;
}
public static int getIntWithinRange(Scanner sc, String prompt,int min, int max)
{
int i = 0;
boolean isValid = false;
while (isValid == false)
{
i = getInt(sc, prompt);
if (i <= min)
System.out.println(
"Error! Number must be greater than " + min + ".");
else if (i >= max)
System.out.println(
"Error! Number must be less than " + max + ".");
else
isValid = true;
}
return i;
}
public static double calculateFutureValue(double monthlyInvestment,double monthlyInterestRate, int months)
{
double futureValue = 0;
for (int i = 1; i <= months; i++)
{
futureValue =
(futureValue + monthlyInvestment) *
(1 + monthlyInterestRate);
}
return futureValue;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.