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; i0){ 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(); } }