Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. class Vozac
  6. {
  7. protected:
  8. char ime[100];
  9. int vozrast;
  10. int brtrki;
  11. bool veteran;
  12. public:
  13. Vozac(char *im,int v,int brt, bool vet)
  14. {
  15. strcpy(ime,im);
  16. vozrast=v;
  17. brtrki=brt;
  18. veteran=vet;
  19. }
  20. virtual float zarabotuvacka()=0;
  21. virtual float danok()=0;
  22. friend ostream& operator<<(ostream &out, Vozac &v)
  23. {
  24. out<<v.ime<<endl;
  25. out<<v.vozrast<<endl;
  26. out<<v.brtrki<<endl;
  27. if(v.veteran)
  28. {
  29. out<<"VETERAN"<<endl;
  30. }
  31. return out;
  32. }
  33. bool operator==(Vozac &v)
  34. {
  35. if(v.zarabotuvacka()==zarabotuvacka())
  36. return true;
  37. else
  38. return false;
  39. }
  40. virtual ~Vozac(){}
  41. };
  42. class Avtomobilist:public Vozac
  43. {
  44. private:
  45. float cenaa;
  46. public:
  47. Avtomobilist(char* im,int v,int brt, bool vet, float cena):Vozac(im,v,brt,vet)
  48. {
  49. cenaa=cena;
  50. }
  51. virtual float zarabotuvacka()
  52. {
  53. return cenaa/5;
  54. }
  55. float danok()
  56. {
  57. if(brtrki>10)
  58. return zarabotuvacka()*15/100;
  59.  
  60. else
  61. return 10*zarabotuvacka()/100;
  62.  
  63. }
  64.  
  65. virtual ~Avtomobilist(){}
  66. };
  67. class Motociklist:public Vozac
  68. {
  69. private:
  70. int moknost;
  71. public:
  72. Motociklist(char *im,int v,int brt, bool vet, int mok):Vozac(im,v,brt,vet)
  73. {
  74. moknost=mok;
  75. }
  76. float zarabotuvacka()
  77. {
  78. return moknost*20;
  79. }
  80. float danok()
  81. {
  82. if(veteran)
  83. return 25*zarabotuvacka()/100;
  84. else
  85. return 20*zarabotuvacka()/100;
  86. }
  87.  
  88. virtual ~Motociklist(){}
  89. };
  90. int soIstaZarabotuvacka(Vozac **niza,int n,Vozac *pok)
  91. {
  92. int brojac;
  93. for(int i=0;i<n;i++)
  94. {
  95. if(*pok==*niza[i])
  96. brojac++;
  97. }
  98. return brojac;
  99. }
  100.  
  101.  
  102. int main() {
  103. int n, x;
  104. cin >> n >> x;
  105. Vozac **v = new Vozac*[n];
  106. char ime[100];
  107. int vozrast;
  108. int trki;
  109. bool vet;
  110. for(int i = 0; i < n; ++i) {
  111. cin >> ime >> vozrast >> trki >> vet;
  112. if(i < x) {
  113. float cena_avto;
  114. cin >> cena_avto;
  115. v[i] = new Avtomobilist(ime, vozrast, trki, vet, cena_avto);
  116. } else {
  117. int mokjnost;
  118. cin >> mokjnost;
  119. v[i] = new Motociklist(ime, vozrast, trki, vet, mokjnost);
  120. }
  121. }
  122. cout << "=== DANOK ===" << endl;
  123. for(int i = 0; i < n; ++i) {
  124. cout << *v[i];
  125. cout << v[i]->danok() << endl;
  126. }
  127. cin >> ime >> vozrast >> trki >> vet;
  128. int mokjnost;
  129. cin >> mokjnost;
  130. Vozac *vx = new Motociklist(ime, vozrast, trki, vet, mokjnost);
  131. cout << "=== VOZAC X ===" << endl;
  132. cout << *vx;
  133. cout << "=== SO ISTA ZARABOTUVACKA KAKO VOZAC X ===" << endl;
  134. cout << soIstaZarabotuvachka(v, n, vx);
  135. for(int i = 0; i < n; ++i) {
  136. delete v[i];
  137. }
  138. delete [] v;
  139. delete vx;
  140. return 0;
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement