Advertisement
jordanov

[OOP] Вештачко цвеќе

Aug 31st, 2016
458
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.59 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5.     class VestackoCveke{
  6.         protected:
  7.                 char ime[50];
  8.                 int cena;
  9.                 char boja[100];
  10.         public:
  11.                 VestackoCveke(){}
  12.  
  13.                 VestackoCveke(char ime[],int cena, char boja[]){
  14.                     strcpy(this->ime, ime);
  15.                     this->cena = cena;
  16.                     strcpy(this->boja, boja);
  17.                 }
  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 setBoja(char boja[]){
  36.                     strcpy(this->boja, boja);
  37.                 }
  38.  
  39.                 char *getBoja(){
  40.                     return boja;
  41.                 }
  42.  
  43.                 virtual float vratiCena()=0;
  44.  
  45.                 bool operator!=(VestackoCveke &vc){
  46.                 return strcmp(boja,vc.boja)!=0;
  47.                 }
  48.  
  49.                 ~VestackoCveke(){}
  50.  
  51.     };
  52.  
  53.     class SoSaksija : public VestackoCveke{
  54.         private:
  55.                 float masa;
  56.         public:
  57.                 SoSaksija(){}
  58.  
  59.                 SoSaksija(char ime[],int cena, char boja[], float masa) : VestackoCveke(ime, cena, boja){
  60.                     this->masa = masa;
  61.                 }
  62.  
  63.                 void setMasa(float masa){
  64.                     this->masa = masa;
  65.                 }
  66.  
  67.                 float getMasa(){
  68.                     return masa;
  69.                 }
  70.  
  71.                 float vratiCena(){
  72.                     return (float)cena+(masa*0.3);
  73.                 }
  74.  
  75.                 ~SoSaksija(){}
  76.     };
  77.  
  78.     class BezSaksija : public VestackoCveke{
  79.     private:
  80.             bool cvet;
  81.     public:
  82.             BezSaksija(){}
  83.             BezSaksija(char ime[],int cena, char boja[], bool cvet) : VestackoCveke(ime, cena, boja){
  84.                 this->cvet = cvet;
  85.             }
  86.  
  87.             void setCvet(bool cvet){
  88.                 this->cvet = cvet;
  89.             }
  90.  
  91.             bool getCvet(){
  92.                 return cvet;
  93.             }
  94.  
  95.             float vratiCena(){
  96.                 if(cvet) return cena+50;
  97.                     return cena;
  98.             }
  99.  
  100.             ~BezSaksija(){}
  101.  
  102.     };
  103.  
  104.             void pecatiMinCena(VestackoCveke **vc,int n,SoSaksija &novo){
  105.                int min=9999;
  106.                 int index;
  107.                 for(int i=0;i<n;i++){
  108.                     if(*vc[i]!=novo){
  109.                         int c=vc[i]->vratiCena();
  110.                         if(c<min){
  111.                             min=c;
  112.                             index=i;
  113.                         }
  114.                     }
  115.                 }
  116.             cout<<vc[index]->getIme()<<" "<<vc[index]->getBoja()<<" "<<vc[index]->vratiCena()<<endl;
  117.     }
  118. int main(){
  119.  
  120. char ime[20],boja[10];
  121. int tip,cena;
  122. float masa;
  123. bool cvet;
  124. int n;
  125. cin>>n;
  126. VestackoCveke  **cvekinja;
  127. cvekinja=new VestackoCveke *[n];
  128.  
  129. for (int i=0;i<n;i++){
  130.  
  131.     cin>>tip>>ime>>cena>>boja;
  132.     if (tip==1) {
  133.         cin>>masa;
  134.         cvekinja[i]=new SoSaksija(ime,cena,boja,masa);
  135.  
  136.     }
  137.     else {
  138.         cin>>cvet;
  139.         cvekinja[i]=new BezSaksija(ime,cena,boja,cvet);
  140.     }
  141.  
  142.  
  143. }
  144.  
  145. SoSaksija novo("ljubicici",45,"crvena",10.5);
  146. pecatiMinCena(cvekinja,n,novo);
  147.  
  148. for (int i=0;i<n;i++) delete cvekinja[i];
  149. delete [] cvekinja;
  150. return 0;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement