JAVA PROGRAM PLEASE FIX AND MODIFY THIS JAVA SO WHEN I UPLOAD IT TO HYPERGRADE IT PASSES ALL TEST CASSES PLEASES. RIGHT NOW IT SAYS 0 OUT 3 PASSED. THE PICTURES THAT I PROVIDED PROOF THAT WHEN I UPLOAD IT TO HYPERGRADES IT FAILS TEST CASSES. THANK YOU. import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.InputMismatchException; import java.util.Locale; import java.util.Scanner; public class FileTotalAndAverage { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String fileName; do { System.out.print("Please enter the file name: "); fileName = scanner.nextLine(); try { // Read numbers from the file double[] numbers = readNumbersFromFile(fileName); if (numbers != null) { // Calculate total and average double total = calculateTotal(numbers); double average = calculateAverage(numbers); // Set the locale to ensure proper formatting of numbers Locale.setDefault(Locale.US); // Display the results with three decimal digits System.out.printf("Total: %.3f%n", total); System.out.printf("Average: %.3f%n", average); break; // Exit the loop if successful } } catch (IOException e) { System.out.println("File '" + fileName + "' does not exist."); } catch (InputMismatchException e) { System.out.println("Invalid data in the file. Please make sure the file contains only numeric values."); } } while (true); scanner.close(); } private static double[] readNumbersFromFile(String fileName) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(fileName)); String line; double[] numbers = null; try { String[] tokens = reader.readLine().split("\\s+"); numbers = new double[tokens.length]; for (int i = 0; i < tokens.length; i++) { numbers[i] = Double.parseDouble(tokens[i]); } } finally { reader.close(); } return numbers; } private static double calculateTotal(double[] numbers) { double total = 0; for (double num : numbers) { total += num; } return total; } private static double calculateAverage(double[] numbers) { double total = calculateTotal(numbers); return total / numbers.length; } } Test Case 1 Please enter the file name: \n double_input1.txtENTER Total: -5,748.583\n Average: -57.486\n Test Case 2 Please enter the file name: \n double_input2.txtENTER Total: 112,546.485\n Average: 56.273\n Test Case 3 Please enter the file name: \n double_input3.txtENTER File 'double_input3.txt' does not exist.\n Please enter the file name again: \n double_input1.txtENTER Total: -5,748.583\n Average: -57.486\n
JAVA PROGRAM
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
public class FileTotalAndAverage {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String fileName;
do {
System.out.print("Please enter the file name: ");
fileName = scanner.nextLine();
try {
// Read numbers from the file
double[] numbers = readNumbersFromFile(fileName);
if (numbers != null) {
// Calculate total and average
double total = calculateTotal(numbers);
double average = calculateAverage(numbers);
// Set the locale to ensure proper formatting of numbers
Locale.setDefault(Locale.US);
// Display the results with three decimal digits
System.out.printf("Total: %.3f%n", total);
System.out.printf("Average: %.3f%n", average);
break; // Exit the loop if successful
}
} catch (IOException e) {
System.out.println("File '" + fileName + "' does not exist.");
} catch (InputMismatchException e) {
System.out.println("Invalid data in the file. Please make sure the file contains only numeric values.");
}
} while (true);
scanner.close();
}
private static double[] readNumbersFromFile(String fileName) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
double[] numbers = null;
try {
String[] tokens = reader.readLine().split("\\s+");
numbers = new double[tokens.length];
for (int i = 0; i < tokens.length; i++) {
numbers[i] = Double.parseDouble(tokens[i]);
}
} finally {
reader.close();
}
return numbers;
}
private static double calculateTotal(double[] numbers) {
double total = 0;
for (double num : numbers) {
total += num;
}
return total;
}
private static double calculateAverage(double[] numbers) {
double total = calculateTotal(numbers);
return total / numbers.length;
}
}
Test Case 1
double_input1.txtENTER
Total: -5,748.583\n
Average: -57.486\n
Test Case 2
double_input2.txtENTER
Total: 112,546.485\n
Average: 56.273\n
Test Case 3
double_input3.txtENTER
File 'double_input3.txt' does not exist.\n
Please enter the file name again: \n
double_input1.txtENTER
Total: -5,748.583\n
Average: -57.486\n
Step by step
Solved in 4 steps with 6 images