Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Fruct
- {
- protected:
- double g;
- char* nume;
- public:
- Fruct()
- {
- g=0;
- nume=NULL;
- }
- Fruct(double a,const char* n)
- {
- g=a;
- nume=NULL;
- if(n)
- {
- nume=new char[strlen(n)+1];
- strcpy(nume,n);
- }
- //cout<<"fruct"<<g<<endl;
- }
- ~Fruct()
- {
- if(nume)
- {
- delete[] nume;
- }
- }
- virtual double modProcesare()=0;
- virtual char* Gust_Fruct()=0;
- };
- class Banana: public Fruct
- {
- public:
- Banana():Fruct(){}
- Banana(double a):Fruct(a,"banana")
- {
- // cout<<"banana"<<g<<endl;
- }
- double modProcesare()
- {
- cout<<"Se curata coaja si se taie in felii"<<endl;
- return g-(g*10/100);
- }
- char* Gust_Fruct()
- {
- return "dulce";
- }
- };
- class Mar: public Fruct
- {
- public:
- Mar():Fruct(){}
- Mar(double a):Fruct(a,"mar"){}
- double modProcesare()
- {
- cout<<"Se curata coaja si se inlatura cotorul apoi se feliaza"<<endl;
- return g-(g*20/100);
- }
- char* Gust_Fruct()
- {
- return "dulce";
- }
- };
- class Lamaie: public Fruct
- {
- public:
- Lamaie():Fruct(){}
- Lamaie(double a):Fruct(a,"lamaie"){}
- double modProcesare()
- {
- cout<<"Se curata de coaja si se feliaza"<<endl;
- return g-(g*15/100);
- }
- char* Gust_Fruct()
- {
- return "acru";
- }
- };
- class Grepfrut:public Fruct
- {
- public:
- Grepfrut():Fruct(){}
- Grepfrut(double a):Fruct(a,"grepfrut"){}
- double modProcesare()
- {
- cout<<"Se curata coaja si se taie in felii"<<endl;
- return g-(g*12/100);
- }
- char* Gust_Fruct()
- {
- return "amar";
- }
- };
- class Cos :public Banana,public Mar,public Lamaie,public Grepfrut
- {
- static double g_total;
- static double dulce;
- static double amar;
- static double acru;
- public:
- Cos():Banana(),Mar(),Lamaie(),Grepfrut(){}
- Cos(double a,char* n):Banana(0),Mar(0),Lamaie(0),Grepfrut(0)
- {
- if(strcmp(n,"banana")==0)
- {
- Banana::g=a;
- // dulce+=a;
- }
- else if(strcmp(n,"mar")==0)
- {
- Mar::g=a;
- // dulce+=a;
- }
- else if(strcmp(n,"lamaie")==0)
- {
- Lamaie::g=a;
- //acru+=a;
- }
- else if(strcmp(n,"grepfrut")==0)
- {
- Grepfrut::g=a;
- // amar+=a;
- }
- // g_total+=a;
- }
- void Afisare()
- {
- if(Banana::g!=0)
- {
- cout<<Banana::nume<<" , "<<Banana::g<<" kg "<<endl;
- Banana::g=Banana::modProcesare();
- dulce+=Banana::g;
- g_total+=Banana::g;
- }
- else if(Mar::g!=0)
- {
- cout<<Mar::nume<<" , "<<Mar::g<<" kg "<<endl;
- Mar::g=Mar::modProcesare();
- dulce+=Mar::g;
- g_total+=Mar::g;
- }
- else if(Lamaie::g!=0)
- {
- cout<<Lamaie::nume<<" , "<<Lamaie::g<<" kg "<<endl;
- Lamaie::g=Lamaie::modProcesare();
- acru+=Lamaie::g;
- g_total+=Lamaie::g;
- }
- else if(Grepfrut::g!=0)
- {
- cout<<Grepfrut::nume<<" , "<<Grepfrut::g<<" kg "<<endl;
- Grepfrut::g=Grepfrut::modProcesare();
- amar+=Grepfrut::g;
- g_total+=Grepfrut::g;
- }
- }
- void Afisare_g_total()
- {
- cout<<endl<<"Greutatea totala din cos "<<g_total<<endl;
- if(dulce>amar && dulce>acru)
- {
- cout<<"gustul preponderent este dulce cu "<<dulce/g_total*100<<"%"<<endl;
- }
- if(amar>dulce && amar> acru)
- {
- cout<<"gustul preponderent este amar cu "<<amar/g_total*100<<"%"<<endl;
- }
- if(acru>dulce && acru>amar)
- {
- cout<<"gustul preponderent este acru cu "<<acru/g_total*100<<"%"<<endl;
- }
- }
- };
- double Cos::g_total=0.0;
- double Cos::amar=0.0;
- double Cos::dulce=0.0;
- double Cos::acru=0.0;
- int main()
- {
- Cos *A,*B;
- int n;
- double g;
- char nume[20];
- cin>>n;
- A=new Cos[n];
- for(int i=0;i<n;i++)
- {
- cin>>nume>>g;
- B=new Cos(g,nume);
- A[i]=*B;
- }
- for(int i=0;i<n;i++)
- {
- A[i].Afisare();
- }
- A[0].Afisare_g_total();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement