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;     } }

Programming with Microsoft Visual Basic 2017
8th Edition
ISBN:9781337102124
Author:Diane Zak
Publisher:Diane Zak
Chapter7: String Manipulation
Section: Chapter Questions
Problem 18E
icon
Related questions
Question
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 <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
Transcribed Image Text: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
-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
Transcribed Image Text:-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
Expert Solution
steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Knowledge Booster
Array
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Programming with Microsoft Visual Basic 2017
Programming with Microsoft Visual Basic 2017
Computer Science
ISBN:
9781337102124
Author:
Diane Zak
Publisher:
Cengage Learning
Programming Logic & Design Comprehensive
Programming Logic & Design Comprehensive
Computer Science
ISBN:
9781337669405
Author:
FARRELL
Publisher:
Cengage
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,