Advertisement
Guest User

Untitled

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