Advertisement
AnaGocevska

Untitled

May 5th, 2015
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. class Igrachka
  8. {
  9.   public:
  10.     virtual float getVolumen() = 0;
  11.     virtual float getMasa() = 0;
  12. };
  13.  
  14. class Forma {
  15. protected:
  16.     char boja[100];
  17.     int gustina;
  18. public:
  19.     // да се имплементираат потребните методи
  20.     Forma(const char *boja="" , int gustina=0)
  21.     {
  22.       strcpy(this->boja,boja);
  23.         this->gustina=gustina;
  24.     }
  25.  
  26. };
  27.  
  28. class Topka : virtual public Igrachka , public Forma
  29. {
  30.     protected: int radius;
  31.  
  32.     public: Topka(const char *boja="" , int gustina=0 , int radius=0)
  33.             {
  34.               strcpy(this->boja,boja);
  35.               this->gustina=gustina;
  36.               this->radius=radius;
  37.             }
  38.  
  39.             float getVolumen()
  40.             {
  41.                 return 3.14*4/3*radius*radius*radius;
  42.             }
  43.             float getMasa()
  44.             {
  45.               return getVolumen()*gustina;
  46.             }
  47. };
  48.  
  49. class Kocka : virtual public Igrachka, public Forma
  50. {
  51. protected: int visina;
  52.            int sirina;
  53.            int dlabocina;
  54. public:    Kocka(const char *boja="", int gustina=0 ,int visina=0, int sirina=0, int dlabocina=0)
  55.            {
  56.              strcpy(this->boja,boja);
  57.              this->gustina=gustina;
  58.              this->visina=visina;
  59.              this->sirina=sirina;
  60.              this->dlabocina=dlabocina;
  61.            }
  62.  
  63.            float getVolumen()
  64.            {
  65.              return sirina*visina*dlabocina;
  66.            }
  67.  
  68.            float getMasa()
  69.            {
  70.             return getVolumen()*gustina;
  71.            }
  72.  
  73. };
  74.  
  75. int main()
  76. {
  77.     int n;
  78.     cin>>n;
  79.     Igrachka **kupche= new Igrachka*[n];
  80.     for(int i=0; i<n; i++)
  81.        {
  82.         int type;
  83.         cin>>type;
  84.         if(type==1)
  85.           {
  86.             char boja[20];
  87.             int gustina;
  88.             int radius;
  89.             cin>>boja;
  90.             cin>>gustina;
  91.             cin>>radius;
  92.             kupche[i]=new Topka(boja, gustina, radius);
  93.            }
  94.         if(type==2)
  95.           {
  96.             char boja[20];
  97.             int gustina, visina, shirina, dlabochina;
  98.             cin>>boja;
  99.             cin>>gustina;
  100.             cin>>visina;
  101.             cin>>shirina;
  102.             cin>>dlabochina;
  103.             kupche[i]=new Kocka(boja, gustina, visina, shirina, dlabochina);
  104.         }
  105.     }
  106.     float total;
  107.     for(int i=0; i<n; i++)
  108.        {
  109.          total+=kupche[i]->getMasa();
  110.        }
  111.     char boja[20];
  112.     int gustina, visina, shirina, dlabochina;
  113.     cin>>boja;
  114.     cin>>gustina;
  115.     cin>>visina;
  116.     cin>>shirina;
  117.     cin>>dlabochina;
  118.     Kocka petra(boja, gustina, visina, shirina, dlabochina);
  119.     if(total>petra.getMasa())
  120.       {
  121.         cout<<"DA"<<endl;
  122.       }
  123.     else
  124.       {
  125.         cout<<"NE"<<endl;
  126.       }
  127.     float maxvolumen=kupche[0]->getVolumen();
  128.     for(int i=1;i<n;i++)
  129.        {
  130.         if(maxvolumen<kupche[i]->getVolumen())
  131.           {
  132.             maxvolumen=kupche[i]->getVolumen();
  133.           }
  134.        }
  135.     cout<<"Razlikata e: "<<abs(maxvolumen-petra.getVolumen())<<endl;
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement