Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string.h>
- #include <cmath>
- using namespace std;
- class Vozac{
- protected:
- char ime[100];
- int vozrast;
- int trki;
- bool veteran;
- public:
- Vozac(){
- strcpy(ime,"");
- vozrast=0;
- trki=0;
- veteran=false;
- }
- Vozac(char *ime1,int vozrast1,int trki1, bool veteran1){
- strcpy(ime,ime1);
- vozrast=vozrast1;
- trki=trki1;
- veteran=veteran1;
- }
- ~Vozac(){}
- friend ostream& operator<<(ostream &out,Vozac &v){
- out<<v.ime<<endl<<v.vozrast<<endl<<v.trki<<endl;
- if(v.veteran){
- cout<<"VETERAN"<<endl;;
- }
- return out;
- }
- bool operator ==(Vozac &v){
- if(zarabotuvacka()==v.zarabotuvacka()){
- return true;
- }else{
- return false;
- }
- }
- virtual float zarabotuvacka()=0;
- virtual float danok()=0;
- };
- class Avtomobilist:public Vozac{
- private:
- float cenaAvtomobil;
- public:
- Avtomobilist(){
- cenaAvtomobil=0;
- }
- Avtomobilist(char *ime1,int vozrast1,int trki1, bool veteran1,float cenaAvtomobil1)
- :Vozac(ime1,vozrast1,trki1,veteran1){
- cenaAvtomobil=cenaAvtomobil1;
- }
- float zarabotuvacka(){
- return cenaAvtomobil/5;
- }
- float danok(){
- if(trki>10){
- return zarabotuvacka()*0.15;
- }else{
- return zarabotuvacka()*0.10;
- }
- }
- };
- class Motociklist:public Vozac{
- private:
- int mokjnost;
- public:
- Motociklist(){
- mokjnost=0;
- }
- Motociklist(char *ime1,int vozrast1,int trki1, bool veteran1,int mokjnost1)
- :Vozac(ime1,vozrast1,trki1,veteran1){
- mokjnost=mokjnost1;
- }
- float zarabotuvacka(){
- return mokjnost*20;
- }
- float danok(){
- if(veteran){
- return zarabotuvacka()*0.25;
- }else{
- return zarabotuvacka()*0.20;
- }
- }
- };
- int soIstaZarabotuvachka(Vozac **vozaci,int n, Vozac *vozac){
- int brojac=0;
- for(int i=0;i<n;i++){
- if(*(vozaci[i])==*(vozac)){ //se sporeduvaat kako objekti so *
- brojac++;
- }
- }
- return brojac;
- }
- 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