COP 2224 C++ Programming
Programming Project #3

(Due Tuesday, December 12, 2000, by the start of Class)


To practice object oriented design, using multiple classes and objects, and basic design techniques such as encapsulation, abstraction, composition, and inheritance.  To practice good programming techniques, style, design, testing, and good program documentation, on a medium-sized programming example.


For this project you are to simulate a voice mail system.  The system has a collection of mailboxes, each of which may be accessed by a four digit extension number (7213 for example).  A user of the system may put a message into any existing mailbox.  Since we don't have the hardware to actually record voice mail messages available, we will fake this part of the system and simply have users type text messages in at the keyboard, after first typing in the extension.

Any user with a valid mailbox and its password may do any of the following:

(Additional features are up to your group.  Feel free to design the "perfect" voice mail system, but keep in mind the short amount of time available before you become too ambitious!)

In addition an administrator needs to be able to activate and deactivate mailboxes by using a special password.  (Anyone knowing the password is considered an administrator.)

A model solution can be downloaded and run.  This program has many creative features, you should not simply imitate this program!  (Invent your own design, user interface, and feature set.)

Project Requirements:

To be turned in:

A 3.5" disk with your group's program on it.

A printout of your design (the CRH index cards can be turned in if you used this method).
A printout of your complete program.

The performance evaluation by every team member.  (Note these will be kept confidential, only I will see them.)

Additional Notes:

This should be a fun but practical and useful project.  Donít hesitate to consult with your instructor with problems and questions.

Use the Keep it Simple priciple.  You can always add more features later!

Use inheritence and the STL where possible.

This project was adapted from a similar one by Rick Mercer in "Computing Fundamentals with C++", 2nd Edition.  (C) 1999 by Franklin, Beedle & Associates.  Pages 472-473, 513-515.  (The author lists Cay S. Horstmannís "Mastering Object-Oriented Design in C++", (C) 1995 John Wiley and Sons, NY as his source for the project idea.)