Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Patnik
- {
- private:
- char ime[100];
- bool klasa;
- int bagaz;
- public:
- Patnik() {};
- Patnik(char *i, int b, bool k)
- {
- strcpy(ime,i);
- klasa=k;
- bagaz=b;
- }
- Patnik(Patnik &p)
- {
- strcpy(ime,p.ime);
- klasa=p.klasa;
- bagaz=p.bagaz;
- }
- char *get_ime()
- {
- return ime;
- }
- bool get_klasa()
- {
- return klasa;
- }
- int get_bagaz()
- {
- return bagaz;
- }
- void set_ime(char *i)
- {
- strcpy(ime,i);
- }
- void set_klasa(bool k)
- {
- klasa=k;
- }
- void set_bagaz(int b)
- {
- bagaz=b;
- }
- friend ostream &operator <<(ostream &out, const Patnik &p)
- {
- out<<p.ime<<"\n"<<p.klasa<<"\n"<<p.bagaz<<endl;
- return out;
- }
- ~Patnik() {};
- Patnik & operator =(const Patnik &p)
- {
- if(this!=&p)
- {
- strcpy(this->ime,p.ime);
- this->klasa=p.klasa;
- this->bagaz=p.bagaz;
- }
- return *this;
- }
- };
- class Avion
- {
- private:
- char destinacija[100];
- int n;
- int max_nosivost;
- int max_bagaz;
- Patnik *niza;
- public:
- Avion(char *d, int max1, int max2, int n1=0, Patnik *p=0)
- {
- strcpy(destinacija,d);
- n=n1;
- max_nosivost=max1;
- max_bagaz=max2;
- niza=new Patnik[n];
- for(int i=0; i<n; i++)
- {
- niza[i]=p[i];
- }
- }
- Avion(Avion &a)
- {
- strcpy(destinacija,a.destinacija);
- n=a.n;
- max_nosivost=a.max_nosivost;
- max_bagaz=a.max_bagaz;
- niza=new Patnik[n];
- for(int i=0; i<n; i++)
- {
- niza[i]=a.niza[i];
- }
- }
- ~Avion()
- {
- delete [] niza;
- }
- Avion &operator+= (Patnik p)
- {
- Patnik *pom=new Patnik[n+1];
- if(p.get_bagaz()<=max_bagaz)
- {
- for(int i=0; i<n; i++)
- {
- pom[i]=niza[i];
- }
- pom[n]=p;
- n++;
- delete [] niza;
- niza=pom;
- }
- return *this;
- }
- friend ostream &operator <<(ostream &out, Avion &a)
- {
- out<<a.destinacija<<endl;
- for(int i=0; i<a.n; i++)
- {
- out<<a.niza[i]<<endl;
- }
- return out;
- }
- int presmetajVkupnaTezina()
- {
- int zbir=0, k=0;
- for(int i=0; i<n; i++)
- {
- if(niza[i].get_klasa())
- {
- zbir+=niza[i].get_bagaz();
- }
- }
- for(int i=0; i<n; i++)
- {
- if(!niza[i].get_klasa())
- {
- zbir+=niza[i].get_bagaz();
- if(zbir>max_nosivost)
- k++;
- }
- }
- //if(k==3){return 2;}
- return k;
- }
- };
- int main()
- {
- Patnik p;
- char ime[100], destinacija[100];
- int n;
- bool klasa;
- int bagaz;
- int ma, mb;
- cin >> destinacija >> ma >> mb;
- cin >> n;
- Avion a(destinacija, ma, mb);
- //cout<<a<<endl;
- for(int i = 0; i < n; i++)
- {
- cin >> ime >> bagaz >> klasa;
- Patnik p(ime, bagaz, klasa);
- //cout<<p<<endl;
- a += p;
- }
- cout<<a;
- cout << "Brojot na patnici cii bagaz ostanuva e: " << a.presmetajVkupnaTezina() <<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement