Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Fruct
- {
- protected:
- double greutate;
- Fruct()
- {
- greutate = 0;
- }
- public:
- Fruct(double x)
- {
- greutate = x;
- }
- virtual double modProcesare() = 0;
- virtual char *gust() = 0;
- virtual double greutatex() = 0;
- virtual void gustfruct() = 0;
- };
- class Lamaie:public Fruct
- {
- protected:
- Lamaie() :Fruct()
- {}
- public:
- Lamaie(double y) :Fruct(y)
- {}
- double modProcesare()
- {
- cout << "Fructul este lamaie,se curata de coaja si se feliaza. ";
- greutate = 0.85*greutate;
- return greutate;
- }
- char *gust()
- {
- return "acru";
- }
- double greutatex()
- {
- return greutate;
- }
- void gustfruct()
- {
- cout << "Fructul este acru." << endl;
- }
- };
- class Banana :public Fruct
- {
- protected:
- Banana() :Fruct()
- {}
- public:
- Banana(double y) :Fruct(y)
- {}
- double modProcesare()
- {
- cout << "Fructul este banana,se curata coaja si se taie in felii. ";
- greutate = 0.9*greutate;
- return greutate;
- }
- char *gust()
- {
- return "dulce";
- }
- double greutatex()
- {
- return greutate;
- }
- void gustfruct()
- {
- cout << "Fructul este dulce." << endl;
- }
- };
- class Mar :public Fruct
- {
- protected:
- Mar() :Fruct()
- {}
- public:
- Mar(double y) :Fruct(y)
- {}
- double modProcesare()
- {
- cout << "Fructul este mar,se curata coaja si se inlatura cotorul apoi se feliaza. ";
- greutate = 0.8*greutate;
- return greutate;
- }
- char *gust()
- {
- return "dulce";
- }
- double greutatex()
- {
- return greutate;
- }
- void gustfruct()
- {
- cout << "Fructul este dulce." << endl;
- }
- };
- class Grapefruit :public Fruct
- {
- protected:
- Grapefruit() :Fruct()
- {}
- public:
- Grapefruit(double y) :Fruct(y)
- {}
- double modProcesare()
- {
- cout << "Fructul este grapefruit,se curata de coaja si se feliaza. ";
- greutate = 0.88*greutate;
- return greutate;
- }
- char *gust()
- {
- return "amar";
- }
- double greutatex()
- {
- return greutate;
- }
- void gustfruct()
- {
- cout << "Fructul este amar." << endl;
- }
- };
- void functie(Fruct *x[10])
- {
- for (int i = 0; i < 10; i++)
- {
- cout << x[i]->modProcesare() << endl;
- cout << endl;
- }
- double greutatetot = 0;
- for (int i = 0; i < 10; i++)
- {
- greutatetot = greutatetot+x[i]->greutatex();
- }
- cout << "Greutatea totala dupa prelucrare a tuturor fructelor din cos: " << greutatetot << "kg."<< endl;
- double a = 0,b = 0, c = 0;
- for (int i = 0; i < 10; i++)
- {
- if (x[i]->gust() == "acru")
- {
- a = a + x[i]->greutatex();
- }
- else
- if (x[i]->gust() == "amar")
- {
- b = b + x[i]->greutatex();
- }
- else
- if (x[i]->gust() == "dulce")
- {
- c = c + x[i]->greutatex();
- }
- }
- cout << "Kg de fructe acre:" << a << endl;
- cout << "Kg de fructe amare:" << b << endl;
- cout << "Kg de fructe dulci:" << c << endl;
- double lasuta = 0;
- if (a > b && a > c)
- {
- lasuta = (a * 100) / greutatetot;
- cout << "Amestecul este: " << lasuta << "% acru." << endl;
- }
- if (b > a && b > c)
- {
- lasuta = (b * 100) / greutatetot;
- cout << "Amestecul este: " << lasuta << "% amar."<<endl;
- }
- if (c > b && c > a)
- {
- lasuta = (c * 100) / greutatetot;
- cout << "Amestecul este: " << lasuta << "% dulce."<<endl;
- }
- }
- int main()
- {
- Lamaie a(10);
- Mar b(10);
- Grapefruit c(10);
- Banana d(10);
- //cout << a.modProcesare() << endl;
- //cout << b.modProcesare() << endl;
- //cout << c.modProcesare() << endl;
- //cout << d.modProcesare() << endl;
- //a.gustfruct();
- //b.gustfruct();
- //c.gustfruct();
- //d.gustfruct();
- Fruct *CosFructe[10];
- CosFructe[0] = new Lamaie(10);
- CosFructe[1] = new Grapefruit(10);
- CosFructe[2] = new Mar(10);
- CosFructe[3] = new Banana(10);
- CosFructe[4] = new Mar(10);
- CosFructe[5] = new Mar(10);
- CosFructe[6] = new Banana(10);
- CosFructe[7] = new Banana(10);
- CosFructe[8] = new Lamaie(10);
- CosFructe[9] = new Grapefruit(10);
- functie(CosFructe);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement