Advertisement
AnaGocevska

Untitled

Apr 7th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Pica
  7. {
  8.     private:
  9.    
  10.     char ime[15];
  11.     int cena;
  12.     char *sostojki;
  13.     int namaluvanje;
  14.    
  15.     public:
  16.    
  17.     Pica(char *ime="", int cena=0, char *sostojki="", int namaluvanje=0)
  18.     {
  19.         strcpy(this->ime, ime);
  20.         this->cena = cena;
  21.         this->sostojki = new char[strlen(sostojki)+1];
  22.         strcpy(this->sostojki, sostojki);
  23.         this->namaluvanje = namaluvanje;
  24.     }
  25.    
  26.     Pica(const Pica &p)
  27.     {
  28.         strcpy(this->ime, p.ime);
  29.         this->cena = p.cena;
  30.         this->sostojki = new char[strlen(p.sostojki)+1];
  31.         strcpy(this->sostojki, p.sostojki);
  32.         this->namaluvanje = p.namaluvanje;
  33.     }
  34.    
  35.     char *getSostojki()
  36.     {
  37.         return this->sostojki;
  38.     }
  39.    
  40.     char *getIme()
  41.     {
  42.         return this->ime;
  43.     }
  44.    
  45.     int getNamaluvanje()
  46.     {
  47.         return this->namaluvanje;
  48.     }
  49.    
  50.     void setIme(char *ime)
  51.     {
  52.         strcpy(this->ime, ime);
  53.     }
  54.    
  55.     int getCena()
  56.     {
  57.         return this->cena;
  58.     }
  59.    
  60.     void setCena(int cena)
  61.     {
  62.         this->cena=cena;
  63.     }
  64.    
  65.     ~Pica()
  66.     {
  67.         delete[]this->sostojki;
  68.     }
  69.    
  70.     void pecati()
  71.     {
  72.          cout<<this->ime<<" - "<<this->sostojki<<", "<<this->cena;
  73.     }
  74.    
  75.    
  76.    
  77.     bool istiSe(Pica p)
  78.     {
  79.         if(strcmp(this->sostojki, p.sostojki)==0)
  80.             return true;
  81.         return false;
  82.     }
  83.    
  84.     Pica &operator = (Pica &p)
  85.     {
  86.         strcpy(this->ime, p.ime);
  87.         this->cena = p.cena;
  88.         delete[]this->sostojki;
  89.         this->sostojki = new char[strlen(p.sostojki)+1];
  90.         strcpy(this->sostojki, p.sostojki);
  91.        
  92.         return *this;
  93.     }
  94.    
  95. };
  96.  
  97. class Picerija
  98. {
  99.     private:
  100.    
  101.     char ime[15];
  102.     Pica *pici;
  103.     int brPici;
  104.    
  105.     public:
  106.    
  107.     Picerija(char *ime="", Pica *pici=0, int brPici=0)
  108.     {
  109.         strcpy(this->ime, ime);
  110.         this->brPici = brPici;
  111.         this->pici = new Pica[brPici];
  112.         for(int i=0; i<brPici; i++)
  113.         {
  114.             this->pici[i] = pici[i];
  115.         }
  116.        
  117.     }
  118.    
  119.     Picerija(const Picerija &p)
  120.     {
  121.         strcpy(this->ime, p.ime);
  122.         this->brPici = p.brPici;
  123.         this->pici = new Pica[p.brPici];
  124.         for(int i=0; i<p.brPici; i++)
  125.         {
  126.             this->pici[i] = p.pici[i];
  127.         }
  128.     }
  129.    
  130.     char *getIme()
  131.     {
  132.         return this->ime;
  133.     }
  134.    
  135.     void setIme(char *ime)
  136.     {
  137.         strcpy(this->ime, ime);
  138.     }
  139.    
  140.    
  141.     ~Picerija()
  142.     {
  143.         delete[]this->pici;
  144.     }
  145.    
  146.     bool proverka(Pica t)
  147.     {
  148.         for(int i=0; i<brPici; i++)
  149.         {
  150.             if(strcmp(pici[i].getSostojki(), t.getSostojki())==0)
  151.             {
  152.                 return false;
  153.             }
  154.         }
  155.         return true;
  156.     }
  157.    
  158.     void dodadi(Pica p)
  159.     {
  160.         Pica t=p;
  161.         if(proverka(t))
  162.         {
  163.    
  164.         Pica *tmp;
  165.         tmp = new Pica[this->brPici+1];
  166.         for(int i=0; i<this->brPici; i++)
  167.         {
  168.             tmp[i] =this->pici[i];
  169.         }
  170.         delete[]this->pici;
  171.         this->pici = new Pica[this->brPici+1];
  172.         for(int i=0; i<brPici; i++)
  173.         {
  174.             this->pici[i]=tmp[i];
  175.         }
  176.         delete[]tmp;
  177.         this->pici[this->brPici] = p;
  178.         this->brPici++;
  179.         }
  180.     }
  181.    
  182.     void piciNaPromocija()
  183.     {
  184.         for(int i=0; i<this->brPici; i++)
  185.         {
  186.             if(this->pici[i].getNamaluvanje()>0 && this->pici[i].getNamaluvanje()<100)
  187.             {
  188.                 this->pici[i].pecati();
  189.                
  190.                 cout<<" ,"<<this->pici[i].getCena() - this->pici[i].getCena()*(this->pici[i].getNamaluvanje())/100;
  191.             }
  192.            
  193.         }
  194.     }
  195.            
  196. };
  197.  
  198. //Vasiot kod tuka
  199.  
  200. int main () {
  201.  
  202.     int n;
  203.     char ime[15];
  204.     cin >> ime;
  205.     cin >> n;
  206.  
  207.     Picerija p1(ime);
  208.     for(int i = 0; i < n; i++){
  209.         char imp[100];
  210.         cin.get();
  211.         cin.getline(imp,100);
  212.         int cena;
  213.         cin >> cena;
  214.         char sostojki[100];
  215.         cin.get();
  216.         cin.getline(sostojki,100);
  217.         int popust;
  218.         cin >> popust;
  219.         Pica p(imp,cena,sostojki,popust);
  220.         p1.dodadi(p);
  221.     }
  222.  
  223.     Picerija p2 = p1;
  224.     cin >> ime;
  225.     p2.setIme(ime);
  226.     char imp[100];
  227.     cin.get();
  228.     cin.getline(imp,100);
  229.     int cena;
  230.     cin >> cena;
  231.     char sostojki[100];
  232.     cin.get();
  233.     cin.getline(sostojki,100);
  234.     int popust;
  235.     cin >> popust;
  236.     Pica p(imp,cena,sostojki,popust);
  237.     p2.dodadi(p);
  238.  
  239.     cout<<p1.getIme()<<endl;
  240.     cout<<"Pici na promocija:"<<endl;
  241.     p1.piciNaPromocija();
  242.  
  243.     cout<<p2.getIme()<<endl;
  244.     cout<<"Pici na promocija:"<<endl;
  245.     p2.piciNaPromocija();
  246.  
  247.     return 0;
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement