Using the last two operations (changeGrade and roll) is similar in spirit to what I do in BannerWeb at the end of the term. BannerWeb maintains a list of all students enrolled in CS 220X. I change the grade of each student enrolled in CS 220X from its original (non-credit) value to the student's earned grade in the course. Then I submit the changed grades, which updates the grade information in the Registrar's database. In BannerWeb I work with a list of courses that contain information about students. In this assignment, we're working with a list of students that contain information about courses. But the basic ideas are the same.
I suggest you use something like "IP" for the grade of a current course, where "IP" means "in progress". The "roll" (or submit) method should move all courses in the current course list which have non-IP grades into the list of completed courses. Of course, in true WPI fashion, if the earned grade in a course is "NR", it should be removed from the list of current courses, but not added to the list of completed courses.
StudentAlreadyExists
, StudentNotFound
, and
CourseNotFound
. These exceptions should be thrown where appropriate (e.g. if you try to delete a student
from the list of students, and the list contains no such student with the given ID, the StudentNotFound
exception should be thrown).
toString()
method so that the main method can display the results of each operation. You're encouraged to
develop a set of JUnit tests to incrementally test each method as you write it. We won't be grading your
JUnit tests (but that doesn't mean you shouldn't develop them!)
Export your Eclipse project to a zip file and submit the zip file via web-based turnin. To export a project, go to File | Export… and choose Archive File from the General folder. Check off the entire project in the top left window and make sure the format is .zip and not .tar. Finally, give the archive file a name and click finish.
The name of the turnin project is Homework 4.
Programs submitted after 5pm on April 14 will be tagged as late, and will be subject to the late homework policy.