All pastes #740629 Raw Edit

Untitled

public text v1 · immutable
·published 2007-10-18 02:33 UTC
rendered paste body
import java.io.*;
import java.util.*;
import cs1.Keyboard;

public class StatA {

    private int[] grades;
    private double avg;
    private double stdev;
    private int maxGrade;
    private int[] modes;

    public StatA(int size, int r) {

        maxGrade = r;
        avg = 0;
        grades = new int[size];
    } //end constructor(int, int)

    public void setGrades() {

        for (int i=0; i < grades.length; i++) {
            System.out.print("Enter Grade " + (i + 1) + ": ");
            grades[i] = Keyboard.readInt();
        }
    } //end setGrades

    private void growModes(int n ){
        int[] newMoes = new int[modes.lenght +n];
        for( int i = 0; i< modes.length; i ++ ){
            newModes[i] = modes[i];
        }
        modes = newModes;
    }
    public void calcAvg() {

        double sum = 0;
        for (int i=0; i < grades.length; i++) {
            sum = sum + grades[i]; //sum += grades[i]
        }
        avg = sum/grades.length;
    } //end calcAvg

    public double getAvg() {
        return avg;
    } //end getAvg

    public void calcStdev() {

        calcAvg();     //always make sure avg has been calculated
        double sum = 0;
        for (int i = 0; i < grades.length; i++ ) {

            sum = sum + (avg - grades[i]) * (avg - grades[i]);
            i++;
        }
 stdev = Math.sqrt(sum/grades.length);
    } //end calcStdev

    public String toString() {

        String s = "";
        for (int i=0; i< grades.length; i++ ) {
            s = s + grades[i] + ", ";
        }

        s = s + "\nAverage: " + avg + "\nStandard Deviation: " + stdev + "\nModes: ";
        for (int i = 0; i < modes.length; i ++){
            s += modes[i] + ",";
        }
        return s;
    } //end toString

 public void findModes() {
        int[] tally = new int[maxGrade + 1];
        int max = 0;
        int firstMode = 0;
        int index = 0;
        for (int i=0; i < grades.length; i++ ) {
            tally[grades[i]] = tally[grades[i]] + 1;
        }

        for (int i=0; i < tally.length; i++ ) {
            if (tally[max] < tally[i]) {
                firstMode = i;
            }
        }
        max = tally[firstmode];
        for (int a = 0; i<tally.length; a ++){
            if(tally[i]== max){
                if(modes[modes.length-1] >0){
                    growModes(1);}
            }

              modes[index]= i;
              index++;}
            }
}}



    public static void main(String[] args) {

        StatA x;
        StatA y;
        int b, c;

        System.out.print("Enter number of grades: ");
        b = Keyboard.readInt();
        System.out.print("Enter max grade: ");
        c = Keyboard.readInt();

        x = new StatA(b, c);
        x.setGrades();
x.findModes();

    }
}