Virginia Tech Computer Science Department
Tom Plunkett
thplunk2@vt.edu
Textbook Chapter 15
Requirements
Due Date: Please email all deliverables to me by Midnight, Monday, November 30th. The project can be turned in by December 7th, for reduced credit. No submissions will be accepted after December 7th.
Overview: Create an Inheritance Hierarchy for the Animal Kingdom
Part I:
A) Create an Inheritance Hierarchy for the animal kingdom.
B) Super-Class: Animals
C) Second Tier of Classes: Amphibians, Avians, and Mammals
D) Lowest Tier of Classes--pick at least two from each of the second tier--example: Cats, Dogs, Frogs, Geese, Pelicans, Toads.
E) Only the lowest class should have member objects.
F) Select several appropriate attributes for each of your classes. Example Attributes include the following:
Attributes for Animal class could include: Description, Weight, name, etc.
Attributes for Amphibians: swimming speed
Attributes for Mammals: Fur color
Attributes for cats: dietary habits
Attributes for dogs: barking volume
Many others are conceivable--use your imagination, there is no right or wrong for this part of the project.
Have your application file create member objects for your classes with various input attributes. Make sure your implementation file has both a default constructor as well as a constructor that accepts values for the various attributes (fur color, etc).
Part II: (Only start this once Part I is finished and keep your results from Part I as a seperate deliverable)
Overload the input and output operators for your classes. In order to efficiently accomplish this task, your documentation should analyze the possible types of inputs and outputs that could be used with your animal classes.
Other Requirements
1) Deliverables to be submitted include: source code files, testcase files, and a ms word file describing details of your modification process.
2) Please test all deliverables fully.
3) Please insert all appropriate comments into your source code.
4) You should list the following items in your description of the time spent on this project:
a) Time spent planning your code change
b) Time spent modifying the code
c)Time spent testing the code
d)Time spent writing up your results
5) Your documentation should list all functions in the program and your justification for modifying them or not modifying them.
6) You should also list other alternative methods to modify the code and why you chose against them.
7) Please also mention any unresolved difficulties you
encountered in modifying the software code. A resolved difficulty
is one where you ran into something while working on a task and
later found out how it works. An unresolved difficulty is where
you ran into a problem and avoided the subject matter to complete
the task.