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

Another question on Computers and Technology

question
Computers and Technology, 22.06.2019 11:40
Pthreads programming: create and terminate a thread write a c++ program that creates a thread. the main will display a message “hello world from the main”. the main will create a thread that will display a message “hello world from the thread” and then terminates with a call to pthread_exit()
Answers: 3
question
Computers and Technology, 22.06.2019 22:30
Write a full class definition for a class named player , and containing the following members: a data member name of type string .a data member score of type int .a member function called setname that accepts a parameter and assigns it to name . the function returns no value.a member function called setscore that accepts a parameter and assigns it to score . the function returns no value.a member function called getname that accepts no parameters and returns the value of name .a member function called getscore that accepts no parameters and returns the value of score .this is what i have, aparently this is wrong: class player{private: string name; int score; public: void player: : setname (string n){name =n; }void player: : setscore (int s){score = s; }string player: : getname (){return name; }int player: : getscore (){return score; }};
Answers: 2
question
Computers and Technology, 24.06.2019 13:30
Write a program that uses a two-dimensional array to store the highest and lowest temperatures for each month of the year. the program should output the average high, average low, and the highest and lowest temper- atures for the year. your program must consist of the following functions: a. function getdata: this function reads and stores data in the two- dimensional array. b. function averagehigh: this function calculates and returns the average high temperature for the year. c. function averagelow: this function calculates and returns the aver- age low temperature for the year. d. function indexhightemp: this function returns the index of the highest high temperature in the array. e. function indexlowtemp: this function retur
Answers: 3
question
Computers and Technology, 25.06.2019 12:30
In a paragraph of no less than 125 words, explain what netiquette is and how it improves efficiency and productivity in the workplace.
Answers: 1
You know the right answer?
Given a base Plant class and a derived Flower class, complete main() to create a vector called myGar...
Questions
question
Mathematics, 18.12.2020 09:00
question
Mathematics, 18.12.2020 09:00
question
Mathematics, 18.12.2020 09:00
question
Mathematics, 18.12.2020 09:00
question
History, 18.12.2020 09:00
question
Chemistry, 18.12.2020 09:00
Questions on the website: 13722359