Advertisement
developer10

Ispitni-Februar-Funkcija-AddPredmetRazred

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