rendered paste bodyimport java.io.*;
import java.util.*;
import cs1.Keyboard;
public class Stats2
{
private double[] grades;
private final int DEFAULTSIZE=10;
private int count;
private int avg;
private double stddev;
private double mean;
private boolean avgcurrent=false;
public void Stats()
{
this.grades = new double[DEFAULTSIZE];
}
public void calcAverage()
{
int sum=0;
//int i=0;
//while (i<count)
//{
// sum= sum + (int)grades[i];
// i++;
//}
int i;
for (i=0;i<count;i++)
{
sum=sum+(int)grades[i];
}
mean = (double)sum/(double)count;
avgcurrent=true;
}
public double getAverage()
{
// avgcurrent==false
if (!avgcurrent) //if not avgcurrent
calcAverage();
return mean;
}
private void calcStddev()
{
double sum=0;
if (!avgcurrent)
this.calcAverage();
//int i=0;
//while (i<count)
int i;
for (i=0;i<count;i++)
{
sum = sum + (mean-grades[i])*(mean-grades[i]);
//i++;
}
sum = sum / count;
stddev=Math.sqrt(sum);
}
public double getStddev()
{
return stddev;
}
private void growArray()
{
double[] tmp = new double[grades.length*2];
//int i=0;
int i;
for (i=0;i<count;i++)
{
tmp[i]=grades[i];
//i++;
}
grades=tmp;
}
public void readGradesFromKeyboard()
{
double grade;
System.out.print("Please enter a grade (negative to end):");
grade = Keyboard.readDouble();
while (grade >=0)
{
if (count == grades.length)
growArray();
grades[count]=grade;
count++;
System.out.print("Please enter a grade (negative to end):");
grade = Keyboard.readDouble();
}
avgcurrent=false;
}
}