This lab is due by Tuesday, December 08, 2020, 11:59 PM.
As with all labs you may, and are encouraged, to pair program a solution to this lab. If you choose to pair program a solution, be sure that you individually understand how to generate the correct solution.
Concepts
Focus on expanding the Godzilla class from Lab7C.
Suggestion: Use NotePad or WordPad
Consider using NotePad or WordPad on your computer to write your code for this lab. Once you feel good about what you've written, then copy the code into your project. Doing this will help you see where you might make mistakes on the exam!
You should write a
main.cpp
that tests each feature of your class works as expected. You
will need to submit your class declaration file, your class
definition file, and your
main.cpp
file for this lab.
Even More Expanded Godzilla
Class
It's now time for godzilla
and nechagodzilla
to go to battle. Add an attack
function as described below:
- An attack function that accepts another
Godzilla
object as a parameter. The function should modify the target's health by subtracting the callee's power. It should also print out a message in the form of "Callee's Name attacks Target's Name." If the target's health falls below zero, print out a second message stating "Target's Name has been vanquished."
Now in main, have godzilla
attack mechagodzilla
once. Then, have
mechagodzilla
attack godzilla
until godzilla
has been vanquished. Your program
should end at that point.
An example output is below:
Enter the health of Godzilla: 80
Enter the power of Godzilla: 20
Enter the name of the second creature: Metalzilla
Enter the health of the second creature: 95
Enter the power of the second creature: 30
The two creatures are:
Godzilla (P: 20) - H: 80
Metalzilla (P: 30) - H: 95
Godzilla attacks Metalzilla.
Metalzilla attacks Godzilla.
Metalzilla attacks Godzilla.
Metalzilla attacks Godzilla.
Godzilla has been vanquished.
Now add the following function to your class:
- A
greet
function that accepts anotherGodzilla
object as a parameter which is passed by constant reference. That is, the parameter should be markedconst
so that the function cannot inadvertantly change the target's values. The function should print out a message in the form of "Callee's Name bows to Target's Name."
Finally, in main before the two Godzillas do battle, have godzilla
greet mechagodzilla
. As in, the code would look like
godzilla.greet( mechaGodzilla );
In order for this to work, you will need to make sure that you have marked ALL of your functions as const
or not
appropriately. Which functions should be constant functions? Which parameters should be constant parameters? Do this for every
function - denote it as a const
function when it is not modifying andy of the callee's data members. Likewise, mark
any parameters in every function as const
that are not modified within the function body.
An example output is below:
Enter the health of Godzilla: 80
Enter the power of Godzilla: 20
Enter the name of the second creature: Metalzilla
Enter the health of the second creature: 95
Enter the power of the second creature: 30
The two creatures are:
Godzilla (P: 20) - H: 80
Metalzilla (P: 30) - H: 95
Metalzilla bows to Godzilla.
Godzilla bows to Metalzilla.
Godzilla attacks Metalzilla.
Metalzilla attacks Godzilla.
Metalzilla attacks Godzilla.
Metalzilla attacks Godzilla.
Godzilla has been vanquished.
Lab Submission
You will submit your solution to this lab with the rest of Set8. Detailed instructions for doing this are posted in Assignment 8.
This lab is due by Tuesday, December 08, 2020, 11:59 PM.
As with all labs you may, and are encouraged, to pair program a solution to this lab. If you choose to pair program a solution, be sure that you individually understand how to generate the correct solution.