Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Napisati program sa opisanim funkcionalnostima*/
- struct student {
- char imePrezime[30];
- char index[10];
- int godinaStudija;
- };
- void unos(student * pok) {
- //vrsi inicijalizaciju svih vrijednosti atributa studenta na kojeg pokazuje
- cout << "Unesite vrijednosti svih obiljezja" << endl;
- cout << "Ime i prezime:" << endl;
- cin.getline(pok->imePrezime, 29);
- cout << "Indeks:" << endl;
- cin.getline(pok->index, 9);
- cout << "Godine studija:" << endl;
- cin >> pok->godinaStudija;
- cin.ignore();
- }
- student * getPokazivac(student * pok, int max) {
- //1. na samom pocetku funkcija ispisuje ime i prezime svakog studenta
- // koji se nalazi u nizu na kojeg pokazuje pokazivac
- for (int i = 0; i < max; i++)
- cout << i + 1 << ". student:" << endl << pok[i].imePrezime << endl;
- //2. korisnik unosi redni broj jednog od studenta cije ime i prezime
- // je ispisano, a na koga zeli kreirati pokazivac
- int rb = 0;
- cout << "Unesite redni broj:" << endl;
- cin >> rb;
- //3. ukoliko je redni broj validan tj. ukoliko ne premasuje gornju i donju
- // granicu niza, funkcija vraca pokazivac na odabranog studenta
- if (rb >= 1 || rb <= max){
- rb--;
- return &pok[rb];
- }
- //4. ukoliko redni broj premasuje vrijednost niza funkcija vraca null
- return NULL;
- }
- void pretraga(student * pok, int max) {
- //1. korisnik unosi broj indeksa studenta cije podatke pretrazuje
- char indeks[10];
- cout << "Unesi broj indeksa:" << endl;
- bool pronadjen = false;
- //2. funkcija vrsi pretragu, te ukoliko pronadje studenta sa unesenim brojem
- // indeksa ispisuje sve njegove podatke
- cin.getline(indeks, 9);
- for (int i = 0; i < max; i++) {
- if (strcmp(pok[i].index, indeks)==0) {
- cout << "Ime i prezime: " << pok[i].imePrezime << endl;
- cout << "Broj indeksa: " << pok[i].index << endl;
- cout << "Godina studija: " << pok[i].godinaStudija << endl;
- pronadjen = true;
- }
- }
- //3. ukoliko student sa unesenim brojem indeksa ne postoji funkcija
- // treba da ispise odgovarajucu poruku
- if (pronadjen=false)
- cout << "Ne postoji student s unesenim brojem indeksa." << endl;
- }
- void main() {
- //1. korisniku omoguciti da odredi koliko objekata tipa student zeli kreirati
- // objekte kreirati u dinamickoj memoriji
- int max = 0;
- cout << "Koliko studenata zelite unijeti?" << endl;
- cin >> max;
- cin.ignore();
- student * pok = new student[max];
- //2. korisniku omoguciti da inicijalizuje vrijednosti atributa svakog studenta
- for (int i = 0; i < max; i++)
- unos(&pok[i]);
- //3. korisniku omoguciti pretragu studenata
- pretraga(pok, max);
- //4. kreirati pokazivac koji ce biti inicijalizovan vrijednoscu koju vrati
- // funkcija getPokazivac, ukoliko je moguce - preko kreiranog pokazivaca
- // ispisati podatke o tom studentu
- student * vraceniPok = getPokazivac(pok, max);
- if (vraceniPok != NULL) {
- cout << "Ime i prezime: " << vraceniPok->imePrezime << endl;
- cout << "Indeks: " << vraceniPok->index << endl;
- cout << "Godina studija: " << vraceniPok->godinaStudija << endl;
- }
- delete[] pok;
- pok = NULL;
- vraceniPok = NULL;
- system("pause>0");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement