HOMEWORK 11 - Student CLASS and GradeBook CLASS

The Goal

Lazy Joe, one of our surprisingly productive programmers, started refactoring a previous project that creates student grade reports (in order to use modern object-oriented design practices); alas Joe was placed onto another project before he could finish. We need you to finish his work. He claims that he commented his progress well, so you should be able to continue where he left off. He sent his progress so far (linked here), for you to start with. You'll notice that Joe has also been updating the previous project code style to match our 261 style; you should follow his lead.

Getting Started and Hints

We suggest you first carefully study the code Joe has completed so far, until you understand all parts. You should also study the input file format (example file here here), to get a grasp on what the program is doing. Notice how Joe has already templated out most of the I/O, and has commented on some of the missing pieces. To see how the program should be working, use the previous project code as a reference. NOTE: the code Joe has provided you does NOT compile; thus, your very first task is to get the code to compile.

Once you understand the code provided, step back, and think about what is left to complete. Start with some of the smaller parts, then work up to the bigger parts. As you come to each component, consider its individual goals, and ask "What should this single part be doing?"

We strongly encourage you to spend sometime away from the computer to plan your solution, e.g., go for a hike, take a drive, or brainstorm during your next shower. We expect you'll save time at the computer if you spend time away from the computer planning your approach. If you get stuck, go take a walk, then come back to it (warning: slippery-slope to procrastination). There are many different ways to solve this problem. We encourage you to be creative!

Hint: We also strongly encourage you to, once again, use the " Incremental Build" model. In other words, design, implement, and test your solution incrementally, adding a little more functionality each increment. For example, first get the student's IDs and names read into the object you instantiate from your new class. Then print out those IDs and names from your object to be sure they are correct. Once you feel good about the IDs and names, work on the homework scores. etc. etc.

Lastly, we recommend you execute the previous project code. When the output of your code matches the output of this code, scream "yeeeeessssssssss!"; then go eat some ice cream to celebrate.

A Few Requirements

To receive full credit, the following requirements must be met:

Homework Grade and Submission

Your Homework 11 grade will be based on your solution to this assignment and your solution to Lab11A, Lab11B, and Lab11C. In submitting your homework assignment (due Nov 18th), follow these steps: