Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool AddPredmetRazred(const Predmeti& e1, const Razredi& e2)
- {
- // nastavniku se moze dodati isti predmet, ali najvise 2 puta
- // pri cemu moraju biti u razlicitim odjeljenjima na razlicitim godinama
- int brojac = 0;
- for (int i = 0; i < _predmetiRazredi->GetTrenutno(); i++){
- // predmet je isti. Funkcija AddElement() kolekcije ce svakako sprijeciti
- // pokusaj dodavanja kada je i razred (e2) isti
- if (_predmetiRazredi->GetElement1(i) == e1){
- brojac++;
- // u nizu predmeta, sto se godina tice imamo indekse:
- // Ir: 0-1-2, IIr: 3-4-5, IIIr: 6-7-8, IVr: 9-10-11
- string unos = to_string(e2);
- string pravila[4] = { "[0-2]", "[3-5]", "[6-8]", "9|10|11" };
- for (int i = 1; i <= 4; i++)
- // utvrdjujemo za koji element pravila (1-4) ce regex_match() vratiti true,
- // tj. u kom rasponu (godini) je odjeljenje koje pokusavamo dodati
- if (regex_match(unos, regex(pravila[i - 1])))
- // ista provjera ali za odjeljenje postojeceg predmeta (koji smo vec pronasli za ovog nastavnika);
- // ako regex_match() takodje vrati true - to je znak da su u istom rasponu, tj. spadaju u istu godinu
- if (regex_match(to_string(_predmetiRazredi->GetElement2(i)), regex(pravila[i - 1])))
- return false;
- }
- }
- // debug
- //cout << "Nastavniku " << _imePrezime << " dodan predmet " << ispisPredmeti[e1] << " u odjeljenju " << ispisRazredi[e2] << endl;
- return (brojac < 2) ? _predmetiRazredi->AddElement(e1, e2) : false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement