Question & Answer: create a new Java application called "WeightedAvgWithExceptions" (without the quotation marks), according to the f…..

create a new Java application called “WeightedAvgWithExceptions” (without the quotation marks), according to the following guidelines and using try-catch-finally blocks in your methods that read from a file and write to a file, as in the examples in the lesson notes for reading and writing text files.

Input File

Don't use plagiarized sources. Get Your Custom Essay on
Question & Answer: create a new Java application called "WeightedAvgWithExceptions" (without the quotation marks), according to the f…..
GET AN ESSAY WRITTEN FOR YOU FROM AS LOW AS $13/PAGE
Order Essay

The input file – which you need to create and prompt the user for the name of – should be called ‘data.txt’, and it should be created according to the instructions below.

The input file should contain (in order): the weight (greater than 0 and less than or equal to 1), the number, n, of lowest numbers to drop, and the numbers to be averaged after dropping the lowest n values.

For example, you might have these values in your input file (data.txt)…

0.5 3 10 70 90 80 20

Creating the Input file

To create the input file, while in NetBeans with your project open, click to highlight the top-level folder of your project in the projects tab at the upper left. Then starting with the NetBeans File menu, do

File->New File

Keep the Project name at the top; keep Filter blank

For Categories choose Other (at the bottom of the categories list)
For File Types choose Empty File (at the bottom of the files list)

Next

FileName: data.txt

Folder: this should be blank; if it's not, delete whatever's there.

Finish

In the empty file data.txt that you just created, add a single line of data like the one in the example above, where the weight is a double (greater than 0.0 and less than or equal to 1.0) and the other numbers are the number, n, of lowest values to drop, and then the numbers to be averaged after dropping the lowest n values. Then save this data.txt input file.

It’s important that your input file is where NetBeans will look to find it. The above instructions should make sure that that happens.

Main Method

Your main method should contain just three lines like these…

ArrayList<Double> inputValues = getData();

double weightedAvg = calcWeightedAvg(inputValues);

printResults(inputValues, weightedAvg);

…where the printResults method should prompt the user for the name of the output file and print to that output file.

Output

Given the sample values above in the data.txt input file, the output file should contain something very much like the following…

The weighted average of the numbers is 42.5, when using the data 10.0, 70.0, 90.0, 80.0, 20.0, where 0.5 is the weight used, and the average is computed after dropping the lowest 3 values.

Prompting for names of input file and output file

Make sure you prompt the user for the name of the input file (even though we know what it is). Use this prompt: “Enter the filename of “data.txt” (no quotes) for the input file: ”

Also prompt the user for the name of the output file. If you use code like that in Horstmann’s Total.java program to create the output file, the output file should be located at the same place as the input file. Check the NetBeans Files tab (next to the Project tab in the upper left) to see both the input and output files.

Expert Answer

 

WeightedAvgWithExceptions.java

import java.io.File;

import java.io.FileNotFoundException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Scanner;

public class WeightedAvgWithExceptions {

public static void main(String[] args) {

 

ArrayList<Double> input = getData();

System.out.println(input);

double weightedAverage = calcWeightedAvg(input);

printResults(input, weightedAverage);

}

public static ArrayList<Double> getData() {

ArrayList<Double> inputLine = new ArrayList<Double>();

Scanner console = new Scanner(System.in);

System.out.println(“Enter ‘data.txt’ (without the quotes) as the name of the input file: “);

String inputFileName = console.next();

File inputFile = new File(inputFileName);

Scanner in = null;

try {

in = new Scanner(inputFile);

while (in.hasNextDouble()) {

inputLine.add(in.nextDouble());

}

} catch (FileNotFoundException fne) {

String errorString = fne.getMessage();

System.out.println(“There was an error when trying to read from file ”

+ inputFileName + “: ” + errorString);

} finally {

if (in != null) {

in.close();

}

}

return inputLine;

}

public static double calcWeightedAvg(ArrayList<Double> data) {

double enteredWeight = Double.parseDouble(data.get(0).toString());

int numberofLowetValuesDropped =(int) Double.parseDouble(data.get(1).toString());

data.remove(1);

data.remove(0);

Collections.sort(data);

double total = 0;

for(int i=numberofLowetValuesDropped; i<data.size(); i++){

total = total + Double.parseDouble(data.get(i).toString());

}

data.add(0, enteredWeight);

data.add(1, Double.valueOf(numberofLowetValuesDropped));

double avg = total/(data.size() – numberofLowetValuesDropped);

return avg;

 

}

public static void printResults(ArrayList<Double> inputList, double weightedAvg) {

Scanner console = new Scanner(System.in);

System.out.println(“Enter the name of the output file: “);

String outputFileName = console.next();

PrintWriter out = null;

if (inputList.size() > 0) { // we have a non-empty inputList

try {

out = new PrintWriter(outputFileName);

String s = “The weighted average of the numbers is “+weightedAvg+”, ” +

“when using the data “+inputList+”, where “+inputList.get(0)+” is the weight used, ” +

“and the average is computed after dropping the lowest “+inputList.get(1)+” values.”;

out.print(s);

System.out.println(“Your output is in the file ” + outputFileName + “.”);

} catch (FileNotFoundException fne) {

String errorString = fne.getMessage();

System.out.println(“There was an error when trying to write to the output file ”

+ errorString);

} finally {

if (out != null) {

out.close();

}

}

} else {

System.out.println(“Problems reading data from input file; no output written to ” + outputFileName);

}

}

 

}

Output:

Enter ‘data.txt’ (without the quotes) as the name of the input file:
D:\data.txt
[0.5, 3.0, 10.0, 70.0, 90.0, 80.0, 20.0]
Enter the name of the output file:
D:\output.txt
Your output is in the file D:\output.txt.

data.txt

0.5 3 10 70 90 80 20

output.txt

The weighted average of the numbers is 42.5, when using the data [0.5, 3.0, 10.0, 20.0, 70.0, 80.0, 90.0], where 0.5 is the weight used, and the average is computed after dropping the lowest 3.0 values

Grand Paper Writers
Order NOW For A 10% Discount!
Pages (550 words)
Approximate price: -

Our Advantages

Plagiarism Free Papers

All papers are written by the best professional writers to ensure 100% originality. We always provide plagiarism reports whenever we deliver completed papers.

Free Revisions

All papers by Grand Paper Writers are completed and submitted on time. This timely delivery of papers gives you time to go through the paper before the official deadline.

Title-page

As an additional service, we will provide a title page that precedes the contents of your paper. Here, you will provide your personal details.

Bibliography

We also ensure that we provide an extra page for the references or bibliographies following referencing rules.

Originality & Security

At Grandpaperwriters.com, we guarantee students for the provision of security and original work. All your personal information is handled with confidentiality and is not shared with third parties. Additionally, we ensure that we provide original content with accompanying plagiarism reports to show originality.

24/7 Customer Support

Our customer support team is always available 24/7 to provide instant responses to any queries raised by students.

Try it now!

Calculate the price of your order

We'll send you the first draft for approval by at
Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

Grandpaperwriters.com has the best professional essay writers for quality services.

Pricing

Flexible Pricing

Here, a Grandpaperwriters.com, we do not compromise on the time of our clients. We always deliver all completed papers on or before the deadlines.

Communication

Admission Help & Client-Writer Contact

Grandpaperwriters.com provides an interactive portal where students can communicate directly to their writers.

Deadlines

Paper Submission

Here, a Grandpaperwriters.com, we do not compromise on the time of our clients. We always deliver all completed papers on or before the deadlines.

Reviews

Customer Feedback

Grandpaperwriters.com appreciates feedback from our clients to help us improve the delivery of essay writing services. As such, we are constantly changing our policies to ensure maximum customer and writer satisfaction.