Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <iomanip>
- ///*Kreirati dinamički dvodimenzionalni niz čiji su elementi objekti tipa uposlenik
- //(uposlenik je struktura čija su obilježja data). Omogućiti korisniku da unese dimenzije niza.
- //
- //struct uposlenik
- //{
- // char *ID;
- // char *imePrezime;
- // float *plata;
- //}
- //Redovi dvodimenzionalnog niza predstavljaju različite odjele firme u kojima rade različiti radnici
- //(radi jednostavnosti rješenja podrazumijevati da svaki odjel ima isti broj radnika).
- //Omogućiti korisniku unos svih podataka za sve radnike, te napraviti funkciju koja će naći najveći prosjek
- //plate po odjelima firme te ispisati
- //koji je to redni broj odjela (indeks reda sa najvećim prosjekom) i koji je najveći prosjek plate.*/
- using namespace std;
- struct uposlenik
- {
- char* ID;
- char* imePrezime;
- float* plata;
- };
- void najveciprosjek(uposlenik **niz, int red_odjel, int kolona_radnik)
- {
- float* najvecaplata = new float[red_odjel] {0};
- for (int i = 0;i < red_odjel;i++)
- {
- for (int j = 0;j < kolona_radnik;j++)
- {
- najvecaplata[i] += *(*(niz + i)+j)->plata;
- }
- najvecaplata[i] /= kolona_radnik;
- }
- int index = 0;
- for (int i = 0;i < red_odjel;i++){
- if (najvecaplata[i] > najvecaplata[index])
- {
- index = i;
- }
- }
- cout << "Najveci prosjek plata ima odjel: " << index + 1 << ", a najveci prosjek plate je: " << najvecaplata[index];
- delete[] najvecaplata;
- }
- void unos(uposlenik& u)
- {
- int velicina;
- cin.ignore();
- cout << "Unesite ID" << endl;
- char ID[6];
- cin.getline(ID, sizeof ID);
- velicina = sizeof ID + 1;
- u.ID = new char[velicina];
- strcpy_s(u.ID, velicina, ID);
- char ime_prezime[32];
- cout << "Unesite ime i prezime" << endl;
- cin.getline(ime_prezime, sizeof ime_prezime);
- velicina = sizeof ime_prezime + 1;
- u.imePrezime = new char[velicina];
- strcpy_s(u.imePrezime, velicina, ime_prezime);
- u.plata = new float;
- cout << "Unesite platu" << endl;
- cin >> *u.plata;
- }
- void ispis( uposlenik& u)
- {
- cout << endl;
- cout << setw(5) << u.ID << setw(5) << u.imePrezime << setw(5) << *u.plata << endl;
- }
- void dealociraj(uposlenik& u)
- {
- delete[] u.ID;
- u.ID = nullptr;
- delete[] u.imePrezime;
- u.imePrezime = nullptr;
- delete u.plata;
- u.plata = nullptr;
- }
- int main()
- {
- int red_odjel, kolona_radnik;
- cout << "Unesite odjel i broj radnika firme" << endl;
- cin >> red_odjel >> kolona_radnik;
- uposlenik** niz = new uposlenik* [red_odjel];
- for (int i = 0;i < red_odjel;i++)
- {
- niz[i] = new uposlenik[kolona_radnik];
- }
- for (int i = 0;i < red_odjel;i++)
- {
- for (int j = 0;j < kolona_radnik;j++)
- {
- unos(*(*(niz + i) + j));
- }
- }
- for (int i = 0;i < red_odjel;i++)
- {
- for (int j = 0;j < kolona_radnik;j++)
- {
- ispis(niz[i][j]);
- }
- }
- najveciprosjek(niz, red_odjel, kolona_radnik);
- for (int i = 0;i < red_odjel;i++)
- {
- for (int j = 0;j < kolona_radnik;j++)
- {
- dealociraj(*(*(niz + i) + j));
- delete[] niz[i];
- }
- }
- delete[] niz;
- system("pause>0");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement