Write a class DataSet that stores a number of values of type double. Provide a c
ID: 3823931 • Letter: W
Question
Write a class DataSet that stores a number of values of type double. Provide a constructor
public DataSet(int maxNumberOfValues)
and a method
public void addValue(double value)
that add a value provided there is still room.
Provide methods to compute the sum, average, maximum and minimum value.
I need to set my values with the final int LENGTH can you help me rearrange my code so it does that? This has to use enhanced for loops not if else statements ,This is what I got....
import java.util.Scanner;
public class DataSet1 {
double[] array;
int sum;
double average;
double maximum;
double minimum;
public DataSet1(int maxNumberOfValues) {
array = new double[maxNumberOfValues];
}
public void addValue(int[] array) {
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
}
public double getSum(double[] array) {
sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
public double getAverage() {
double total = 0;
for (double element : array) {
total = total + element;
}
double average = 0;
if (array.length > 0) {
average = total / array.length;
}
return sum / array.length;
}
public double getMaximum() {
double largest = Double.MIN_VALUE;
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
largest = Math.max(largest, array[i]);
}
return largest;
}
public double getMinimum() {
double smallest = Double.MAX_VALUE;
for (int i = 0; i < array.length; i++) {
smallest = Math.min(smallest, array[i]);
}
return smallest;
}
public static void main(String[] args) {
final int LENGTH = 100;
int currentSize = 0;
Scanner in = new Scanner(System.in);
System.out.print("Enter amount of numbers to be determined : ");
int x = in.nextInt();
DataSet1 d1 = new DataSet1(x);
System.out.print("Enter values to be used :");
for(int i=0;i<x;i++){
d1.array[currentSize] = in.nextDouble();
currentSize++;
}
System.out.println("Sum is : " + d1.getSum(d1.array));
System.out.println("Average is :" + d1.getAverage());
System.out.println("Maximum is :" + d1.getMaximum());
System.out.println("Minimum is :" + d1.getMinimum());
}
}
Explanation / Answer
Dataset.Java
public class DataSet
{
private double sum;
private int count;
private int largest;
private int smallest;
public DataSet()
{
sum = 0;
count = 0;
largest = 0;
smallest = 0;
}
public void addValue (int x)
{
sum = sum + x;
if (count == 0 || sum < x)
{
largest = (x += (int)sum) + x;
}
else if (count == 0 || sum > x)
{
smallest = x;
}
count ++;
}
public double getAverage()
{
if (count == 0)
{
return 0;
}
else
{
return sum / count;
}
}
public int getSum()
{
return (int)sum;
}
public int getLargest()
{
return largest;
}
public int getSmallest()
{
0return smallest;
}
}
DataSetTester.Java
public class DataSetTester
{
public static void main(String[] args)
{
DataSet data = new DataSet();
data.addValue(1);
data.addValue(2);
data.addValue(-3);
data.addValue(4);
int sum = data.getSum();
double avg = data.getAverage();
int larg = data.getLargest();
int sml = data.getSmallest();
System.out.println("The Sum is: " + sum);
System.out.println("Expected: 4");
System.out.println("The Average is: " + avg);
System.out.println("Expected: 1");
System.out.println("The Largest value is: " + larg);
System.out.println("Expected: 4");
System.out.println("The smallest value is: " + sml);
System.out.println("Expected: -3");
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.