Project 1

Due Monday June 11th at the start of lecture

Introduction


The project that we are going to work on durring class this session is a personal information manager (PIM). Think of this is as a much less mobile version of the palm pilot. The PIM will have 3 kinds of things that can be stored in it: memo, event, address. Again all of these fields may be changed after creation.

What you will need to do

You will need to the base class of a memo and the 2 sub classes of event and address along with a driver program that will allow these to be tested.
methods each class must have are listed below. If you wish to add others you may.

The driver program should make it possible to test each of the classes that you created so it will have to allow for information to be entered and viewed. The driver program does not need a GUI interface. However it will need a main method that creates 1 or more objects of each class and prove that data may be entered into each object. Your driver program should also demonstrate the ablity to update the approperate members of each class. There are two basic methods for constructing this sort of driver program, interactive or batch.
The interactive case is often handled with a menu an example run might look something like this (bold text represents the typing of the user.
start of run-------->
Test (M)emo, (E)vent, (A)dress: M
Enter the date and time of creation: 01 02 2003 5 42
diagnostic print
unique id: 1
creation day:01, month:02, year:2003, hour:5, min:42
title: Untitled
Text:
Update (T)ext or t(I)tle: T
Enter the new text: This is the new text
calling print memo to demonstrate update
memo: Untitled
text: This is a the new text
Lots more testing each piece of classes
----------->end of run

The main advantage is that you can control each run to test just the protions of the code that you wish to.
A batch tester run might look something like (notice the user types nothing):
start of run-------->
Testing memo class
creating memo with creation date of 01/02/2003 time 5:42 no title and no text
diagnostic print
unique id: 1
creation day:01, month:02, year:2003, hour:5, min:42
title: Untitled
Text:
updating text with "this is a test"
using get_text() to see if change worked
worked input text: this is a test, result of get_text: this is a test
------->end of run

The advantage of a batch tester is consitency, it will do exactly the same thing each time and you don't have to worry about testing typos at 3am.
Thought question 10% of project grade
How would you handle an event that recures on a regular basis, for example a class that meets only on Thursdays at 3:30 and only for a few months. Given that space is a concern in a PIM how would you do this with out creating an event for each time the class meets?

What to hand in

What to submit

Just the code.