Project 7

Last revision:  April 23 1999

Author: YourNameGoesHere

(Individually Pledged):  Grade Manager

Your final project is to write a package which could serve as a student's grade manager.  

As the final project for our course, your package should contain several elements:  

(a) judicious comments; 
(b) usage lines; 
(c) type checking for functions;
(d) separate public and private data and functions; 
(e) file storage and retrieval.  
   
Your package should contain functions which permit

(i) initialization; 
(ii) reading data from a file;
(iii) printing current grades;
(iv) adding a grade;
(v) deleting a grade;
(vi) finding averages;
(vii) storing data to a file.

You must decide what sorts of data the package will keep---whether numeric grades, letter grades, or some combination; whether to include bookkeeping data in addition to the grades themselves---such as test numbers, dates of tests, and/or weights of the various grades; whether to permit computing averages assuming some number of grades are dropped at the end of the course; and so on.  You are encouraged to implement and document some of these extensions.  A project which has no extensions—uses only numeric grades, has no additional data or functions besides those required in (i)–(vii) above, and which satisfies (a)–(e) above—is hoping for grade of B at best.