Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <memory>
- using namespace std;
- struct Ucenik {
- char * ime;
- char * prezime;
- char spol[10];
- int ocjene[5];
- char JMBG[14];
- };
- void unos(Ucenik *u) {
- cout << "Ime Ucenika: " << endl;
- u->ime = new char[20];
- cin.getline(u->ime, 20);
- cout << "Prezime Ucenika: " << endl;
- u->prezime = new char[20];
- cin.getline(u->prezime, 20);
- cout << "Unesite spol: " << endl;
- cin.getline(u->spol, 10);
- cout << "Unesi ocjene: " << endl;
- for (int i = 0; i < 5; i++)
- {
- cin >> u->ocjene[i];
- }
- cin.ignore();
- cout << "Unesi JMBG: " << endl;
- cin.getline(u->JMBG, 14);
- }
- void ispis(Ucenik *u) {
- cout << u->ime << " " << u->prezime << "/" << u->spol << endl;
- cout << "Ocjene" << endl;
- for (int i = 0; i < 5; i++)
- {
- cout << " " << u->ocjene[i];
- }
- cout << endl << "JMBG: " << u->JMBG << endl;
- }
- Ucenik *najduzePrezime(Ucenik *u, int vel) {
- int duzina = INT_MIN;
- int index = -1;
- for (int i = 0; i < vel; i++)
- {
- int duzinaPrezimena = strlen(u[i].prezime);
- if (duzina < duzinaPrezimena) {
- duzina = duzinaPrezimena;
- index = i;
- }
- }
- return &u[index];
- }
- void SlovaMir(Ucenik *u, int vel) {
- for (int i = 0; i < vel; i++)
- {
- if (strstr(u[i].ime, "mir")) {
- ispis(&u[i]);
- }
- }
- }
- float Prosjecna(Ucenik *u) {
- float suma = 0;
- for (int i = 0; i < 5; i++)
- {
- suma += u->ocjene[i];
- }
- return suma / 5;
- }
- void sortiraj(Ucenik *&u, int vel) {
- Ucenik temp;
- for (int i = 0; i < vel; i++)
- {
- for (int j = i + 1; j < vel; j++)
- {
- if (Prosjecna(&u[i]) < Prosjecna(&u[j])) {
- temp = u[i];
- u[i] = u[j];
- u[j] = temp;
- }
- }
- }
- }
- //void Zamjena(Ucenik *u, int vel) {
- // for (int i = 0; i < vel; i++) {
- // int duzina = strlen(u[i].ime) + 1;
- // for (int j = 0; j < duzina; j++)
- // {
- // if (isupper(u[i].ime[j]))
- // u[i].ime[j] = tolower(u[i].ime[j]);
- // else
- // u[i].ime[j] = toupper(u[i].ime[j]);
- // }
- // }
- //}
- void Zamjena(Ucenik *&u, int vel) {
- for (int i = 0; i < vel; i++) {
- for (int j = 0; j < strlen(u[i].ime); j++) {
- if (isupper(u[i].ime[j]))
- u[i].ime[j] = tolower(u[i].ime[j]);
- else
- u[i].ime[j] = toupper(u[i].ime[j]);
- }
- }
- }
- int vokali(Ucenik u) {
- int brojac = 0;
- for (int i = 0; i < strlen(u.prezime); i++)
- {
- if (u.prezime[i] == 'a' || u.prezime[i] == 'A' ||
- u.prezime[i] == 'e' || u.prezime[i] == 'E' ||
- u.prezime[i] == 'i' || u.prezime[i] == 'I' ||
- u.prezime[i] == 'o' || u.prezime[i] == 'O' ||
- u.prezime[i] == 'u' || u.prezime[i] == 'U')
- brojac++;
- }
- return brojac;
- }
- Ucenik *pretragaIme(Ucenik *u, int vel, char * zeljenoIme) {
- for (int i = 0; i < vel; i++)
- {
- if (strcmp(u[i].ime, zeljenoIme) == 0)
- return &u[i];
- }
- return nullptr;
- }
- Ucenik *pretragaPrezime(Ucenik *u, int vel, char * zeljenoPrezime) {
- for (int i = 0; i < vel; i++)
- {
- if (strcmp(u[i].prezime, zeljenoPrezime) == 0)
- return &u[i];
- }
- return nullptr;
- }
- Ucenik *pretragaJMBG(Ucenik *u, int vel) {
- cout << endl << "Ucenici sa JMBG koji pocninje sa 3" << endl;
- for (int i = 0; i < vel; i++)
- {
- if (u[i].JMBG[0] == '3')
- ispis(&u[i]);
- }
- return nullptr;
- }
- void dealociraj(Ucenik *& u, int vel) {
- for (int i = 0; i < vel; i++)
- {
- delete[]u[i].ime;
- delete[]u[i].prezime;
- u[i].ime = nullptr;
- u[i].prezime = nullptr;
- }
- delete[]u;
- u = nullptr;
- }
- void main() {
- int vel;
- cout << "Unesi broj ucenika: " << endl;
- cin >> vel;
- cin.ignore();
- Ucenik* niz = new Ucenik[vel];
- cout << "Unesi podatke za ucenike: " << endl;
- for (int i = 0; i < vel; i++)
- {
- unos(&niz[i]);
- }
- for (int i = 0; i < vel; i++)
- {
- ispis(&niz[i]);
- }
- cout << "Ucenik sa najduzim prezimenom" << endl;
- Ucenik *pok = najduzePrezime(niz, vel);
- ispis(pok);
- cout << "Ucenici koji imaju mir u imenu" << endl;
- SlovaMir(niz, vel);
- cout << endl << "Prosjecne ocjene: " << endl;
- for (int i = 0; i < vel; i++)
- {
- cout << "Prosjecna ocjena za " << i + 1 << " ucenika je: " << Prosjecna(&niz[i]) << endl;
- }
- cout << "Sortirano: " << endl;
- sortiraj(niz, vel);
- for (int j = 0; j < vel; j++)
- {
- ispis(&niz[j]);
- }
- cout << "Zamjena slova: " << endl;
- Zamjena(niz, vel);
- for (int i = 0; i < vel; i++)
- {
- cout << endl;
- cout << niz[i].ime;
- }
- for (int i = 0; i < vel; i++)
- {
- cout << endl <<"Broj vokala u prezimenu za ucenika " << i + 1 << " je: " << vokali(niz[i]) << endl;
- }
- char ime[20];
- cout << "Unesi trazeno ime: " << endl;
- cin.getline(ime, 20);
- Ucenik *pokIme = pretragaIme(niz, vel, ime);
- if (pokIme != nullptr)
- ispis(pokIme);
- char prezime[20];
- cout << "Unesi trazeno prezime: " << endl;
- cin.getline(prezime, 20);
- Ucenik *pokPrezime = pretragaPrezime(niz, vel, prezime);
- if (pokPrezime != nullptr)
- ispis(pokPrezime);
- Ucenik *pokJMBG = pretragaJMBG(niz, vel);
- if (pokJMBG != nullptr)
- ispis(pokJMBG);
- dealociraj(niz, vel);
- system("pause > 0");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement