
Concept explainers
The objective of this assignment is to give you some practice using inheritance, virtual functions, and polymorphism. With a focus on dynamic binding, this program shifts the focus from design time static binding of functions to objects to run-time (or dynamic binding). It leverages the use of virtual functions and introduces the concept of abstract and concrete classes in its implementation of pure virtual functions as it also demonstrates polymorphic behavior.
Instructions
- Create a base class called Insect. All insects belong to an Order [i.e. “Hemiptera” (ants), “Siphonaptera” (fleas), “Termitoidae” (termites), “Gryllidae” (crickets), etc.] and have a size that is measured in millimeters (use a double data type). Provide a default constructor that initializes the size to zero and outputs the message “Invoking the default Insect constructor” and another constructor that allows the Order and size to be set by the client. This other constructor should also output the message “Invoking the 2-argument Insect constructor.” Also create a destructor for this class that outputs the message “Invoking the default Insect destructor.” Your Insect class should have a function called Eat that cannot be implemented. That is, it should be declared as a purely virtual function. Your class should also have Get and Set methods to allow the order and size to be accessed.
- From the Insect class, derive Ant, Locust, Butterfly, and Termite classes. The derived classes should each have constructors and destructors that output an appropriate message (e.g., the Ant constructor outputs “Invoking Ant constructor,” and the Ant destructor outputs “Invoking Ant destructor”). The constructor of each derived class should allow the Order and size of the Insect to be set (think member initialization list). The derived classes should each have a member function called Eat that overrides the Insect Eat version. Ant Eat should output “As an ant, I eat everything,” Locust Eat should output “As a locust, I eat leaves,” Butterfly Eat should output “As a butterfly, I eat nectar,” and Termite Eat should output “As a termite, I eat wood.”
- Write a main function that uses the Insect and derived classes as needed to do the following. You must perform the actions below in the sequence described (i.e., do not take a shortcut around using dynamic memory allocation/deallocation and virtual methods since they are the whole point of the lab).
- Use the rand() function in a formula to generate a random size in millimeters based on the insect selected.
The range of sizes for each insect are as follows:
Ant: .01 to 1.0 millimeters
Locust: 10.5 to 50.0 millimeters
Butterfly: 40.0 to 75.5 millimeters
Termite: 1.5 to 5.5 millimeters
- Your program should use a seed value of 100 for the random number generator. You should set the seed only once at the beginning of main(). Use the srand() function to set the seed.
- Prompt the user to make an Insect selection [e.g. (1) for Ant, (2) for Locust, (3) for Butterfly, and (4) for Termite] and to enter an Order for the insect. Dynamically create an Ant, Locust, Butterfly, or Termite object (depending on what the user entered) and initialize it with a constructor to which is passed its Order and size. Save the object (use an array called “insects” – credit will not be awarded if you use a
vector for this). You may hardcode the size of the array to hold 3 elements. That is, you don’t need to dynamically create this array unless you want to. If you do dynamically allocate it, though, be sure to deallocate its memory properly.
- Repeat steps a. and b. 2 more times. You do not know what insects the user will select or in what order, so you must figure out how to create and store the appropriate objects. Notice that there are 4 insects from which to choose, but the user will only make 3 selections. Therefore, one insect will not be chosen.
- After the user has entered all 3 selections, execute another loop that cycles through the 3 selections and invokes the Eat function and also displays the Order and size of the insect. If you have done it properly, each of your outputs will correspond to the type of Insect the user selected in the order he or she entered them.



Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 2 images

- You need to perform following things to demonstrate the concept of abstract class. Step 1: Create the abstract class that has following methods. • Calculate the area of circle(Abstract method) • Calculate the area of triangle(Abstract method) • Calculate the area of rectangle(Method with implementation) Step 2: Create another class that extends above class and provide implementation of abstract methods. Step 3: Create the main method inside above class and display output of area of circle, area of triangle and area of rectangle. You need to submit the following things: • Java program with both the classes An output screenshot created using Microsoft Wordarrow_forwardIf you are designing an application for a car dealership, you will create a Vehicle parent class and then extend the class into Car, Truck, SUV child classes. The Vehicle class will have the general attributes and behaviors. Then, you only need to code the specific differences in the child classes. Give us an example of objects that might have similar attributes and behaviors but enough differences to warrant an inheritance relationship. Then, explain the relationship and teach your classmates about inheritance.arrow_forwardUse the Animal class file given on the final exam module. Use Inheritance and Polymorphism concepts to create the following classes and functions. Create the following classes that derive from the Animal class. Monkey Kangaroo Create a derived class named Spider Monkey whose base class is Monkey. Create constructors for each class. Create destructors for each class. All classes will have the following private instance fields, including Animal legs that will initialize to 0 boolean swim that will initialize to false; All classes will have the following polymorphic methods, including Animal getLegs( ) – this returns the number of legs the animal has makeSount( ) – this outputs the type of sound the animal makes makeSound( ) method will be a virtual function in the Animal class Create an exception in the getLegs( ) method that makes sure the number of legs are valid (only allow positive number amount of legs) Create a main method to demonstrate the all functions including the…arrow_forward
- shows the complete anagram.cpp program. Use a class to represent the word to be anagrammed. Member functions of the class allow the word to be displayed, anagrammed, and rotated. The main() routine gets a word from the user, creates a word object with this word as an argument to the constructor, and calls the anagram() member function to anagram the word.arrow_forwardHow do I solve this classes exercises using Swift code? Classes 4/4arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





