Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- struct Datum {
- int _dan, _mjesec, _godina;
- void Unos(int d, int m, int g) {
- _dan = d; _mjesec = m; _godina = g;
- }
- void Ispis() {
- cout << _dan << "/" << _mjesec << "/" << _godina << endl;
- }
- };
- struct Polozenipredmet {
- char * _naziv;
- Datum * _datumPolaganja;
- int * _ocjena;
- char * _profesorNaPredmetu;
- void Unos(char * naziv, Datum d, int * ocjena, char * prof) //stavila *
- {
- _naziv = new char[strlen(naziv) + 1];
- strcpy(_naziv, naziv,);
- _datumPolaganja = new Datum;
- *_datumPolaganja = d;
- _ocjena = new int;
- _ocjena = ocjena;
- _profesorNaPredmetu = new char[strlen(prof) + 1];
- strcpy(_profesorNaPredmetu, prof);
- }
- void Ispis() {
- cout << _naziv << endl << *_ocjena << endl;
- _datumPolaganja->Ispis();
- cout << _profesorNaPredmetu << endl;
- }
- void Dealociraj() {
- delete _naziv;
- delete[] _datumPolaganja;
- delete _ocjena;
- delete[] _profesorNaPredmetu;
- }
- };
- struct Student {
- int * _brojIndexa;
- char *_imePrezime;
- Datum * _datumRodjenja;
- Polozenipredmet * _polozeniPredmeti;
- int _trenutnoPolozenih;
- int _maxPolozenih;
- void Unos(int * indeks, char * _imePrezime, Datum _datumRodjenja);
- bool DodajPolozeni(Polozenipredmet * _polozeni);
- int UkloniPolozeni(char * prof);
- };
- int Student::UkloniPolozeni(char* prof)
- {
- int zaObrisat = 0;
- for (int i = 0; i < _trenutnoPolozenih; i++)
- {
- if (strcmp(_polozeniPredmeti[i]._profesorNaPredmetu, prof) == 0)
- {
- zaObrisat++;
- }
- }
- Polozenipredmet* tmp = new Polozenipredmet[_trenutnoPolozenih - zaObrisat];
- for (int i = 0; i < _trenutnoPolozenih; i++)
- {
- if (strcmp(_polozeniPredmeti[i]._profesorNaPredmetu, prof) != 0)
- {
- tmp[i] = _polozeniPredmeti[i];
- }
- }
- delete[] _polozeniPredmeti;
- _polozeniPredmeti = tmp;
- return zaObrisat;
- }
- void Student::Unos(int * indeks, char * imePrezime, Datum datumRodjenja)
- {
- _brojIndexa = new int(*indeks);
- int size = strlen(imePrezime) + 1;
- _imePrezime = new char[size];
- strcpy_s(_imePrezime, size, imePrezime);
- _datumRodjenja = new Datum(datumRodjenja);
- _trenutnoPolozenih = 0;
- }
- bool Student::DodajPolozeni(Polozenipredmet * _polozeni)
- {
- if (!(_trenutnoPolozenih < _maxPolozenih))
- return false;
- Polozenipredmet* tmp = new Polozenipredmet[_trenutnoPolozenih + 1];
- for (int i = 0; i < _trenutnoPolozenih; i++)
- tmp[i] = _polozeniPredmeti[i];
- tmp[_trenutnoPolozenih] = *_polozeni;
- delete[] _polozeniPredmeti;
- _polozeniPredmeti = tmp;
- _trenutnoPolozenih++;
- return true;
- }
- PolozeniPredmet * GetPolozeneByProsjek(char * naziv)
- {
- int size = 0;
- for (int i = 0; i < _trenutnoPolozenih; i++)
- {
- if (strcmp(naziv, _polozeniPredmeti[i]) == 0)
- size++;
- }
- PolozeniPredmet* polozeni = new PolozeniPredmet[size];
- for (int i = 0; i < _trenutnoPolozenih; i++)
- {
- if (strcmp(naziv, _polozeniPredmeti[i]) == 0)
- polozeni[i] = _polozeniPredmeti[i];
- }
- return polozeni;
- }
- void main()
- {
- Student foo;
- system("pause>0");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement