All pastes #731417 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-10-10 01:27 UTC
rendered paste body
import 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;
      
    }
}