rendered paste bodyimport 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();
}
}