CS1044: Programming with C++

Virginia Tech Computer Science Department
Tom Plunkett
thplunk2@vt.edu

Graded Assignment #9-10: Create an Inheritance Hierarchy

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.