subject

Given a base Plant class and a derived Flower class, complete main() to create a vector called myGarden. The vector should be able to store objects that belong to the Plant class or the Flower class. Create a function called PrintVector(), that uses the PrintInfo() functions defined in the respective classes and prints each element in myGarden. The program should read plants or flowers from input (ending with -1), adding each Plant or Flower to the myGarden vector, and output each element in myGarden using the PrintInfo() function. I solved this question to the best of my ability, but I still getting an error. I need your help to fix this error. I will post a pictures with this error. Thank you.
Ex. If the input is:
plant Spirea 10
flower Hydrangea 30 false lilac
flower Rose 6 false white
plant Mint 4
-1
the output is:
Plant Information:
Plant name: Spirea
Cost: 10
Plant Information:
Plant name: Hydrengea
Cost: 30
Annual: false
Color of flowers: lilac
Plant Information: Plant name: Rose
Cost: 6 Annual: false
Color of flowers: white
Plant Information:
Plant name: Mint Cost: 4
main. cpp
#include "Plant. h"
#include "Flower. h"
#include "Plant. cpp"
#include "Flower. cpp"
#include
#include
#include
using namespace std;
// TODO: Define a PrintVector function that prints an vector of plant (or flower) object pointers
void PrintVector(vector myGarden)
{
for(int i=0; i {
if(typeid(Flower)==typeid(myGarden[ i]))
(dynamic_cast(myGarden[i]))->Pri ntInfo();
else
myGarden[i]->PrintInfo();
cout< }
}
int main(int argc, char* argv[]) {
// TODO: Declare a vector called myGarden that can hold object of type plant pointer
vector myGarden;
// TODO: Declare variables - plantName, plantCost, flowerName, flowerCost,
// colorOfFlowers, isAnnual
string plantName, flowerName, colorOfFlowers, isann;
bool isAnnual;
int plantCost, flowerCost;
string input;
Flower *flower;
Plant *plant;
cin >> input;
while(input != "-1") {
// TODO: Check if input is a plant or flower
if (input=="plant")
{
cin>>plantName;
cin>>plantCost;
plant = new Plant();
plant->SetPlantName(plantName);< br /> plant->SetPlantCost(plantCost);< br /> myGarden. push_back(plant);
}
else if(input=="flower")
{
cin>>flowerName;
cin>>flowerCost;
cin>>isann;
isAnnual = (isann=="true");
cin>>colorOfFlowers;
flower = new Flower();
flower->SetPlantName(flowerName) ;
flower->SetPlantCost(flowerCost) ;
flower->SetPlantType(isAnnual);< br /> flower->SetColorOfFlowers(colorO fFlowers);
myGarden. push_back(flower);
}
// Store as a plant object or flower object
// Add to the vector myGarden
cin >> input;
}
// TODO: Call the method PrintVector to print myGarden
PrintVector(myGarden);
for (size_t i = 0; i < myGarden. size(); ++i) {
delete myGarden. at(i);
}
return 0;
}
Plant. h
#ifndef PLANTH
#define PLANTH
#include
using namespace std;
class Plant {
public:
virtual ~Plant();
void SetPlantName(string userPlantName);
string GetPlantName() const;
void SetPlantCost(int userPlantCost);
int GetPlantCost() const;
virtual void PrintInfo() const;
protected:
string plantName;
int plantCost;
};
#endif
Plant. cpp
#include "Plant. h"
#include
Plant::~Plant() {};
void Plant::SetPlantName(string userPlantName) {
plantName = userPlantName;
}
string Plant::GetPlantName() const {
return plantName;
}
void Plant::SetPlantCost(int userPlantCost) {
plantCost = userPlantCost;
}
int Plant::GetPlantCost() const {
return plantCost;
}
void Plant::PrintInfo() const {
cout << "Plant Information:" << endl;
cout << " Plant name: " << plantName << endl;
cout << " Cost: " << plantCost << endl;
}
Flower. h
#ifndef FLOWERH
#define FLOWERH
#include "Plant. h"
#include
using namespace std;
class Flower : public Plant {
public:
void SetPlantType(bool userIsAnnual);
bool GetPlantType() const;
void SetColorOfFlowers(string userColorOfFlowers);
string GetColorOfFlowers() const;
void PrintInfo() const;
private:
bool isAnnual;
string colorOfFlowers;
};
#endif
Flower. cpp
#include "Flower. h"
#include
void Flower::SetPlantType(bool userIsAnnual) {
isAnnual = userIsAnnual;
}
bool Flower::GetPlantType() const {
return isAnnual;
}
void Flower::SetColorOfFlowers(string userColorOfFlowers) {
colorOfFlowers = userColorOfFlowers;
}
string Flower::GetColorOfFlowers() const {
return colorOfFlowers;
}
void Flower::PrintInfo() const {
cout << "Plant Information:" << endl;
cout << " Plant name: " << plantName << endl;
cout << " Cost: " << plantCost << endl;
cout << " Annual: " << boolalpha << isAnnual << endl;
cout << " Color of flowers: " << colorOfFlowers << endl;
}

ansver
Answers: 1

Other questions on the subject: Computers and Technology

image
Computers and Technology, 22.06.2019 16:50, Tyrant4life
Consider a slotted aloha system, where the time slot equals the fixed duration of each packet. assume that there are 4 stations a, b,c, d sharing the medium. (a) stations a, b,c, d receive one packet each from higher layers at times 1.3, 1.5, 2.6,5.7 respectively. show which transmissions take place when, according to the slottedaloha protocol; describe all transmissions until all four packets have been successful. when needed, each station has access to the following sequence of random number, provided by a random number generator and drawn uniformly between 0 and 1: (1) station a draws numbers: 0.31, 0.27, 0.78, 0.9, 0.9, 0.11, 0. (2) station b draws numbers: 0.45, 0.28, 0.11, 0.83, 0.37, 0.22, 0. (3)station c draws numbers: 0.1, 0.2, 0.3, 0.4, 0. (4) station d draws numbers: 0.36, 0.77, 0.9, 0.1, 0.1, 0.1, 0.1, 0. (b) in slotted aloha, a station transmits in each time slot with a given probability. what probabilities would you assign to each of the four stations so as to: (i) maximize the efficiency of the protocol? (ii) maximize fairness among the four stations? (c) will the efficiency increase or decrease if we modify slotted aloha as follows: (i) get rid of slots and allow stations to transmit immediately? (ii) implement carrier sensing? (iii) implement collision detection? (iv) implement collision avoidance?
Answers: 3
image
Computers and Technology, 24.06.2019 00:30, bsonicx
The best definition of an idiom is a. a word or phrase that describes a noun b. a word or phrase describing a verb c. a phrase containing figurative language in which the word expresses a different idea from its exact meaning d. a phrase that compares two unlike objects or ideas
Answers: 2
image
Computers and Technology, 24.06.2019 03:00, greenhappypiggies
Using a conditional expression, write a statement that increments numusers if updatedirection is 1, otherwise decrements numusers. ex: if numusers is 8 and updatedirection is 1, numusers becomes 9; if updatedirection is 0, numusers becomes 7.
Answers: 1
image
Computers and Technology, 24.06.2019 03:40, Eylul30
4. does the kernel phenotype distribution support the idea that the cob is the result of a dihybrid cross? what information supports your answer? if a dihybrid cross (i. e. f1 to f2 of standard mendelian crosses) is not indicated what conditions might contribute to this finding.
Answers: 2
You know the right answer?
Given a base Plant class and a derived Flower class, complete main() to create a vector called myGar...

Questions in other subjects:

Konu
Mathematics, 10.10.2019 16:00