package arrayclasses; import java.util.*; public class ClassList { private String courseTitle; private String discipline; private String semester; private String instructor; private ArrayList studentList; public ClassList(String title, String disc, String sem, String ins) { courseTitle = title; discipline = disc; semester = sem; instructor = ins; studentList = new ArrayList(); } // This version allows duplicate entries public void add(StudentGrade s) { studentList.add(s); } public String getDiscipline() { return discipline; } public double getGrade(String studentID) { int position = find(studentID); if (position == -1) return -1; return studentList.get(position).getGrade(); } public String getInstructor() { return instructor; } public String getSemester() { return semester; } public StudentGrade getStudent(String ID) { int position = find(ID); if (position == -1) return null; return studentList.get(position); } public String getTitle() { return courseTitle; } // This version changes the order of the students in the list public void remove(String ID) { int position = find(ID); if (position == -1) return; studentList.remove(position); } public void setGrade(String studentID, double grade) { int position = find(studentID); if (position == -1) return; studentList.get(position).setGrade(grade); } public String toString() { StringBuffer buf = new StringBuffer(getClass().getName() + "[title=" + courseTitle + ",discipline=" + discipline + ",semester=" + semester + ",instructor=" + instructor + "]"); for (int i = 0; i < studentList.size(); i++) buf.append("\n" + studentList.get(i)); return buf.toString(); } private int find(String studentID) { for (int i = 0; i < studentList.size(); i++) if (studentID.equals(studentList.get(i).getStudentID())) return i; return -1; } // the following are the extensions public double getAverageGrade() { int classSize = studentList.size(); double sum = 0; if (classSize == 0) return 0.0; for (int i=0;i studentList.get(i).getGrade()) min = studentList.get(i).getGrade(); return min; } }