Advertisement
AnaGocevska

Untitled

May 13th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class ZicanInstrument
  6. {
  7. protected:
  8.     char ime[20];
  9.     int brZici;
  10.     int cena;
  11. public:
  12.     ZicanInstrument(char *ime="", int brZici=0, int cena=0)
  13.     {
  14.         strcpy(this->ime, ime);
  15.         this->brZici=brZici;
  16.         this->cena=cena;
  17.     }
  18.  
  19.     int getBrZici()
  20.     {
  21.         return this->brZici;
  22.     }
  23.  
  24.     virtual float price()=0;
  25. };
  26.  
  27. class Mandolina:public ZicanInstrument
  28. {
  29. protected:
  30.     char forma[20];
  31. public:
  32.     Mandolina(char *ime="", int brZici=0, int cena=0, char *forma=""):ZicanInstrument(ime, brZici, cena)
  33.     {
  34.         strcpy(this->forma, forma);
  35.     }
  36.  
  37.     float price()
  38.     {
  39.         if(strcmp(forma,"Neapolitan")==0)
  40.         {
  41.             return cena+(cena*15)/100;
  42.         }
  43.         return cena;
  44.     }
  45.  
  46.     bool operator==(Mandolina &m)
  47.     {
  48.         return this->brZici==m.brZici;
  49.     }
  50.  
  51.     friend ostream &operator<<(ostream &out, Mandolina &m)
  52.     {
  53.         return out<<m.ime<<m.brZici<<m.cena<<endl;
  54.     }
  55. };
  56.  
  57. class Violina:public ZicanInstrument
  58. {
  59. protected:
  60.     float golemina;
  61. public:
  62.     Violina(char *ime="", int brZici=0, int cena=0, float golemina=0):ZicanInstrument(ime, brZici, cena)
  63.     {
  64.         this->golemina=golemina;
  65.     }
  66.  
  67.     float price()
  68.     {
  69.         if(golemina==0.25)
  70.         {
  71.           return cena+(cena*10)/100;
  72.         }
  73.         if(golemina==1)
  74.            {
  75.             return cena+(cena*20)/100;
  76.            }
  77.         return cena;
  78.     }
  79.  
  80.     bool operator==(Violina &v)
  81.     {
  82.         return this->brZici==v.brZici;
  83.     }
  84.  
  85.     friend ostream &operator<<(ostream &out, Violina &v)
  86.     {
  87.         return out<<v.ime<<v.brZici<<v.cena<<endl;
  88.     }
  89. };
  90.  
  91. void pecatiInstrumenti(ZicanInstrument &zi, ZicanInstrument **i, int n)
  92. {
  93.     for(int c=0; c<n; c++)
  94.     {
  95.         if(i[c]->getBrZici()==zi.getBrZici())
  96.             cout<<i[c]->price();
  97.     }
  98. }
  99.  
  100. int main()
  101. {
  102.     char ime[20];
  103.     int brZici;
  104.     float cena;
  105.     char forma[20];
  106.     cin >> ime >> brZici >> cena >> forma;
  107.     Mandolina m(ime, brZici, cena, forma);
  108.     int n;
  109.     cin >> n;
  110.     ZicanInstrument **zi = new ZicanInstrument *[2 * n];
  111.     for(int i=0; i<n; i++)
  112.     {
  113.         cin >> ime >> brZici >> cena >> forma;
  114.         zi[i] = new Mandolina(ime, brZici, cena, forma);
  115.     }
  116.     for(int i=0; i<n; i++)
  117.     {
  118.         float golemina;
  119.         cin >> ime >> brZici >> cena >> golemina;
  120.         zi[n+i] = new Violina(ime, brZici, cena, golemina);
  121.     }
  122.     pecatiInstrumenti(m, zi, 2*n);
  123.     for(int i = 0; i < 2 * n; ++i) {
  124.         delete zi[i];
  125.     }
  126.     delete [] zi;
  127.     return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement