Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Patnik
- {
- char ime[100];
- int klasa;
- bool imaVelosiped;
- public:
- Patnik(){}
- Patnik(char *i, int k, bool iv)
- {
- strcpy(ime,i);
- klasa=k;
- imaVelosiped=iv;
- }
- Patnik &operator=(const Patnik &rhs)
- {
- strcpy(this->ime, rhs.ime);
- this->klasa=rhs.klasa;
- this->imaVelosiped=rhs.imaVelosiped;
- return *this;
- }
- friend ostream &operator<<(ostream &out, const Patnik &rhs)
- {
- out<<rhs.ime<<endl<<rhs.klasa<<endl<<rhs.imaVelosiped<<endl;
- return out;
- }
- bool getVelosiped()
- {
- return imaVelosiped;
- }
- int getKlasa()
- {
- return klasa;
- }
- };
- class Voz
- {
- char destinacija[100];
- Patnik* patnici;
- int brojNaPatnici;
- int dozvoleniVelosipedi;
- public:
- Voz()
- {
- patnici=new Patnik[0];
- brojNaPatnici=0;
- }
- Voz(char *d,int dv)
- {
- patnici=new Patnik[0];
- brojNaPatnici=0;
- strcpy(destinacija,d);
- dozvoleniVelosipedi=dv;
- }
- Voz &operator+=(const Patnik &rhs)
- {
- if(rhs.getVelosiped() && !dozvoleniVelosipedi)
- return *this;
- Patnik* temp = new Patnik[brojNaPatnici];
- for(int i=0;i<brojNaPatnici;i++)
- temp[i]=patnici[i];
- delete[] patnici;
- patnici=new Patnik[brojNaPatnici+1];
- for(int i=0;i<brojNaPatnici;i++)
- patnici[i]=temp[i];
- delete[] temp;
- patnici[brojNaPatnici++]=rhs;
- return *this;
- }
- friend ostream &operator<< (ostream &out, const Voz &rhs)
- {
- out<<rhs.destinacija<<endl;
- for(int i=0;i<rhs.brojNaPatnici;i++)
- out<<rhs.patnici[i];
- return out;
- }
- void patniciNemaMesto()
- {
- int velosipediKlasa[2]={0,0};
- for(int i=0;i<brojNaPatnici;i++)
- if(patnici[i].getVelosiped())
- velosipediKlasa[patnici[i].getKlasa()-1]++;
- int brojNaMesta=dozvoleniVelosipedi;
- if(velosipediKlasa[0]<=brojNaMesta)
- {
- brojNaMesta-=velosipediKlasa[0];
- cout<<"Brojot na patnici od 1-va klasa koi ostanale bez mesto e: 0"<<endl;
- if(velosipediKlasa[1]<=brojNaMesta)
- cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: 0"<<endl;
- else
- cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: "<<velosipediKlasa[1]-brojNaMesta<<endl;
- }
- else
- {
- cout<<"Brojot na patnici od 1-va klasa koi ostanale bez mesto e: "<<velosipediKlasa[0]-brojNaMesta<<endl;
- cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: "<<velosipediKlasa[1]<<endl;
- }
- }
- };
- int main()
- {
- Patnik p;
- char ime[100], destinacija[100];
- int n;
- bool velosiped;
- int klasa;
- int maxv;
- cin >> destinacija >> maxv;
- cin >> n;
- Voz v(destinacija, maxv);
- //cout<<v<<endl;
- for (int i = 0; i < n; i++){
- cin >> ime >> klasa >> velosiped;
- Patnik p(ime, klasa, velosiped);
- //cout<<p<<endl;
- v += p;
- }
- cout << v;
- v.patniciNemaMesto();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement