Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<math.h>
- #include<ctype.h>
- #include<cstring>
- using namespace std;
- class Vozac{
- protected:
- char ime[100];
- int vozrast;
- int brojTrki;
- bool veteran;
- public:
- Vozac(const char *ime="", int vozrast=0, int brojTrki=0, bool veteran=false)
- {
- strcpy(this->ime,ime);
- this->vozrast = vozrast;
- this->brojTrki = brojTrki;
- this->veteran = veteran;
- }
- friend ostream &operator<<(ostream &out, Vozac v)
- {
- out << v.ime<<endl;
- out << v.vozrast << endl;
- out << v.brojTrki << endl;
- if( v.veteran == true)
- out<< "VETERAN" << endl;
- return out;
- }
- virtual double danok()
- {}
- virtual double zarabotuvacka()
- {}
- };
- bool operator==(Vozac &v1, Vozac &v2)
- {
- if ( v1.zarabotuvacka() == v2.zarabotuvacka())
- return true;
- else
- return false;
- }
- class Avtomobilist: public Vozac{
- private:
- double cena;
- public:
- Avtomobilist(const char *ime="", int vozrast=0, int brojTrki=0, bool veteran=false,double cena=0)
- :Vozac(ime,vozrast,brojTrki,veteran)
- {
- this->cena = cena;
- }
- double zarabotuvacka()
- {
- return cena/5;
- }
- double danok()
- {
- if(brojTrki > 10)
- return zarabotuvacka() * 0.15;
- return zarabotuvacka() * 0.10;
- }
- };
- class Motociklist: public Vozac{
- private:
- int mokjnost;
- public:
- Motociklist(const char *ime="", int vozrast=0, int brojTrki=0, bool veteran=false,int mokjnost=0)
- :Vozac(ime,vozrast,brojTrki,veteran)
- {
- this->mokjnost = mokjnost;
- }
- double zarabotuvacka()
- {
- return mokjnost*20;
- }
- double danok()
- {
- if(veteran == true)
- {
- return zarabotuvacka() * 0.25;
- }
- else
- {
- return zarabotuvacka() * 0.20;
- }
- }
- };
- int soIstaZarabotuvachka(Vozac *niza[], int n, Vozac *v)
- {
- int brojVozaci = 0;
- for(int i=0; i<n;i++)
- {
- if ( *niza[i] == *v )
- brojVozaci++;
- }
- return brojVozaci;
- }
- 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