All pastes #746228 Raw Edit

Stuff

public java v1 · immutable
·published 2007-10-23 01:56 UTC
rendered paste body
import java.io.*;import java.util.*;import cs1.Keyboard;public class Stats{    private double[] grades;    private final int DEFAULTSIZE=10;    private int count;    private int avg;    private double stddev;    private double mean;    private boolean avgcurrent=false;        Random r = new Random();    public int appearances = 0;    public int mode;    private int[] modes;            public 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)      {        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;      while (i<count)      {        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;          }        private void printBar(int low, int high)    {      for (int i=0;i<count;i++)      {        if (grades[i]>=low && grades[i]<high)          System.out.print('*');      }      System.out.println();    }        public void printHist()    {      int j;      for (int i=0;i<10;i++)      {        j=i*10;        System.out.print(j+" - " +(j+10)+":");        printBar(j,j+10);      }    }        private String getBar(int l)    {      String s = "";      for (int i=0;i<l;i++)        s=s+"*";      s=s+'\n';      return s;    }        public String getHist()    {      String s="";      int[] tallies = new int[10];      for (int i=0;i<count;i++)      {        tallies[ (int)(grades[i]/10) ] =           tallies[ (int)(grades[i]/10) ] + 1;      }            for (int i=0;i<10;i++)      {        s = s + ""+(i*10)+" - "+" "+(i*10+10)+":";        s=s+getBar(tallies[i]);      }      return s;    }        public Stats(int size)    {      this.grades = new double[size];      for (int i=0;i<10;i++)      {        grades[i] = r.nextInt(101);      }    }    private int[] sortGrades()    {      int[] gradesSorter = new int[101];      for(int i=0;i<grades.length;i++)        gradesSorter[(int)grades[i]]++;      return gradesSorter;    }      public void calcMode()    {            int[] gradesSorter = sortGrades();      //System.out.println(gradesSorter[90]);      //System.out.println(gradesSorter[100]);      for(int i=0;i<gradesSorter.length;i++)       {         if(gradesSorter[i] > appearances)           appearances = gradesSorter[i];        }      System.out.println(appearances);// always prints out something messed up    }    private void growArray2()    {      int[] tmp = new int[modes.length+1];       for(int i=0;i<modes.length;i++)      {        tmp[i]=modes[i];      }      modes=tmp;    }    public void calcModes()    {      int[] gradesSorter = sortGrades();      modes = new int[1];      int x = 0;      for(int i = 0; i<gradesSorter.length; i++)       {        if(gradesSorter[i] == appearances)        {          if (x >= modes.length)          {            growArray2();          }          modes[x] = i;          x++;        }      }    }    public String getModes()    {      String s = new String();      for(int i = 0; i<modes.length; i++)       {        s = s + "," +modes[i];      }      return s;    }}