JAVA PROGRAM Lab #2. Chapter 7. PC #11. Array Operations (Page 491) Write a program that accepts a file name from command line, then initializes an array with test data using that text file as an input. The file should contain floating point numbers (use double data type). The program should also have the following methods: * getTotal. This method should accept a one-dimensional array as its argument and return the total of the values in the array. * getAverage. This method should accept a one-dimensional array as its argument and return the average of the values in the array. * getHighest. This method should accept a one-dimensional array as its argument and return the highest value in the array. * getLowest. This method should accept a one-dimensional array as its argument and return the lowest value in the array. double_input1.txt double_input2.txt PLEASE MODIFY THIS CODE, SO WHEN I UPLOAD IT TO HYPERGRADE IT PASSES ALL THE TEST CASES, BECAUSE WHEN I UPLOAD IT TO HYPERGRADE IT DOES NOT PASS THE TEST CASES. IT HAS TO PASS ALL THE TEST CASES. I PROVIDED THE CORRECT OUTPUT AS A SCREENSHOT AS A REFERRENCE. import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) { if (args.length != 1) { System.out.println("Usage: java ArrayStatistics "); System.exit(1); } String fileName = args[0]; double[] data = readDataFromFile(fileName); if (data != null) { double total = getTotal(data); double average = getAverage(data); double highest = getHighest(data); double lowest = getLowest(data); System.out.println("Total: " + total); System.out.println("Average: " + average); System.out.println("Highest: " + highest); System.out.println("Lowest: " + lowest); } } public static double[] readDataFromFile(String fileName) { try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { String line; String[] tokens; int count = 0; while ((line = br.readLine()) != null) { count++; } double[] data = new double[count]; int index = 0; br.close(); BufferedReader br1 = new BufferedReader(new FileReader(fileName)); while ((line = br1.readLine()) != null) { tokens = line.trim().split("\\s+"); if (tokens.length > 0) { data[index++] = Double.parseDouble(tokens[0]); } } return data; } catch (IOException e) { System.err.println("Error reading from file: " + e.getMessage()); return null; } catch (NumberFormatException e) { System.err.println("Invalid data format in the file: " + e.getMessage()); return null; } } public static double getTotal(double[] arr) { double total = 0; for (double num : arr) { total += num; } return total; } public static double getAverage(double[] arr) { if (arr.length == 0) { return 0; } double total = getTotal(arr); return total / arr.length; } public static double getHighest(double[] arr) { if (arr.length == 0) { return Double.NaN; } double highest = arr[0]; for (double num : arr) { if (num > highest) { highest = num; } } return highest; } public static double getLowest(double[] arr) { if (arr.length == 0) { return Double.NaN; } double lowest = arr[0]; for (double num : arr) { if (num < lowest) { lowest = num; } } return lowest; } }
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: java ArrayStatistics <input_file>");
System.exit(1);
}
String fileName = args[0];
double[] data = readDataFromFile(fileName);
if (data != null) {
double total = getTotal(data);
double average = getAverage(data);
double highest = getHighest(data);
double lowest = getLowest(data);
System.out.println("Total: " + total);
System.out.println("Average: " + average);
System.out.println("Highest: " + highest);
System.out.println("Lowest: " + lowest);
}
}
public static double[] readDataFromFile(String fileName) {
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
String[] tokens;
int count = 0;
while ((line = br.readLine()) != null) {
count++;
}
double[] data = new double[count];
int index = 0;
br.close();
BufferedReader br1 = new BufferedReader(new FileReader(fileName));
while ((line = br1.readLine()) != null) {
tokens = line.trim().split("\\s+");
if (tokens.length > 0) {
data[index++] = Double.parseDouble(tokens[0]);
}
}
return data;
} catch (IOException e) {
System.err.println("Error reading from file: " + e.getMessage());
return null;
} catch (NumberFormatException e) {
System.err.println("Invalid data format in the file: " + e.getMessage());
return null;
}
}
public static double getTotal(double[] arr) {
double total = 0;
for (double num : arr) {
total += num;
}
return total;
}
public static double getAverage(double[] arr) {
if (arr.length == 0) {
return 0;
}
double total = getTotal(arr);
return total / arr.length;
}
public static double getHighest(double[] arr) {
if (arr.length == 0) {
return Double.NaN;
}
double highest = arr[0];
for (double num : arr) {
if (num > highest) {
highest = num;
}
}
return highest;
}
public static double getLowest(double[] arr) {
if (arr.length == 0) {
return Double.NaN;
}
double lowest = arr[0];
for (double num : arr) {
if (num < lowest) {
lowest = num;
}
}
return lowest;
}
}
![Test Case 1
Command Line arguments: double_input1.txt
Total: -1,813.080 \n
Average: -18.131 \n
Highest: 985.007 n
Lowest: -989.128 \n
Test Case 2
Command Line arguments: double_input2.txt
Total: -331, 368.178 \n
Average: -165.684 \n
Highest: 9,994.439 \n
Lowest: -9,988.269 \n
Test Case 3
Command Line arguments: double_input3.txt
File: double_input3.txt does not exist.\n
Test Case 4
Usage: java ArrayOperations <filename>\n](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F76771872-2e5b-4acd-8178-96996628db9e%2F5c0a1e45-7904-4997-9317-bd1020f1d993%2Fy7wk1ue_processed.png&w=3840&q=75)
![-283.760
-456.167
19.815.
-322.301
344.949
-850.533
-672.360
-188.767
646.462
-118.775
808.613
-746.865
-370.432
219.607
-166.298
-508.636
-989.128
-205.020
-928.165
-180.699
300.753
316.036
709.371
-886.860
-585.388
-554.302
-394.801
-970.233
905.941
787.854
double_input1 (5).txt ✓
5009.080090
4828.594369
411.259878
-9785.626617
-4609.476471
2719.918173
7138.901501
-3538.371855
2574.392712
-3297.930547
8398.465389
-3195.768547
-6157.859188
-370.717511
-294.048307
-8513.062201
-5510.607699
-1041.978813
9293.313108
-5017.205842
361.703495
-6699.960064
-9232.366356
1447.159382
-8435.569795
-2030.469644
5002.575706
-5820.459615
7003.075309
3755.916188
double_input2 (3).txt](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F76771872-2e5b-4acd-8178-96996628db9e%2F5c0a1e45-7904-4997-9317-bd1020f1d993%2Fanzx73j_processed.png&w=3840&q=75)
![](/static/compass_v2/shared-icons/check-mark.png)
Step by step
Solved in 3 steps with 2 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Programming with Microsoft Visual Basic 2017](https://www.bartleby.com/isbn_cover_images/9781337102124/9781337102124_smallCoverImage.gif)
![Microsoft Visual C#](https://www.bartleby.com/isbn_cover_images/9781337102100/9781337102100_smallCoverImage.gif)
![Programming with Microsoft Visual Basic 2017](https://www.bartleby.com/isbn_cover_images/9781337102124/9781337102124_smallCoverImage.gif)
![Microsoft Visual C#](https://www.bartleby.com/isbn_cover_images/9781337102100/9781337102100_smallCoverImage.gif)
![EBK JAVA PROGRAMMING](https://www.bartleby.com/isbn_cover_images/9781337671385/9781337671385_smallCoverImage.jpg)