Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- enum GodinaStudija{PRVA=1, DRUGA, TRECA, CETVRTA};
- enum NacinStudiranja{DL, REDOVAN};
- struct Predmet{
- char * _Naziv;
- int * _Ocjena;
- GodinaStudija * _Godina;
- void Unos(char * naziv, int ocjena, GodinaStudija g){
- //Izvrsiti potrebne alokacije i odgovarajuce inicijalilzaciju atributa struketure
- _Naziv=new char[strlen(naziv)+1];
- strcpy(_Naziv,naziv);
- _Ocjena=new int;
- _Ocjena=&ocjena;
- _Godina=new GodinaStudija;
- _Godina=&g;
- }
- void Ispis(){ //Ispisati vrijednosti atributa strukture
- cout<<"Naziv predmeta: "<<_Naziv<<endl;
- cout<<"Ocjena: "<<_Ocjena<<endl;
- cout<<"Godina studija: "<<_Godina<<endl;
- }
- void Dealociraj(){
- //Izvrsiti potrebnu dealokaciju
- delete[] _Naziv;
- _Naziv=nullptr;
- delete _Ocjena;
- _Ocjena=nullptr;
- delete _Godina;
- _Godina=nullptr;
- }
- };
- struct Student{
- int * _brojIndexa;
- char * _imePrezime;
- NacinStudiranja _Nacin;
- GodinaStudija _Godina;
- Predmet * _Polozeni;
- int * _brojPolozenih; //brojac
- void Unos(int brind,char *imeprezime,NacinStudiranja nacin, GodinaStudija godina, Predmet polozeni){
- /*Izvrsiti potrebne alokacije i odgovarajucu inicijalizaciju atributa strukture
- Svaki atibut moze imati maksimalno 40 polozenih predmeta*/
- _brojPolozenih=0;
- _brojIndexa=new int;
- _brojIndexa=&brind;
- _imePrezime=new char [strlen(imeprezime)+1];
- strcpy(_imePrezime,imeprezime);
- _Nacin=nacin;
- _Godina=godina;
- _Polozeni=&polozeni;
- polozeni.Unos(
- }
- void Ispis(){
- // Ispisati vrijednosti svih atributa strukture
- }
- bool DodajPolozeni(Predmet * p){
- /*Na osnovu primljenog parametra funkcija DodajPolozeni treba da omoguci inicijalizaciju vrijednosti
- atributa koji se odnose na novopolozeni predmet. Prilikom dodavanja novog predmeta voditi racuna
- o mogucim prekoracenjima. Onemoguciti dodavanje predmeta koji pripadaju visim godinama studija
- npr. ukoliko je student I godina, onda nece moci polagati predmet sa II i III godine. Funkcija
- vraca true ukoliko je predmet uspjesno dodat u suprotonom vraca FALSE */
- }
- bool UkloniPolozeni(char * naziv, GodinaStudija * godina){
- /*Uklanja polozeni predmet koji odgovara vrijednostima primljenog parametra. Nakon uklanjanja
- osigurati kontinuitet elemenata u nizu. U slucaju uspjesnog uklanjanja predmeta funkcija vraca TRUE
- a u suprotnom vraca FALSE */
- }
- float GetProsjek(GodinaStudija * godina){
- /*Funkcija vraca prosjecnu ocjenu na odredjenoj godini studija. Ukoliko student nema niti jedan polozeni
- predmet funkcija vraca vrijednost 5.0*/
- }
- void Dealociraj(){ /* Vrsi dealokaciju zauzete memorije*/ }
- };
- void PretragaPoNazivuIOcjeni(Student * pok, int max){
- /*Korisniku treba omoguciti da ispise listu svih studenata koji su odredjeni predmet polozili
- ocjenom vecom od definisane. Naziv predmeta i ocjenu, po kojima se vrsi pretraga, unosi korisnik na samom
- pocetku izvrsavanja funkcije (npr: Prikazi sve studente koji su polozili predmet PR1 ocjenom vecom od 8). */
- }
- int PretragaPoGodiniIProsjeku(Student * pok, int max){
- /*Funkcija treba da vrati broj studenta koji na odredjenoj godini studija imaju prosjek veci od zadatog
- Na samom pocetku funkcije program od korisnika zahtijeva da unese godinu studija i prosjek ocjene
- po kojem ce se vrsiti pretraga*/
- }
- void main(){
- //Korisniku omoguciti da odredi broj studenta cije ce podatke inicijalizovati
- //Nakon kreiranja liste studenata demonstrirati koristenje defnisanih funkcija
- system("pause>0");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement