This is a great project to learn about the wonderful things about classes!
As laserlight points out, you should have a number of base classes, then derive classes from those, and also provide virtual functions!
What you might want to read about here is first base classes. Then inheritance (the base classes will act as your code base when you derive classes from it). Polymorphism - you'll probably pass the objects as their base class type and from there call virtual functions (so read about virtual functions too!).
Lots of great tutorials on this site.
Oh yes, public/proteted/private keywords will also be of great use to you in this exercise.