Advertisement
Guest User

help

a guest
Mar 18th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. class Datum
  8. {
  9. private:
  10. int den,mesec,godina;
  11. public:
  12. Datum() {}
  13. ~Datum () {}
  14. Datum(int den,int mesec,int godina)
  15. {
  16. this->den=den;
  17. this->mesec=mesec;
  18. this->godina=godina;
  19. }
  20. Datum (const Datum &d)
  21. {
  22. this->den=d.den;
  23. this->mesec=d.mesec;
  24. this->godina=d.godina;
  25. }
  26. int getDen() {return den;}
  27. int getMesec() {return mesec;}
  28. int getGodina() {return godina;}
  29.  
  30. };
  31.  
  32. class Vraboten
  33. {
  34. private:
  35. char ime[30];
  36. int plata;
  37. Datum DataNaRaganje;
  38. public:
  39. Vraboten() {}
  40. ~Vraboten() {}
  41. Vraboten(char *ime,int plata, Datum DataNaRaganje)
  42. {
  43. strcpy(this->ime,ime);
  44. this->plata=plata;
  45. this->DataNaRaganje=DataNaRaganje;
  46. }
  47. Vraboten (const Vraboten &v)
  48. {
  49. strcpy(this->ime,v.ime);
  50. this->plata=v.plata;
  51. this->DataNaRaganje=v.DataNaRaganje;
  52. }
  53. //char getIme() {return ime;}
  54. int getPlata() {return plata;}
  55. Datum getData() {return DataNaRaganje;}
  56. void print()
  57. {
  58. cout<<"Vraboten: "<<ime;
  59. cout<<" Plata: "<<plata;
  60. // cout<<" Data na raganje: "<<DataNaRaganje.getDen()<<"."DataNaRaganje.getMesec()<<"."<<DataNaRaganje.getGodina();
  61. }
  62. };
  63. Vraboten Najplaten(Vraboten *v,int n)
  64. {
  65. int max=(v[0].getPlata());
  66. int maxi=0;
  67. for(int i=0;i<n;i++)
  68. {
  69. if(v[i].getPlata()>max)
  70. {
  71. max=v[i].getPlata();
  72. maxi=i;
  73. }
  74. }
  75. return v[maxi];
  76. }
  77. int sredi(Datum d1,Datum d2)
  78. {
  79. if(d1.getGodina()>d2.getGodina()) return 1;
  80. else if(d1.getGodina()<d2.getGodina()) return 2;
  81. else if(d1.getMesec()>d2.getMesec()) return 1;
  82. else if(d1.getMesec()<d2.getMesec()) return 2;
  83. else if(d1.getDen()>d2.getDen()) return 1;
  84. else if(d1.getDen()<d2.getDen()) return 2;
  85. else return 0;
  86.  
  87.  
  88. }
  89. Vraboten Najmlad(Vraboten *v,int n)
  90. {
  91. Datum d(v[0].getData());
  92. int pamti=0;
  93. for(int i=0;i<n;i++)
  94. {
  95. if(sredi(v[i].getData(),d)==1)
  96. {
  97. d=v[i].getData();
  98. pamti=i;
  99. }
  100.  
  101. }
  102. return v[pamti];
  103. }
  104. int main()
  105. {
  106. /*Да се напише класа Datum во која ќе се чуваат ден, месец и година (цели броеви).
  107. Да се напише класа Vraboten во која се чува име на вработениот (не повеќе од 20 знаци),
  108. плата и датум на раѓање (објект од класата Datum).
  109. Да се напишат две функции кои како аргументи примаат низа од вработени и големина на низата.
  110. Едната функција го враќа вработениот со најголема плата, а другата функција го враќа најмладиот вработен во фирмата.
  111. Во главната програма потребно е да се испечатат на екран податоците за најмалдиот и најплатениот вработен.
  112. Печатењето на вработениот да биде реализирано со посебна функција print() во рамките на класата Vraboten. */
  113.  
  114. Datum d[100];
  115. Vraboten v[100];
  116. int n,den,mesec,godina,ime,plata;
  117. cout<<"kolku vraboteni ke vnesuvate?"<<endl;
  118. cin>>n;
  119. for(int i=0;i<n;i++)
  120. {
  121. cin>>ime;
  122. cin>>plata;
  123. cin>>den;
  124. cin>>mesec;
  125. cin>>godina;
  126. Datum d(den,mesec,godina);
  127. d[i]=d;
  128. Vraboten v(ime,plata,d);
  129. v[i]=v;
  130.  
  131.  
  132. }
  133. cout<<"Najmladiot vraboten e: ";
  134. Najmlad(v,n).print();
  135. cout<<"Vraboten so najgolema plata e: ";
  136. Najplaten(v,n).print();
  137.  
  138.  
  139.  
  140. return 0;
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement