Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Да се креира класа Patnik во која се чуваат податоци за патниците на еден авион и тоа: име (низа од максимум 100 знаци), бизнис класа (булова променлива) и тежина на багаж (овде се мисли само на чекираниот багаж, не го вклучува рачниот) (цел број). (5 поени)
- За оваа класа да се преоптоварат:
- Оператор << - за печатење на информациите за патникот во формат: (5 поени)
- Име на патник
- Дали е во бизнис класата?
- Тежина на багаж
- Потоа да се креира клaса Avion во која се чува: дестинација (низа од максимум 100 знаци), динамички алоцирана низа од објекти од класата Patnik, како и број на елементи во низата (цел број), максимална тежина на целиот багаж на авионот (цел број) како и дозволена максимана тежина на багаж по патник (цел број). (5 поени)
- За класата да се обезбедат:
- Оператор += – за додавање нов патник во авионот, само ако неговиот багаж не ја надминува максималната тежина на багаж по патник (10 поени)
- Оператор << - за печатење на дестинацијата до која лета и листата на патници (5 поени)
- Функција со потпис: presmetajVkupnaTezina(). Со оваа функција се пресметува вкупната тежина на багажот од патниците во авионот и треба да врати број на патници на кои багажот ќе им доцни. Притоа треба да се внимава дека во пресметувањето на вкупната тежина прво треба да се земат предвид багажите на патниците од бизнис класата, а потоа се додаваат тежините на багажите од регуларните патници по ред од листата се додека не се надмине максималната тежина на целиот багаж на авионот. Бројот на патниците чии багажи остануваат (не влегуваат во сумата на вкупната тежина) се враќа како податок (цел број). (10 поени)*/
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Patnik
- {
- private:
- char ime[100];
- bool biznis;
- int tezina;
- public:
- Patnik(char ime[100]="", int tezina=0, bool biznis=false)
- {
- strcpy(this->ime,ime);
- this->biznis=biznis;
- this->tezina=tezina;
- }
- int getTezina(){return this->tezina;}
- bool getBiznis(){return this->biznis;}
- char *getIme(){return this->ime;}
- friend ostream& operator<<(ostream &out, Patnik &p)
- {
- out<<p.ime<<endl;
- out<<p.biznis<<endl<<p.tezina<<endl;
- return out;
- }
- };
- class Avion
- {
- private:
- char destinacija[100];
- Patnik *patnici;
- int n,maxTezina,tezinaPoPatnik;
- public:
- Avion(char destinacija[100]="",int maxTezina=0,int tezinaPoPatnik=0, int n=0,Patnik *patnici=NULL)
- {
- strcpy(this->destinacija,destinacija);
- this->patnici=new Patnik[10];
- this->n=n;
- this->maxTezina=maxTezina;
- this->tezinaPoPatnik=tezinaPoPatnik;
- }
- Avion& operator +=(Patnik &p)
- {
- if(p.getTezina() <= tezinaPoPatnik){
- this->patnici[n]=p;
- n++;}
- return *this;
- }
- friend ostream& operator <<(ostream& o, Avion &a)
- {
- o<<a.destinacija<<endl;
- for(int i=0;i<a.n;i++)
- {
- o << a.patnici[i]<<endl;
- }
- return o;
- }
- int presmetajVkupnaTezina()
- {
- int suma=0,br=0;
- for(int i=0;i<n;i++)
- {
- if(patnici[i].getBiznis()==0)
- {
- suma+=patnici[i].getTezina();
- }
- }
- for(int i=0;i<n;i++)
- {
- if(patnici[i].getBiznis())
- {
- suma+=patnici[i].getTezina();
- if(suma>maxTezina)
- { br++;
- }
- }
- }
- return br;
- }
- };
- 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