Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Vozac
- {
- protected:
- char ime[100];
- int vozrast;
- int brojNaTrki;
- bool eVeteran;
- public:
- Vozac(){}
- Vozac(char *i, int v, int b, bool e)
- {
- strcpy(ime,i);
- vozrast=v;
- brojNaTrki=b;
- eVeteran=e;
- }
- friend ostream &operator<<(ostream &output, const Vozac &rhs)
- {
- output<<rhs.ime<<endl<<rhs.vozrast<<endl<<rhs.brojNaTrki<<endl;
- if(rhs.eVeteran)
- output<<"VETERAN"<<endl;
- return output;
- }
- bool operator==(Vozac &rhs)
- {
- return this->zarabotuvacka()==rhs.zarabotuvacka();
- }
- virtual float zarabotuvacka(){}
- virtual float danok(){}
- };
- class Avtomobilist:public Vozac
- {
- float cenaNaAvtomobil;
- public:
- Avtomobilist(){}
- Avtomobilist(char *i, int v, int t, bool e, float c):Vozac(i,v,t,e)
- {
- cenaNaAvtomobil=c;
- }
- float zarabotuvacka()
- {
- return cenaNaAvtomobil/5;
- }
- float danok()
- {
- if(brojNaTrki>10)
- return zarabotuvacka()*0.15;
- return zarabotuvacka()*0.1;
- }
- };
- class Motociklist:public Vozac
- {
- int mokjnostNaMotor;
- public:
- Motociklist(){}
- Motociklist(char *i, int v, int t, bool e, int m):Vozac(i,v,t,e)
- {
- mokjnostNaMotor=m;
- }
- float zarabotuvacka()
- {
- return mokjnostNaMotor*20;
- }
- float danok()
- {
- if(eVeteran)
- return zarabotuvacka()*0.25;
- return zarabotuvacka()*0.2;
- }
- };
- int soIstaZarabotuvachka(Vozac **v, int n, Vozac *vozac)
- {
- int result=0;
- for(int i=0;i<n;i++)
- if(*vozac==*v[i])
- result++;
- return result;
- }
- int main() {
- int n, x;
- cin >> n >> x;
- Vozac **v = new Vozac*[n];
- char ime[100];
- int vozrast;
- int trki;
- bool vet;
- for(int i = 0; i < n; ++i) {
- cin >> ime >> vozrast >> trki >> vet;
- if(i < x) {
- float cena_avto;
- cin >> cena_avto;
- v[i] = new Avtomobilist(ime, vozrast, trki, vet, cena_avto);
- } else {
- int mokjnost;
- cin >> mokjnost;
- v[i] = new Motociklist(ime, vozrast, trki, vet, mokjnost);
- }
- }
- cout << "=== DANOK ===" << endl;
- for(int i = 0; i < n; ++i) {
- cout << *v[i];
- cout << v[i]->danok() << endl;
- }
- cin >> ime >> vozrast >> trki >> vet;
- int mokjnost;
- cin >> mokjnost;
- Vozac *vx = new Motociklist(ime, vozrast, trki, vet, mokjnost);
- cout << "=== VOZAC X ===" << endl;
- cout << *vx;
- cout << "=== SO ISTA ZARABOTUVACKA KAKO VOZAC X ===" << endl;
- cout << soIstaZarabotuvachka(v, n, vx);
- for(int i = 0; i < n; ++i) {
- delete v[i];
- }
- delete [] v;
- delete vx;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement