Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <iomanip>
  4.  
  5. ///*Kreirati dinamički dvodimenzionalni niz čiji su elementi objekti tipa uposlenik
  6. //(uposlenik je struktura čija su obilježja data). Omogućiti korisniku da unese dimenzije niza.
  7. //
  8. //struct uposlenik
  9. //{
  10. // char *ID;
  11. // char *imePrezime;
  12. // float *plata;
  13. //}
  14. //Redovi dvodimenzionalnog niza predstavljaju različite odjele firme u kojima rade različiti radnici
  15. //(radi jednostavnosti rješenja podrazumijevati da svaki odjel ima isti broj radnika).
  16. //Omogućiti korisniku unos svih podataka za sve radnike, te napraviti funkciju koja će naći najveći prosjek
  17. //plate po odjelima firme te ispisati
  18. //koji je to redni broj odjela (indeks reda sa najvećim prosjekom) i koji je najveći prosjek plate.*/
  19. using namespace std;
  20. struct uposlenik
  21. {
  22. char* ID;
  23. char* imePrezime;
  24. float* plata;
  25. };
  26. void najveciprosjek(uposlenik **niz, int red_odjel, int kolona_radnik)
  27. {
  28. float* najvecaplata = new float[red_odjel] {0};
  29.  
  30. for (int i = 0;i < red_odjel;i++)
  31. {
  32. for (int j = 0;j < kolona_radnik;j++)
  33. {
  34. najvecaplata[i] += *(*(niz + i)+j)->plata;
  35. }
  36. najvecaplata[i] /= kolona_radnik;
  37. }
  38. int index = 0;
  39. for (int i = 0;i < red_odjel;i++){
  40.  
  41. if (najvecaplata[i] > najvecaplata[index])
  42. {
  43. index = i;
  44.  
  45. }
  46. }
  47. cout << "Najveci prosjek plata ima odjel: " << index + 1 << ", a najveci prosjek plate je: " << najvecaplata[index];
  48. delete[] najvecaplata;
  49. }
  50. void unos(uposlenik& u)
  51. {
  52. int velicina;
  53. cin.ignore();
  54. cout << "Unesite ID" << endl;
  55. char ID[6];
  56. cin.getline(ID, sizeof ID);
  57. velicina = sizeof ID + 1;
  58. u.ID = new char[velicina];
  59. strcpy_s(u.ID, velicina, ID);
  60.  
  61. char ime_prezime[32];
  62. cout << "Unesite ime i prezime" << endl;
  63. cin.getline(ime_prezime, sizeof ime_prezime);
  64. velicina = sizeof ime_prezime + 1;
  65. u.imePrezime = new char[velicina];
  66. strcpy_s(u.imePrezime, velicina, ime_prezime);
  67.  
  68. u.plata = new float;
  69. cout << "Unesite platu" << endl;
  70. cin >> *u.plata;
  71. }
  72. void ispis( uposlenik& u)
  73. {
  74. cout << endl;
  75. cout << setw(5) << u.ID << setw(5) << u.imePrezime << setw(5) << *u.plata << endl;
  76.  
  77.  
  78. }
  79. void dealociraj(uposlenik& u)
  80. {
  81. delete[] u.ID;
  82. u.ID = nullptr;
  83. delete[] u.imePrezime;
  84. u.imePrezime = nullptr;
  85. delete u.plata;
  86. u.plata = nullptr;
  87.  
  88.  
  89. }
  90. int main()
  91. {
  92. int red_odjel, kolona_radnik;
  93. cout << "Unesite odjel i broj radnika firme" << endl;
  94. cin >> red_odjel >> kolona_radnik;
  95. uposlenik** niz = new uposlenik* [red_odjel];
  96. for (int i = 0;i < red_odjel;i++)
  97. {
  98. niz[i] = new uposlenik[kolona_radnik];
  99. }
  100. for (int i = 0;i < red_odjel;i++)
  101. {
  102. for (int j = 0;j < kolona_radnik;j++)
  103. {
  104. unos(*(*(niz + i) + j));
  105. }
  106. }
  107. for (int i = 0;i < red_odjel;i++)
  108. {
  109. for (int j = 0;j < kolona_radnik;j++)
  110. {
  111. ispis(niz[i][j]);
  112. }
  113. }
  114. najveciprosjek(niz, red_odjel, kolona_radnik);
  115.  
  116. for (int i = 0;i < red_odjel;i++)
  117. {
  118. for (int j = 0;j < kolona_radnik;j++)
  119. {
  120. dealociraj(*(*(niz + i) + j));
  121. delete[] niz[i];
  122. }
  123. }
  124. delete[] niz;
  125. system("pause>0");
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement