Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Zadatak 5
- Napišite program u kojem ćete:
- kreirajte dinamički niz objekata tipa radnik od onoliko članova koliko želi korisnik;
- struct radnik
- {
- int ib;
- char ime[10];
- char prezime[10];
- double dohodak[12];
- int staz;
- char spol[10];
- };
- kreirati funkciju za unos obilježja za sve objekte: void unos(radnik *, int);
- kreirati funkciju za ispis obilježja jednog objekta: void ispis(radnik *);
- kreirati funkciju koja će prebrojati koliko radnika su žene:
- int prebroji_zene(radnik *, int);
- kreirati novi niz u dinamičkoj memoriji;
- kreirati funkciju u kojoj ćete kopirati sve žene u novonapravljeni niz kopirati sve
- žene: void kopiraj_zene(radnik *, radnik *, int);
- kreirati funkciju koja će pronaći i vratiti radnika s najdužim prezimenom:
- radnik * najduze_prezime(radnik *, int);
- kreirati funkciju koja će vršiti pretragu radnika po imenu, te ispisati sva obilježja
- radnika za koje je utvrđeno da imaju traženo ime:
- void pretraga_po_imenu(radnik *, char *, int);
- kreirati funkciju koja će izračunati godišnje prihode za izabranog radnika:
- double prihodi(radnik *, int, int); radnika se bira preko IB-a radnika, a prihodi
- se računaju tako da sve zbroje dohoci za 12 mjeseci + 6% za svaku godinu staža;
- */
- #include<iostream>
- using namespace std;
- struct radnik
- {
- int ib;
- char ime[10];
- char prezime[10];
- double dohodak[12];
- int staz;
- char spol[10]; // unijeti musko ili zensko
- };
- void unos(radnik *niz, int vel)
- {
- for (int i = 0; i < vel; i++)
- {
- cout << "Unesite obiljezja " << i + 1 << ". radnika" << endl;
- cout << "Unesite IB " << endl;
- cin >> niz[i].ib;
- cin.ignore();
- cout << "Unesite ime" << endl;
- cin.getline(niz[i].ime, 10);
- cout << "Unesite prezime" << endl;
- cin.getline(niz[i].prezime, 10);
- cout << "Unesite plate po mjesecima" << endl;
- for (int j = 0; j < 12; j++)
- {
- cin >> niz[i].dohodak[j];
- }
- cin.ignore();
- cout << "Unesite broj godina staza" << endl;
- cin >> niz[i].staz;
- cin.ignore();
- cout << "Unesite spol" << endl;
- cin.getline(niz[i].spol, 20);
- }
- }
- void ispis(radnik *niz)
- {
- cout << "IB:" <<niz->ib << endl;
- cout << "Ime:" << niz->ime << endl;
- cout << "Prezime:" << niz->prezime << endl;
- cout << "Plate po mjesecima:" << endl;
- for (int i = 0; i < 12; i++)
- {
- cout << niz->dohodak[i] << "|";
- }
- cout << "Godine staza:" << niz->staz << endl;
- cout << "Spol:" << niz->spol << endl;
- cout << endl << endl;
- }
- int prebroji_zene(radnik *niz, int vel)
- {
- int brojac = 0;
- for (int i = 0; i < vel; i++)
- {
- //if (strlen(niz[i].spol) == 6)
- if(strcmp(niz[i].spol,"zensko")==0)
- brojac++;
- }
- return brojac;
- }
- void kopiraj_zene(radnik *niz, radnik *zene, int vel)
- {
- int indeks = 0;
- for (int i = 0; i < vel; i++)
- {
- //if (strlen(niz[i].spol) == 6)
- if(strcmp(niz[i].spol,"zensko")==0)
- zene[indeks++] = niz[i];
- }
- }
- radnik * najduze_prezime(radnik *niz, int vel)
- {
- int naj = strlen(niz[0].prezime), indeks = 0;
- for (int i = 0; i < vel; i++)
- {
- if (strlen(niz[i].prezime) > naj)
- {
- naj = strlen(niz[i].prezime);
- indeks = i;
- }
- }
- return &niz[indeks];
- }
- void pretraga_po_imenu(radnik *niz, char *ime, int vel)
- {
- int br = 0;
- for (int i = 0; i < vel; i++)
- {
- if (strcmp(niz[i].ime, ime)==0)
- {
- br++;
- cout << "Nadjen radnik sa trazenim imenom:" << endl;
- ispis(niz+i);
- }
- }
- if (br <= 0)
- cout << "Trazeno ime ne postoji" << endl;
- }
- double prihodi(radnik *niz, int IB, int vel)
- {
- double suma = 0;
- for (int i = 0; i < vel; i++)
- {
- if (niz[i].ib == IB)
- {
- for (int j = 0; j < 12; j++)
- {
- suma += niz[i].dohodak[j];
- }
- suma += niz[i].staz*0.06;
- }
- }
- return suma;
- }
- int main()
- {
- int vel, brZena = 0, ib;
- cout << "Unesite velicinu niza" << endl;
- cin >> vel;
- radnik *niz = new radnik[vel];
- unos(niz, vel);
- for (int i = 0; i < vel; i++)
- {
- ispis(niz+i);
- }
- brZena = prebroji_zene(niz, vel);
- cout << "Broj zena je: " << brZena << endl;
- radnik *nizZena = new radnik[brZena];
- kopiraj_zene(niz, nizZena, vel);
- cout << "Obiljezja zena:" << endl;
- for(int i=0; i<brZena; i++)
- ispis(nizZena+i);
- cout << "Radnik sa najduzim prezimenom je:" << endl;
- ispis(najduze_prezime(niz, vel));
- cout << "Unesite ime za koje zelite provjeriti da li postoji" << endl;
- char ime[20];
- cin.getline(ime,20);
- pretraga_po_imenu(niz, ime, vel);
- cout << "Unesite IB radnika za kojeg' zelite izracunati godisnji prihod" << endl;
- cin >> ib;
- cout << "Godisnji prihod za unesenog radnika je:" << prihodi(niz, ib, vel) <<" KM"<<endl;
- delete[]niz;
- delete[]nizZena;
- niz = nullptr;
- nizZena = nullptr;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement