Advertisement
deko96

Untitled

Sep 9th, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.46 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. class Patnik
  6. {
  7. private:
  8.     char ime[100];
  9.     bool klasa;
  10.     int bagaz;
  11. public:
  12.     Patnik() {};
  13.     Patnik(char *i, int b, bool k)
  14.     {
  15.         strcpy(ime,i);
  16.         klasa=k;
  17.         bagaz=b;
  18.     }
  19.     Patnik(Patnik &p)
  20.     {
  21.         strcpy(ime,p.ime);
  22.         klasa=p.klasa;
  23.         bagaz=p.bagaz;
  24.     }
  25.  
  26.  
  27.     char *get_ime()
  28.     {
  29.         return ime;
  30.     }
  31.     bool get_klasa()
  32.     {
  33.         return klasa;
  34.     }
  35.     int get_bagaz()
  36.     {
  37.         return bagaz;
  38.     }
  39.     void set_ime(char *i)
  40.     {
  41.         strcpy(ime,i);
  42.     }
  43.     void set_klasa(bool k)
  44.     {
  45.         klasa=k;
  46.     }
  47.     void set_bagaz(int b)
  48.     {
  49.         bagaz=b;
  50.     }
  51.     friend ostream &operator <<(ostream &out, const Patnik &p)
  52.     {
  53.         out<<p.ime<<"\n"<<p.klasa<<"\n"<<p.bagaz<<endl;
  54.         return out;
  55.     }
  56.     ~Patnik() {};
  57.     Patnik & operator =(const Patnik &p)
  58.     {
  59.         if(this!=&p)
  60.         {
  61.             strcpy(this->ime,p.ime);
  62.             this->klasa=p.klasa;
  63.             this->bagaz=p.bagaz;
  64.         }
  65.         return *this;
  66.     }
  67. };
  68. class Avion
  69. {
  70.  
  71. private:
  72.     char destinacija[100];
  73.     int n;
  74.     int max_nosivost;
  75.     int max_bagaz;
  76.     Patnik *niza;
  77. public:
  78.     Avion(char *d, int max1, int max2, int n1=0, Patnik *p=0)
  79.     {
  80.         strcpy(destinacija,d);
  81.         n=n1;
  82.         max_nosivost=max1;
  83.         max_bagaz=max2;
  84.         niza=new Patnik[n];
  85.         for(int i=0; i<n; i++)
  86.         {
  87.             niza[i]=p[i];
  88.         }
  89.     }
  90.     Avion(Avion &a)
  91.     {
  92.         strcpy(destinacija,a.destinacija);
  93.         n=a.n;
  94.         max_nosivost=a.max_nosivost;
  95.         max_bagaz=a.max_bagaz;
  96.         niza=new Patnik[n];
  97.         for(int i=0; i<n; i++)
  98.         {
  99.             niza[i]=a.niza[i];
  100.         }
  101.     }
  102.     ~Avion()
  103.     {
  104.         delete [] niza;
  105.     }
  106.     Avion &operator+= (Patnik p)
  107.     {
  108.  
  109.         Patnik *pom=new Patnik[n+1];
  110.         if(p.get_bagaz()<=max_bagaz)
  111.         {
  112.             for(int i=0; i<n; i++)
  113.             {
  114.                 pom[i]=niza[i];
  115.             }
  116.             pom[n]=p;
  117.             n++;
  118.             delete [] niza;
  119.             niza=pom;
  120.  
  121.         }
  122.         return *this;
  123.     }
  124.     friend ostream &operator <<(ostream &out, Avion &a)
  125.     {
  126.         out<<a.destinacija<<endl;
  127.         for(int i=0; i<a.n; i++)
  128.         {
  129.             out<<a.niza[i]<<endl;
  130.         }
  131.         return out;
  132.     }
  133.     int presmetajVkupnaTezina()
  134.     {
  135.         int zbir=0, k=0;
  136.         for(int i=0; i<n; i++)
  137.         {
  138.             if(niza[i].get_klasa())
  139.             {
  140.                 zbir+=niza[i].get_bagaz();
  141.             }
  142.         }
  143.         for(int i=0; i<n; i++)
  144.         {
  145.             if(!niza[i].get_klasa())
  146.             {
  147.                 zbir+=niza[i].get_bagaz();
  148.                 if(zbir>max_nosivost)
  149.                     k++;
  150.             }
  151.         }
  152. //if(k==3){return 2;}
  153.         return k;
  154.     }
  155. };
  156.  
  157.  
  158. int main()
  159. {
  160.     Patnik p;
  161.     char ime[100], destinacija[100];
  162.     int n;
  163.     bool klasa;
  164.     int bagaz;
  165.     int ma, mb;
  166.     cin >> destinacija >> ma >> mb;
  167.     cin >> n;
  168.     Avion a(destinacija, ma, mb);
  169. //cout<<a<<endl;
  170.     for(int i = 0; i < n; i++)
  171.     {
  172.         cin >> ime >> bagaz >> klasa;
  173.         Patnik p(ime, bagaz, klasa);
  174. //cout<<p<<endl;
  175.         a += p;
  176.     }
  177.     cout<<a;
  178.     cout << "Brojot na patnici cii bagaz ostanuva e: " << a.presmetajVkupnaTezina() <<endl;
  179.  
  180.     return 0;
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement