package pr01; public class CourseGrades { private String name; private int[] labs; private int[] quizzes; private int[] midterms; private int finalExam; public CourseGrades(String name, int numLabs, int numQuizzes, int numMidterms) { this.name = name; if (numLabs < 2) numLabs = 2; if (numQuizzes < 3) numQuizzes = 3; if (numMidterms < 1) numMidterms = 1; labs = new int[numLabs]; quizzes = new int[numQuizzes]; midterms = new int[numMidterms]; for (int i=0;i labs.length)) return; labs[n-1] = grade; } public void setQuizGrade(int n, int grade) { if ( (n < 1) || (n > quizzes.length)) return; quizzes[n-1] = grade; } public void setMidtermGrade(int n, int grade) { if ( (n < 1) || (n > midterms.length)) return; midterms[n-1] = grade; } public void setFinalGrade(int grade) { finalExam = grade; } public String getName() { return name; } public int getFinalExam() { return finalExam; } public String getQuizList() { return getGradeString(quizzes); } public String getLabList() { return getGradeString(labs); } public String getMidtermList() { return getGradeString(midterms); } public double getQuizAverage() { return getAverageDropHighestLowest(quizzes); } public double getLabAverage() { return getAverageDropLowest(labs); } public double getMidtermAverage() { return getAverage(midterms); } public double getCourseAverage() { return getLabAverage() + 0.5*getQuizAverage() + 0.40*getMidtermAverage() + .30*finalExam; } public String getCourseGrade() { double average; average = getCourseAverage(); if (average >= 95) return "A+"; if (average >= 90) return "A"; if (average >= 80) return "B"; if (average >= 70) return "C"; if (average >= 65) return "D"; return "F"; } private String getGradeString(int[] list) { String s = "" +list[0]; for (int i=1;i list[i]) min = list[i]; return min; } private int getMaxValue(int[] list) { int max = list[0]; for (int i=1;i