Advertisement
Guest User

studentskaSluzbaFIT

a guest
Aug 21st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. enum NacinStudiranja { Redovni = 1, DL };
  6. char *nazivi[] = { "Redovni", "DL" };
  7.  
  8. struct Datum
  9. {
  10.     int *_dan, *_mjesec, *_godina;
  11.  
  12.     void Unos(int dan = 1, int mjesec = 1, int godina = 2000)
  13.     {
  14.         _dan = new int(dan);
  15.         _mjesec = new int(mjesec);
  16.         _godina = new int(godina);
  17.     }
  18.     void Dealociraj()
  19.     {
  20.         delete _dan;
  21.         delete _mjesec;
  22.         delete _godina;
  23.         _dan = _mjesec = _godina = nullptr;
  24.     }
  25. };
  26.  
  27. struct Predmet
  28. {
  29.     char * _naziv;
  30.     int _ocjena;
  31.  
  32.     void Unos(char * naziv, int ocjena)
  33.     {
  34.         _naziv = new char[strlen(naziv) + 1];
  35.         strcpy_s(_naziv, strlen(naziv) + 1, naziv);
  36.         _ocjena = ocjena;
  37.     }
  38.     void Dealociraj() { delete[]_naziv; _naziv = nullptr; }
  39.  
  40. };
  41. struct Student
  42. {
  43.     char * _imePrezime;
  44.     Datum _datumRodjenja;
  45.     char * _brojIndeksa;
  46.     NacinStudiranja RedovniDL;
  47.     Predmet * _polozeniPredmeti;
  48.     int _trenutno;
  49.  
  50.     void Unos(char * imePrezime, Datum datumRodjenja, char * brojIndeksa, NacinStudiranja nacin)
  51.     {
  52.         _imePrezime = new char[strlen(imePrezime) + 1];
  53.         strcpy_s(_imePrezime, strlen(imePrezime) + 1, imePrezime);
  54.         _datumRodjenja.Unos(*datumRodjenja._dan, *datumRodjenja._mjesec, *datumRodjenja._godina);
  55.         _brojIndeksa = new char[strlen(brojIndeksa) + 1];
  56.         strcpy_s(_brojIndeksa, strlen(brojIndeksa) + 1, brojIndeksa);
  57.         RedovniDL = nacin;
  58.         _trenutno = 0;
  59.         _polozeniPredmeti = nullptr;
  60.     }
  61.     void Kopiraj(char * imePrezime, Datum datumRodjenja, char * brojIndeksa, NacinStudiranja nacin, Predmet * polozeniPredmet, int trenutno)
  62.     {
  63.         _imePrezime = new char[strlen(imePrezime) + 1];
  64.         strcpy_s(_imePrezime, strlen(imePrezime) + 1, imePrezime);
  65.         _datumRodjenja.Unos(*datumRodjenja._dan, *datumRodjenja._mjesec, *datumRodjenja._godina);
  66.         _brojIndeksa = new char[strlen(brojIndeksa) + 1];
  67.         strcpy_s(_brojIndeksa, strlen(brojIndeksa) + 1, brojIndeksa);
  68.         RedovniDL = nacin;
  69.         _trenutno = trenutno;
  70.         _polozeniPredmeti = nullptr;
  71.         if (_trenutno > 0)
  72.         {
  73.             _polozeniPredmeti = new Predmet[_trenutno];
  74.             for (int i = 0; i < _trenutno; i++)
  75.                 _polozeniPredmeti[i].Unos(polozeniPredmet->_naziv, polozeniPredmet->_ocjena);
  76.         }
  77.     }
  78.     bool DodajPolozeniPredmet(char * naziv, int ocjena)
  79.     {
  80.         Predmet * temp = new Predmet[_trenutno + 1];
  81.         for (int i = 0; i < _trenutno; i++)
  82.             temp[i].Unos(_polozeniPredmeti->_naziv, _polozeniPredmeti->_ocjena);
  83.         temp[_trenutno].Unos(naziv, ocjena);
  84.         delete[]_polozeniPredmeti;
  85.         _polozeniPredmeti = temp;
  86.         _trenutno++;
  87.         return true;
  88.     }
  89.  
  90.     void Dealociraj()
  91.     {
  92.         delete[]_imePrezime;
  93.         delete[]_brojIndeksa;
  94.         _imePrezime = _brojIndeksa = nullptr;
  95.         delete[]_polozeniPredmeti;
  96.         _polozeniPredmeti = nullptr;
  97.     }
  98.  
  99. };
  100.  
  101. struct NastavnoOsoblje
  102. {
  103.     char * _imePrezime;
  104.     char * _brojRadneKnjizice;
  105.     Datum _datumRodjenja;
  106.  
  107.     void Unos(char * imePrezime, char * brojRadneKnjizice, Datum datumRodjenja)
  108.     {
  109.         _imePrezime = new char[strlen(imePrezime) + 1];
  110.         strcpy_s(_imePrezime, strlen(imePrezime) + 1, imePrezime);
  111.         _datumRodjenja.Unos(*datumRodjenja._dan, *datumRodjenja._mjesec, *datumRodjenja._godina);
  112.         _brojRadneKnjizice = new char[strlen(brojRadneKnjizice) + 1];
  113.         strcpy_s(_brojRadneKnjizice, strlen(brojRadneKnjizice) + 1, brojRadneKnjizice);
  114.     }
  115.     void Dealociraj() { delete[]_imePrezime; delete[]_brojRadneKnjizice; _imePrezime = _brojRadneKnjizice = nullptr; }
  116. };
  117.  
  118. struct StudentskaSluzba
  119. {
  120.     char * _imeFakulteta;
  121.     NastavnoOsoblje * _osoblje;
  122.     Student * _studenti;
  123.     string * _usernames, * _passwords;
  124.     int _trenutnoOsoblja, _trenutnoStudenata;
  125.  
  126.     void Unos(char * imeFakulteta)
  127.     {
  128.         _imeFakulteta = new char[strlen(imeFakulteta) + 1];
  129.         strcpy_s(_imeFakulteta, strlen(imeFakulteta) + 1, imeFakulteta);
  130.         _osoblje = nullptr;
  131.         _studenti = nullptr;
  132.         _usernames = nullptr;
  133.         _passwords = nullptr;
  134.         _trenutnoOsoblja = 0;
  135.         _trenutnoStudenata = 0;
  136.     }
  137.     bool DodajOsoblje(NastavnoOsoblje osoba, char * username, char * password)
  138.     {
  139.         NastavnoOsoblje * temp = new NastavnoOsoblje[_trenutnoOsoblja + 1];
  140.         string * temp1 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
  141.         string * temp2 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
  142.  
  143.         for (int i = 0; i < _trenutnoOsoblja + _trenutnoStudenata; i++)
  144.         {
  145.             temp1[i] = _usernames[i];
  146.             temp2[i] = _passwords[i];
  147.         }
  148.  
  149.         for (int i = 0; i < _trenutnoOsoblja; i++)
  150.             temp[i].Unos(_osoblje[i]._imePrezime, _osoblje[i]._brojRadneKnjizice, _osoblje[i]._datumRodjenja);
  151.        
  152.         temp[_trenutnoOsoblja].Unos(osoba._imePrezime, osoba._brojRadneKnjizice, osoba._datumRodjenja);
  153.         temp1[_trenutnoOsoblja + _trenutnoStudenata] = username;
  154.         temp2[_trenutnoOsoblja + _trenutnoStudenata] = password;
  155.         delete[]_usernames;
  156.         delete[]_passwords;
  157.         delete[]_osoblje;
  158.         _osoblje = temp;
  159.         _usernames = temp1;
  160.         _passwords = temp2;
  161.  
  162.         _trenutnoOsoblja++;
  163.         return true;
  164.  
  165.     }
  166.  
  167.     bool DodajStudenta(Student student, char * username, char * password)
  168.     {
  169.         Student * temp = new Student[_trenutnoStudenata + 1];
  170.         string * temp1 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
  171.         string * temp2 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
  172.  
  173.         for (int i = 0; i < _trenutnoOsoblja + _trenutnoStudenata; i++)
  174.         {
  175.             temp1[i] = _usernames[i];
  176.             temp2[i] = _passwords[i];
  177.         }
  178.  
  179.         for (int i = 0; i < _trenutnoStudenata; i++)
  180.             temp[i].Kopiraj(_studenti->_imePrezime, _studenti->_datumRodjenja, _studenti->_brojIndeksa, _studenti->RedovniDL, _studenti->_polozeniPredmeti, _studenti->_trenutno);
  181.        
  182.         temp[_trenutnoStudenata].Kopiraj(student._imePrezime, student._datumRodjenja, student._brojIndeksa, student.RedovniDL, student._polozeniPredmeti, student._trenutno);
  183.         temp1[_trenutnoOsoblja + _trenutnoStudenata] = username;
  184.         temp2[_trenutnoOsoblja + _trenutnoStudenata] = password;
  185.         delete[]_usernames;
  186.         delete[]_passwords;
  187.         delete[]_studenti;
  188.         _studenti = temp;
  189.         _usernames = temp1;
  190.         _passwords = temp2;
  191.         _trenutnoStudenata++;
  192.         return true;
  193.     }
  194.  
  195.     void Dealociraj()
  196.     {
  197.         delete[]_imeFakulteta;
  198.         _imeFakulteta = nullptr;
  199.         delete[]_studenti;
  200.         _studenti = nullptr;
  201.         delete[]_osoblje;
  202.         _osoblje = nullptr;
  203.         delete[]_usernames;
  204.         delete[]_passwords;
  205.         _usernames = _passwords = nullptr;
  206.  
  207.     }
  208. };
  209.  
  210. //
  211. //int BrojStudenata = 0;
  212. //int MaxBrojStudenata = 10;
  213. //int BrojRedovnih = 0;
  214. //int _BrojIndeksa = 100;
  215. //int Izbor;
  216. //
  217. //int FunkcijaLogin() {
  218. //  char* userName;
  219. //  char* userPassword;
  220. //  int loginPokusaji = 0;
  221. //
  222. //  while (loginPokusaji < 5)
  223. //  {
  224. //      cout << "Molim Vas upisite Korisnicko ime: " << endl;
  225. //      char temp[15];
  226. //      cin.getline(temp, 15);
  227. //      int velicina = strlen(temp) + 1;
  228. //      userName = new char[velicina];
  229. //      strcpy_s(userName, velicina, temp);
  230. //      system("cls");
  231. //      cout << "Molim Vas upisite Lozinku: " << endl;
  232. //      cin.getline(temp, 15);
  233. //      velicina = strlen(temp) + 1;
  234. //      userPassword = new char[velicina];
  235. //      strcpy_s(userPassword, velicina, temp);
  236. //      system("cls");
  237. //
  238. //      if (strcmp(userName, "Visnja") == 0 && strcmp(userPassword, "Traktor123") == 0)
  239. //      {
  240. //          cout << "Dobrodosli Visnja!\n";
  241. //          delete userName; userName = NULL;
  242. //          delete userPassword; userPassword = NULL;
  243. //          return 1;
  244. //      }
  245. //      else if (strcmp(userName, "Dubravka") == 0 && strcmp(userPassword, "Motika123") == 0)
  246. //      {
  247. //          cout << "Dobrodosli Dubravka!\n";
  248. //          delete userName; userName = NULL;
  249. //          delete userPassword; userPassword = NULL;
  250. //          return 1;
  251. //      }
  252. //      else
  253. //      {
  254. //          cout << "Netocni Login podaci. Molim Vas pokusajte ponovno.\n" << '\n';
  255. //          delete userName; userName = NULL;
  256. //          delete userPassword; userPassword = NULL;
  257. //          loginPokusaji++;
  258. //      }
  259. //  }
  260. //  if (loginPokusaji == 5)
  261. //  {
  262. //      system("cls");
  263. //      cout << "Previse Login pokusaja! Program ce se sada zavrsiti." << endl;
  264. //      return 0;
  265. //  }
  266. //}
  267. //
  268. //int PrikaziMeni() {
  269. //  do
  270. //  {
  271. //      cout << "\t\t\t\t\t::MENI STUDENTSKE SLUZBE::" << endl;
  272. //      cout << "1. Upis studenata u sistem " << endl;
  273. //      cout << "2. Prikaz svih studenata " << endl;
  274. //      cout << "3. Pretraga po imenu studenata " << endl;
  275. //      cout << "4. Izlaz iz programa " << endl;
  276. //      cout << endl << "Unesite izbor: ";
  277. //      cin >> Izbor;
  278. //      system("cls");
  279. //
  280. //  } while (Izbor<1 || Izbor>4);
  281. //  return Izbor;
  282. //}
  283. //
  284. //void UpisStudenta(Student *_Studenti) {
  285. //
  286. //  int unos = 0;
  287. //
  288. //
  289. //  cout << "\t Student sa brojem indeksa " << _BrojIndeksa << " :" << endl;
  290. //  cin.ignore();
  291. //  cout << "Unesite ime: ";
  292. //  char temp[30];
  293. //  cin.getline(temp, 30);
  294. //  int velicina = strlen(temp) + 1;
  295. //  _Studenti[BrojStudenata].ime = new char[velicina];
  296. //  strcpy_s(_Studenti[BrojStudenata].ime, velicina, temp);
  297. //  cout << "Unesite Prezime: ";
  298. //  cin.getline(temp, 30);
  299. //  velicina = strlen(temp) + 1;
  300. //  _Studenti[BrojStudenata].prezime = new char[velicina];
  301. //  strcpy_s(_Studenti[BrojStudenata].prezime, velicina, temp);
  302. //  cout << "Unesite status studenta (1.REDOVNI; 2.DL) : ";
  303. //  cin >> unos;
  304. //  if (unos == 1)
  305. //      BrojRedovnih++;
  306. //  if (BrojRedovnih > 5) {
  307. //      cout << "Popunjena su mjesta Redovnih studenata, ovaj student ce biti DL student! " << endl;
  308. //      _Studenti[BrojStudenata].RedovniDL = (NacinStudiranja)1;
  309. //  }
  310. //  else
  311. //      _Studenti[BrojStudenata].RedovniDL = (NacinStudiranja)--unos;
  312. //  _Studenti[BrojStudenata].BrojIndeksa = _BrojIndeksa;
  313. //  _BrojIndeksa++;
  314. //  BrojStudenata++;
  315. //
  316. //}
  317. //
  318. //void IspisStudenata(Student *_Studenti) {
  319. //  for (int i = 0; i < BrojStudenata; i++)
  320. //  {
  321. //      cout << "\t" << i + 1 << ". Student: " << endl;
  322. //      cout << "Ime: " << _Studenti[i].ime << endl;
  323. //      cout << "Prezime: " << _Studenti[i].prezime << endl;
  324. //      cout << "Status: " << nazivi[_Studenti[i].RedovniDL] << endl;
  325. //      cout << "Indeks: " << _Studenti[i].BrojIndeksa << endl;
  326. //  }
  327. //}
  328. //
  329. //int PretragaPoImenu(Student *_Studenti, int &broj1, char &error) {
  330. //  char privremenoIme[30];
  331. //  cout << "Unesite ime studenta cije podatke zelite: " << endl;
  332. //  cin >> privremenoIme;
  333. //  for (int i = 0; i < BrojStudenata; i++)
  334. //  {
  335. //      if (strcmp(_Studenti[i].ime, privremenoIme) == 0)
  336. //      {
  337. //          error = true;
  338. //          return broj1;
  339. //      }
  340. //      else
  341. //          broj1++;
  342. //  }
  343. //  if (error = false) {
  344. //      return broj1;
  345. //  }
  346. //}
  347. //
  348. //void IspisStudenataPoPretrazi(Student *__Studenti, int broj) {
  349. //
  350. //  cout << "\t" << broj + 1 << ". Student: " << endl;
  351. //  cout << "Ime: " << __Studenti[broj].ime << endl;
  352. //  cout << "Prezime: " << __Studenti[broj].prezime << endl;
  353. //  cout << "Status: " << nazivi[__Studenti[broj].RedovniDL] << endl;
  354. //  cout << "Indeks: " << __Studenti[broj].BrojIndeksa << endl;
  355. //}
  356.  
  357.  
  358.  
  359. void main() {
  360.  
  361.     Datum d1, d2;
  362.     d1.Unos(15, 12, 1996);
  363.     d2.Unos(4, 3, 1985);
  364.  
  365.     Predmet pr2;
  366.     pr2.Unos("Programiranje II", 7);
  367.  
  368.     Student maid;
  369.     maid.Unos("Maid Beslagic", d1, "IB150017", Redovni);
  370.  
  371.     NastavnoOsoblje denis;
  372.     denis.Unos("Denis Music", "RB321002", d2);
  373.  
  374.     StudentskaSluzba fit;
  375.     fit.Unos("Fakultet informacijskih tehnologija");
  376.     fit.DodajOsoblje(denis, "denis", "music123");
  377.     fit.DodajStudenta(maid, "maid", "bbbb");
  378.  
  379.     d1.Dealociraj();
  380.     d2.Dealociraj();
  381.     pr2.Dealociraj();
  382.     denis.Dealociraj();
  383.     maid.Dealociraj();
  384.     fit.Dealociraj();
  385.    
  386.    
  387.  
  388.     /*Student *Studenti = new Student[MaxBrojStudenata];
  389.     int broj2 = 0;
  390.     char err = false;
  391.     if (FunkcijaLogin() == 1) {
  392.         do {
  393.             PrikaziMeni();
  394.             if (Izbor == 1 && BrojStudenata <= 10)
  395.                 UpisStudenta(Studenti);
  396.             if (Izbor == 2)
  397.                 IspisStudenata(Studenti);
  398.             if (Izbor == 3) {
  399.                 PretragaPoImenu(Studenti, broj2, err);
  400.                 if (err == true)
  401.                     IspisStudenataPoPretrazi(Studenti, broj2);
  402.                 else
  403.                     cout << "Ne postoji student sa tim imenom!" << endl;
  404.                 broj2 = 0;
  405.             }
  406.         } while (Izbor != 4);
  407.     }
  408.     delete[]Studenti;
  409.     Studenti = NULL;
  410.  
  411.  
  412.     system("pause");
  413.     */
  414. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement