Advertisement
jordanov

[OOP] Саксиско Цвеќе

Aug 31st, 2016
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.47 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class SaksiskoCveke{
  6.     protected:
  7.         char ime[50];
  8.         int cena;
  9.         char familija[200];
  10.  
  11.     public:
  12.         SaksiskoCveke(){}
  13.  
  14.         SaksiskoCveke(char ime[],int cena,char familija[]){
  15.             strcpy(this->ime, ime);
  16.             this -> cena = cena;
  17.             strcpy(this->familija, familija);
  18.         }
  19.             void setIme(char ime[]){
  20.                 strcpy(this->ime,ime);
  21.             }
  22.  
  23.             char *getIme(){
  24.                 return ime;
  25.             }
  26.  
  27.             void setCena(int cena){
  28.                 this->cena = cena;
  29.             }
  30.  
  31.             int getCena(){
  32.                 return cena;
  33.             }
  34.  
  35.             void setFamilija(char familija[]){
  36.                 strcpy(this->familija, familija);
  37.             }
  38.  
  39.             char *getFamilija(){
  40.                 return familija;
  41.             }
  42.  
  43.         virtual int presmetajCena()=0;
  44.  
  45.         bool operator==(SaksiskoCveke &sc){
  46.         return strcmp(familija,sc.familija)==0;
  47.         }
  48.  
  49.         void pecati(){
  50.         cout<<ime<<" "<<familija<<" ";
  51.         }
  52.  
  53.  
  54.  
  55.         ~SaksiskoCveke(){}
  56. };
  57.  
  58.     class SoCvet : public SaksiskoCveke{
  59.  
  60.     private:
  61.             int rascvetani;
  62.     public:
  63.         SoCvet(){}
  64.  
  65.         SoCvet(char ime[], int cena, char familija[], int rascvetani) : SaksiskoCveke(ime, cena, familija){
  66.             this->rascvetani = rascvetani;
  67.         }
  68.  
  69.         void setRascvetani(int rascvetani){
  70.             this->rascvetani = rascvetani;
  71.         }
  72.  
  73.         int getRascvetani(){
  74.             return rascvetani;
  75.         }
  76.  
  77.         int presmetajCena(){
  78.             return cena + rascvetani;
  79.         }
  80.  
  81.     };
  82.  
  83.     class BezCvet : public SaksiskoCveke{
  84.  
  85.     private:
  86.             int starost;
  87.     public:
  88.  
  89.             BezCvet(){}
  90.  
  91.             BezCvet(char ime[], int cena, char familija[],int starost) : SaksiskoCveke(ime, cena, familija){
  92.                 this->starost = starost;
  93.             }
  94.  
  95.             void setStarost(int starost){
  96.                 this->starost = starost;
  97.             }
  98.  
  99.             int getStarost(){
  100.                 return starost;
  101.             }
  102.  
  103.             int presmetajCena(){
  104.                 if(starost <= 10) return cena +20;
  105.                 else if(starost <= 35) return cena +10;
  106.                 else return cena;
  107.  
  108.             }
  109.  
  110.             ~BezCvet(){}
  111.     };
  112.  
  113.         void pecatiMaxCena(SaksiskoCveke **sc,int n,BezCvet &bc){
  114.             int maxx = 0;
  115.             int index = 0;
  116.             for(int i=0;i<n;i++){
  117.                 if(*(sc[i]) == bc){
  118.                     int cena = sc[i]->presmetajCena();
  119.                     if(cena > maxx){
  120.                         maxx = cena;
  121.                         index = i;
  122.                     }
  123.                 }
  124.             }
  125.  
  126.             sc[index]->pecati();
  127.             cout << maxx << endl;
  128.         }
  129.  
  130. int main(){
  131.  
  132. char ime[10],familija[10];
  133. int tip,starost,broj,cena;
  134. int n;
  135. cin>>n;
  136. SaksiskoCveke **cvekinja;
  137. cvekinja=new SaksiskoCveke*[n];
  138.  
  139. for (int i=0;i<n;i++){
  140.  
  141.     cin>>tip>>ime>>cena>>familija;
  142.     if (tip==1) {
  143.         cin>>starost;
  144.         cvekinja[i]=new BezCvet(ime,cena,familija,starost);
  145.  
  146.     }
  147.     else {
  148.         cin>>broj;
  149.         cvekinja[i]=new SoCvet(ime,cena,familija,broj);
  150.     }
  151. }
  152.  
  153. BezCvet nov("opuntia",90,"cactus",10);
  154. pecatiMaxCena(cvekinja,n,nov);
  155.  
  156. for (int i=0;i<n;i++) delete cvekinja[i];
  157. delete [] cvekinja;
  158. return 0;
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement