Advertisement
ekrajchevska

Umetnicko Delo OOP Auditoriski 11

Apr 26th, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. #include <iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. class UmetnickoDelo
  6. {
  7. protected:
  8.     int godina;
  9.     char *avtor;
  10.     float cena;
  11.  
  12. public:
  13.     UmetnickoDelo(char *avtor="",int godina=0,float cena=0.0)
  14.     {
  15.         this->godina=godina;
  16.         this->cena=cena;
  17.         this->avtor=new char[strlen(avtor)+1];
  18.         strcpy(this->avtor,avtor);
  19.     }
  20.     virtual float presmetajCena()=0;
  21.     bool operator>(UmetnickoDelo &u)
  22.     {
  23.         return this->presmetajCena() > u.presmetajCena();
  24.     }
  25.     friend ostream& operator<< (ostream &output,UmetnickoDelo &u)
  26.     {
  27.         output<<u.avtor<<" "<<u.godina<<" "<<u.presmetajCena()<<endl;
  28.         return output;
  29.     }
  30.     virtual ~UmetnickoDelo()
  31.     {
  32.         delete [] this->avtor;
  33.     }
  34.  
  35.  
  36. };
  37. class MuzickoDelo : public UmetnickoDelo
  38. {
  39. private:
  40.     char zanr[30];
  41.     static int x;
  42. public:
  43.  
  44.     MuzickoDelo(char *avtor="",int godina=0,float cena=0.0,char zanr[50]=""):UmetnickoDelo(avtor,godina,cena)
  45.     {
  46.         strcpy(this->zanr,zanr);
  47.     }
  48.     float presmetajCena()
  49.     {
  50.         if(godina>=1601 && godina<=1700)
  51.             return cena+(cena*x/100.0);
  52.         return this->cena;
  53.     }
  54.     static void setX(int y) { MuzickoDelo::x=y; }
  55.     static int getX() { return MuzickoDelo::x; }
  56.  
  57. };
  58. int MuzickoDelo::x=20;
  59. class SlikarskoDelo : public UmetnickoDelo
  60. {
  61. private:
  62.     char tehnika[30];
  63.     int oshtetenost;
  64. public:
  65.     SlikarskoDelo(char *avtor="",int godina=0,float cena=0.0,char tehnika[30]="",int oshtetenost=0):UmetnickoDelo(avtor,godina,cena)
  66.     {
  67.         strcpy(this->tehnika,tehnika);
  68.         this->oshtetenost=oshtetenost;
  69.     }
  70.     float presmetajCena()
  71.     {
  72.         return cena-(cena*oshtetenost/100.00);
  73.     }
  74.  
  75. };
  76. void najskapoDelo (UmetnickoDelo** dela, int n)
  77. {
  78.     int maxCena=dela[0]->presmetajCena();
  79.     int index=-1;
  80.     for(int i=1;i<n;i++)
  81.     {
  82.         if(dela[i]->presmetajCena() > maxCena)
  83.         {
  84.             maxCena=dela[i]->presmetajCena();
  85.             index=i;
  86.         }
  87.     }
  88.     cout<<*dela[index];
  89. }
  90. int main()
  91. {
  92.  UmetnickoDelo** dela = new UmetnickoDelo*[3];
  93.  dela[0] = new SlikarskoDelo ("sdelo1", 1222, 1000, "tehn1", 50);
  94.  cout<<*dela[0];
  95.  dela[1] = new MuzickoDelo ("mdelo1", 1622, 1000, "zanr1");
  96.  cout<<*dela[1];
  97.  dela[2] = new MuzickoDelo ("mdelo2", 2004, 500, "zanr2");
  98.  cout<<*dela[2];
  99.  cout<<endl;
  100.  cout<<"Najskapo Delo: " << endl;
  101.  najskapoDelo(dela, 3);
  102.  
  103.  
  104.  return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement