package arrayclasses;

public class ClassList {
  private String discipline;
  private int courseNumber;
  private StudentGrade [] students;
  private int numberOfStudents;

  public ClassList(String disc, int courseNum) {
    discipline = disc;
    courseNumber = courseNum;
    students = new StudentGrade[10];
    numberOfStudents = 0;
  }

  public String toString() {
    String result = "Discipline = " + discipline;
    result += "\nCourse Number = " + courseNumber;
    result += "\nStudents:";
    for (int i = 0; i < numberOfStudents; i++) {
      StudentGrade student = students[i];
      result += "\n" + student.toString();
    }
    return result;
  }

  // add a student to the class
  public void add(StudentGrade s) {
    if (numberOfStudents < students.length) {
      // numberOfStudents is the next pos to fill
      students[numberOfStudents] = s;
      // we have one more student
      numberOfStudents++;
    }
  }

  // return the position of the StudentGrade
  // object with the id, or -1 if not found.
  private int find(String id) {
    for (int i = 0; i < numberOfStudents; i++) {
      StudentGrade s = students[i];
      String sid = s.getStudentID();
      if (id.equals(sid)) {
        return i;
      }
    }
    return -1;
  }

  public boolean changeGrade(String id, double g) {
    int pos = find(id);
    if (pos == -1) return false;
    StudentGrade s = students[pos];
    s.setGrade(g);
    return true;
  }
}




