Advertisement
nikolaliltek

Picerija

Mar 15th, 2017
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. //Vasiot kod tuka
  7. class Pica{
  8. private:
  9.     char name[15];
  10.     int price;
  11.     char *ing;
  12.     int discount;
  13. public:
  14.  
  15.     Pica(char *name="", int price=0, char *ing="", int discount=0){
  16.         strcpy(this->name,name);
  17.         this->price=price;
  18.         this->discount=discount;
  19.         this->ing = new char[strlen(ing)+1];
  20.         strcpy(this->ing,ing);
  21.     }
  22.    
  23.     Pica(const Pica& p){
  24.         strcpy(name,p.name);
  25.         price=p.price;
  26.         discount=p.discount;
  27.         ing = new char[strlen(p.ing)+1];
  28.         strcpy(ing,p.ing);
  29.     }
  30.    
  31.     Pica& operator=(const Pica& p){
  32.         if (this==&p) return *this;
  33.         strcpy(name,p.name);
  34.         price=p.price;
  35.         discount=p.discount;
  36.         delete [] ing;
  37.         ing = new char[strlen(p.ing)+1];
  38.         strcpy(ing,p.ing);
  39.         return *this;
  40.     }
  41.    
  42.     void pecati(){
  43.         cout<<name<<" - "<<ing<<", "<<price;
  44.     }
  45.    
  46.     bool istiSe(Pica p){
  47.         if (strcmp(ing,p.ing)==0) return true;
  48.         return false;
  49.     }
  50.    
  51.     char* getSostojki(){return ing;}
  52.    
  53.     int getD(){ return discount; }
  54.    
  55.     int getCena(){ return price; }
  56.    
  57.     ~Pica(){
  58.     delete [] ing;
  59.     }
  60.    
  61. };
  62.  
  63. class Picerija{
  64. private:
  65.     char name[15];
  66.     Pica *pici;
  67.     int br;
  68. public:
  69.     Picerija(char *ime=""){
  70.         strcpy(name,ime);
  71.         br=0;
  72.         pici=new Pica[1];
  73.         Pica x;
  74.         pici[0]=x;
  75.     }
  76.    
  77.     Picerija (Picerija& p){
  78.         strcpy(name,p.name);
  79.         br=p.br;
  80.         pici=new Pica[p.br];
  81.         for(int i=0;i<br;i++){
  82.             pici[i]=p.pici[i];
  83.         }
  84.     }
  85.    
  86.     Picerija& operator=(Picerija& p){
  87.         if(this==&p) return *this;
  88.         strcpy(name,p.name);
  89.         br=p.br;
  90.         delete [] pici;
  91.         pici=new Pica[p.br];
  92.         for(int i=0;i<br;i++){
  93.             pici[i]=p.pici[i];
  94.         }
  95.         return *this;
  96.     }
  97.    
  98.     void dodadi(Pica p){
  99.         for(int i=0;i<br;i++){
  100.             if (strcmp(p.getSostojki(),pici[i].getSostojki())==0) return;
  101.             }
  102.        
  103.                 Pica *tmp;
  104.                 tmp=new Pica[br+1];
  105.                 for(int i=0;i<br;i++) tmp[i]=pici[i];
  106.                 tmp[br]=p;
  107.                 delete [] pici;
  108.                 pici=tmp;
  109.                 br++;
  110.        
  111.        
  112.     }
  113.    
  114.     void piciNaPromocija(){
  115.      
  116.         for(int j=0;j<br;j++){
  117.          
  118.             if(pici[j].getD()>0){
  119.                
  120.                 pici[j].pecati();
  121.                 float c=pici[j].getCena()/float(100);
  122.                 float x=pici[j].getCena()-c*pici[j].getD();
  123.                 cout<<" "<<x<<endl;
  124.             }
  125.         }
  126.     }
  127.    
  128.     void setIme(char* ime){ strcpy(name,ime); }
  129.     char* getIme(){ return name; }
  130.    
  131.     ~Picerija(){
  132.     delete [] pici;
  133.     }
  134.    
  135. };
  136.  
  137. int main () {
  138.  
  139.     int n;
  140.     char ime[15];
  141.     cin >> ime;
  142.     cin >> n;
  143.  
  144.     Picerija p1(ime);
  145.     for(int i = 0; i < n; i++){
  146.         char imp[100];
  147.         cin.get();
  148.         cin.getline(imp,100);
  149.         int cena;
  150.         cin >> cena;
  151.         char sostojki[100];
  152.         cin.get();
  153.         cin.getline(sostojki,100);
  154.         int popust;
  155.         cin >> popust;
  156.         Pica p(imp,cena,sostojki,popust);
  157.         p1.dodadi(p);
  158.     }
  159.  
  160.     Picerija p2 = p1;
  161.     cin >> ime;
  162.     p2.setIme(ime);
  163.     char imp[100];
  164.     cin.get();
  165.     cin.getline(imp,100);
  166.     int cena;
  167.     cin >> cena;
  168.     char sostojki[100];
  169.     cin.get();
  170.     cin.getline(sostojki,100);
  171.     int popust;
  172.     cin >> popust;
  173.     Pica p(imp,cena,sostojki,popust);
  174.     p2.dodadi(p);
  175.  
  176.     cout<<p1.getIme()<<endl;
  177.     cout<<"Pici na promocija:"<<endl;
  178.     p1.piciNaPromocija();
  179.  
  180.     cout<<p2.getIme()<<endl;
  181.     cout<<"Pici na promocija:"<<endl;
  182.     p2.piciNaPromocija();
  183.  
  184.     return 0;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement