For some reason the size of my array is invalid and I am not sure how I should change NextIndex
to fix this. The size should be dynamic and changing NextIndex
to 1 doesn't help it.
/**
* Code for E7.9
* @Michael Goedken
*/
public class DataSet
{
// Implmentation
int nextIndex = 0;
double[] list = new double[1];
public static void main (String args[])
{
DataSet data = new DataSet(5);
data.add(3.5);
data.add(7.9);
data.add(15.2);
data.add(-7.3);
System.out.println("Sum: " + data.getSum());
System.out.println("Expected: 19.3");
System.out.println("Average: " + data.getAverage());
System.out.println("Expected: 4.825");
System.out.println("Maximum: " + data.getMaximum());
System.out.println("Expected: 15.2");
System.out.println("Minimum: " + data.getMinimum());
System.out.println("Expected: -7.3");
}
Constructs an empty data set. @param maximumNumberOfValues the maximum this data set can hold
public DataSet(int maximumNumberOfValues)
{
double[] list = {maximumNumberOfValues};
}
Adds a data value to the data set if there is room in the array. @param value a data value
public void add(double value)
{
list[nextIndex] = value;
nextIndex++;
}
Gets the sum of the added data. @return sum of the data or 0 if no data has been added
public double getSum()
{
double sum = 0;
for (double i : list)
sum += i;
return sum;
}
Gets the average of the added data. @return average of the data or 0 if no data has been added
public double getAverage()
{
double sum = 0;
double avg = 0;
for (double i = 0;i<list.length;i++)
sum += i;
avg = sum/list.length;
return avg;
}
Gets the maximum value entered. @return maximum value of the data NOTE: returns -Double.MAX_VALUE if no values are entered.
public double getMaximum()
{
double max = list[0];
for (int i = 1; i < list.length; i++)
{
if (list[i] > max)
{
max = list[i];
}
}
return max;
}
Gets the minimum value entered. @return minimum value of the data NOTE: returns Double.MAX_VALUE if no values are entered.
public double getMinimum()
{
double min = list[0];
for (int i = 1; i < list.length; i++)
{
if (list[i] < min)
{
min = list[i];
}
}
return min;
}
}