Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- enum NacinStudiranja { Redovni = 1, DL };
- char *nazivi[] = { "Redovni", "DL" };
- struct Datum
- {
- int *_dan, *_mjesec, *_godina;
- void Unos(int dan = 1, int mjesec = 1, int godina = 2000)
- {
- _dan = new int(dan);
- _mjesec = new int(mjesec);
- _godina = new int(godina);
- }
- void Dealociraj()
- {
- delete _dan;
- delete _mjesec;
- delete _godina;
- _dan = _mjesec = _godina = nullptr;
- }
- };
- struct Predmet
- {
- char * _naziv;
- int _ocjena;
- void Unos(char * naziv, int ocjena)
- {
- _naziv = new char[strlen(naziv) + 1];
- strcpy_s(_naziv, strlen(naziv) + 1, naziv);
- _ocjena = ocjena;
- }
- void Dealociraj() { delete[]_naziv; _naziv = nullptr; }
- };
- struct Student
- {
- char * _imePrezime;
- Datum _datumRodjenja;
- char * _brojIndeksa;
- NacinStudiranja RedovniDL;
- Predmet * _polozeniPredmeti;
- int _trenutno;
- void Unos(char * imePrezime, Datum datumRodjenja, char * brojIndeksa, NacinStudiranja nacin)
- {
- _imePrezime = new char[strlen(imePrezime) + 1];
- strcpy_s(_imePrezime, strlen(imePrezime) + 1, imePrezime);
- _datumRodjenja.Unos(*datumRodjenja._dan, *datumRodjenja._mjesec, *datumRodjenja._godina);
- _brojIndeksa = new char[strlen(brojIndeksa) + 1];
- strcpy_s(_brojIndeksa, strlen(brojIndeksa) + 1, brojIndeksa);
- RedovniDL = nacin;
- _trenutno = 0;
- _polozeniPredmeti = nullptr;
- }
- void Kopiraj(char * imePrezime, Datum datumRodjenja, char * brojIndeksa, NacinStudiranja nacin, Predmet * polozeniPredmet, int trenutno)
- {
- _imePrezime = new char[strlen(imePrezime) + 1];
- strcpy_s(_imePrezime, strlen(imePrezime) + 1, imePrezime);
- _datumRodjenja.Unos(*datumRodjenja._dan, *datumRodjenja._mjesec, *datumRodjenja._godina);
- _brojIndeksa = new char[strlen(brojIndeksa) + 1];
- strcpy_s(_brojIndeksa, strlen(brojIndeksa) + 1, brojIndeksa);
- RedovniDL = nacin;
- _trenutno = trenutno;
- _polozeniPredmeti = nullptr;
- if (_trenutno > 0)
- {
- _polozeniPredmeti = new Predmet[_trenutno];
- for (int i = 0; i < _trenutno; i++)
- _polozeniPredmeti[i].Unos(polozeniPredmet->_naziv, polozeniPredmet->_ocjena);
- }
- }
- bool DodajPolozeniPredmet(char * naziv, int ocjena)
- {
- Predmet * temp = new Predmet[_trenutno + 1];
- for (int i = 0; i < _trenutno; i++)
- temp[i].Unos(_polozeniPredmeti->_naziv, _polozeniPredmeti->_ocjena);
- temp[_trenutno].Unos(naziv, ocjena);
- delete[]_polozeniPredmeti;
- _polozeniPredmeti = temp;
- _trenutno++;
- return true;
- }
- void Dealociraj()
- {
- delete[]_imePrezime;
- delete[]_brojIndeksa;
- _imePrezime = _brojIndeksa = nullptr;
- delete[]_polozeniPredmeti;
- _polozeniPredmeti = nullptr;
- }
- };
- struct NastavnoOsoblje
- {
- char * _imePrezime;
- char * _brojRadneKnjizice;
- Datum _datumRodjenja;
- void Unos(char * imePrezime, char * brojRadneKnjizice, Datum datumRodjenja)
- {
- _imePrezime = new char[strlen(imePrezime) + 1];
- strcpy_s(_imePrezime, strlen(imePrezime) + 1, imePrezime);
- _datumRodjenja.Unos(*datumRodjenja._dan, *datumRodjenja._mjesec, *datumRodjenja._godina);
- _brojRadneKnjizice = new char[strlen(brojRadneKnjizice) + 1];
- strcpy_s(_brojRadneKnjizice, strlen(brojRadneKnjizice) + 1, brojRadneKnjizice);
- }
- void Dealociraj() { delete[]_imePrezime; delete[]_brojRadneKnjizice; _imePrezime = _brojRadneKnjizice = nullptr; }
- };
- struct StudentskaSluzba
- {
- char * _imeFakulteta;
- NastavnoOsoblje * _osoblje;
- Student * _studenti;
- string * _usernames, * _passwords;
- int _trenutnoOsoblja, _trenutnoStudenata;
- void Unos(char * imeFakulteta)
- {
- _imeFakulteta = new char[strlen(imeFakulteta) + 1];
- strcpy_s(_imeFakulteta, strlen(imeFakulteta) + 1, imeFakulteta);
- _osoblje = nullptr;
- _studenti = nullptr;
- _usernames = nullptr;
- _passwords = nullptr;
- _trenutnoOsoblja = 0;
- _trenutnoStudenata = 0;
- }
- bool DodajOsoblje(NastavnoOsoblje osoba, char * username, char * password)
- {
- NastavnoOsoblje * temp = new NastavnoOsoblje[_trenutnoOsoblja + 1];
- string * temp1 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
- string * temp2 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
- for (int i = 0; i < _trenutnoOsoblja + _trenutnoStudenata; i++)
- {
- temp1[i] = _usernames[i];
- temp2[i] = _passwords[i];
- }
- for (int i = 0; i < _trenutnoOsoblja; i++)
- temp[i].Unos(_osoblje[i]._imePrezime, _osoblje[i]._brojRadneKnjizice, _osoblje[i]._datumRodjenja);
- temp[_trenutnoOsoblja].Unos(osoba._imePrezime, osoba._brojRadneKnjizice, osoba._datumRodjenja);
- temp1[_trenutnoOsoblja + _trenutnoStudenata] = username;
- temp2[_trenutnoOsoblja + _trenutnoStudenata] = password;
- delete[]_usernames;
- delete[]_passwords;
- delete[]_osoblje;
- _osoblje = temp;
- _usernames = temp1;
- _passwords = temp2;
- _trenutnoOsoblja++;
- return true;
- }
- bool DodajStudenta(Student student, char * username, char * password)
- {
- Student * temp = new Student[_trenutnoStudenata + 1];
- string * temp1 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
- string * temp2 = new string[_trenutnoOsoblja + _trenutnoStudenata + 1];
- for (int i = 0; i < _trenutnoOsoblja + _trenutnoStudenata; i++)
- {
- temp1[i] = _usernames[i];
- temp2[i] = _passwords[i];
- }
- for (int i = 0; i < _trenutnoStudenata; i++)
- temp[i].Kopiraj(_studenti->_imePrezime, _studenti->_datumRodjenja, _studenti->_brojIndeksa, _studenti->RedovniDL, _studenti->_polozeniPredmeti, _studenti->_trenutno);
- temp[_trenutnoStudenata].Kopiraj(student._imePrezime, student._datumRodjenja, student._brojIndeksa, student.RedovniDL, student._polozeniPredmeti, student._trenutno);
- temp1[_trenutnoOsoblja + _trenutnoStudenata] = username;
- temp2[_trenutnoOsoblja + _trenutnoStudenata] = password;
- delete[]_usernames;
- delete[]_passwords;
- delete[]_studenti;
- _studenti = temp;
- _usernames = temp1;
- _passwords = temp2;
- _trenutnoStudenata++;
- return true;
- }
- void Dealociraj()
- {
- delete[]_imeFakulteta;
- _imeFakulteta = nullptr;
- delete[]_studenti;
- _studenti = nullptr;
- delete[]_osoblje;
- _osoblje = nullptr;
- delete[]_usernames;
- delete[]_passwords;
- _usernames = _passwords = nullptr;
- }
- };
- //
- //int BrojStudenata = 0;
- //int MaxBrojStudenata = 10;
- //int BrojRedovnih = 0;
- //int _BrojIndeksa = 100;
- //int Izbor;
- //
- //int FunkcijaLogin() {
- // char* userName;
- // char* userPassword;
- // int loginPokusaji = 0;
- //
- // while (loginPokusaji < 5)
- // {
- // cout << "Molim Vas upisite Korisnicko ime: " << endl;
- // char temp[15];
- // cin.getline(temp, 15);
- // int velicina = strlen(temp) + 1;
- // userName = new char[velicina];
- // strcpy_s(userName, velicina, temp);
- // system("cls");
- // cout << "Molim Vas upisite Lozinku: " << endl;
- // cin.getline(temp, 15);
- // velicina = strlen(temp) + 1;
- // userPassword = new char[velicina];
- // strcpy_s(userPassword, velicina, temp);
- // system("cls");
- //
- // if (strcmp(userName, "Visnja") == 0 && strcmp(userPassword, "Traktor123") == 0)
- // {
- // cout << "Dobrodosli Visnja!\n";
- // delete userName; userName = NULL;
- // delete userPassword; userPassword = NULL;
- // return 1;
- // }
- // else if (strcmp(userName, "Dubravka") == 0 && strcmp(userPassword, "Motika123") == 0)
- // {
- // cout << "Dobrodosli Dubravka!\n";
- // delete userName; userName = NULL;
- // delete userPassword; userPassword = NULL;
- // return 1;
- // }
- // else
- // {
- // cout << "Netocni Login podaci. Molim Vas pokusajte ponovno.\n" << '\n';
- // delete userName; userName = NULL;
- // delete userPassword; userPassword = NULL;
- // loginPokusaji++;
- // }
- // }
- // if (loginPokusaji == 5)
- // {
- // system("cls");
- // cout << "Previse Login pokusaja! Program ce se sada zavrsiti." << endl;
- // return 0;
- // }
- //}
- //
- //int PrikaziMeni() {
- // do
- // {
- // cout << "\t\t\t\t\t::MENI STUDENTSKE SLUZBE::" << endl;
- // cout << "1. Upis studenata u sistem " << endl;
- // cout << "2. Prikaz svih studenata " << endl;
- // cout << "3. Pretraga po imenu studenata " << endl;
- // cout << "4. Izlaz iz programa " << endl;
- // cout << endl << "Unesite izbor: ";
- // cin >> Izbor;
- // system("cls");
- //
- // } while (Izbor<1 || Izbor>4);
- // return Izbor;
- //}
- //
- //void UpisStudenta(Student *_Studenti) {
- //
- // int unos = 0;
- //
- //
- // cout << "\t Student sa brojem indeksa " << _BrojIndeksa << " :" << endl;
- // cin.ignore();
- // cout << "Unesite ime: ";
- // char temp[30];
- // cin.getline(temp, 30);
- // int velicina = strlen(temp) + 1;
- // _Studenti[BrojStudenata].ime = new char[velicina];
- // strcpy_s(_Studenti[BrojStudenata].ime, velicina, temp);
- // cout << "Unesite Prezime: ";
- // cin.getline(temp, 30);
- // velicina = strlen(temp) + 1;
- // _Studenti[BrojStudenata].prezime = new char[velicina];
- // strcpy_s(_Studenti[BrojStudenata].prezime, velicina, temp);
- // cout << "Unesite status studenta (1.REDOVNI; 2.DL) : ";
- // cin >> unos;
- // if (unos == 1)
- // BrojRedovnih++;
- // if (BrojRedovnih > 5) {
- // cout << "Popunjena su mjesta Redovnih studenata, ovaj student ce biti DL student! " << endl;
- // _Studenti[BrojStudenata].RedovniDL = (NacinStudiranja)1;
- // }
- // else
- // _Studenti[BrojStudenata].RedovniDL = (NacinStudiranja)--unos;
- // _Studenti[BrojStudenata].BrojIndeksa = _BrojIndeksa;
- // _BrojIndeksa++;
- // BrojStudenata++;
- //
- //}
- //
- //void IspisStudenata(Student *_Studenti) {
- // for (int i = 0; i < BrojStudenata; i++)
- // {
- // cout << "\t" << i + 1 << ". Student: " << endl;
- // cout << "Ime: " << _Studenti[i].ime << endl;
- // cout << "Prezime: " << _Studenti[i].prezime << endl;
- // cout << "Status: " << nazivi[_Studenti[i].RedovniDL] << endl;
- // cout << "Indeks: " << _Studenti[i].BrojIndeksa << endl;
- // }
- //}
- //
- //int PretragaPoImenu(Student *_Studenti, int &broj1, char &error) {
- // char privremenoIme[30];
- // cout << "Unesite ime studenta cije podatke zelite: " << endl;
- // cin >> privremenoIme;
- // for (int i = 0; i < BrojStudenata; i++)
- // {
- // if (strcmp(_Studenti[i].ime, privremenoIme) == 0)
- // {
- // error = true;
- // return broj1;
- // }
- // else
- // broj1++;
- // }
- // if (error = false) {
- // return broj1;
- // }
- //}
- //
- //void IspisStudenataPoPretrazi(Student *__Studenti, int broj) {
- //
- // cout << "\t" << broj + 1 << ". Student: " << endl;
- // cout << "Ime: " << __Studenti[broj].ime << endl;
- // cout << "Prezime: " << __Studenti[broj].prezime << endl;
- // cout << "Status: " << nazivi[__Studenti[broj].RedovniDL] << endl;
- // cout << "Indeks: " << __Studenti[broj].BrojIndeksa << endl;
- //}
- void main() {
- Datum d1, d2;
- d1.Unos(15, 12, 1996);
- d2.Unos(4, 3, 1985);
- Predmet pr2;
- pr2.Unos("Programiranje II", 7);
- Student maid;
- maid.Unos("Maid Beslagic", d1, "IB150017", Redovni);
- NastavnoOsoblje denis;
- denis.Unos("Denis Music", "RB321002", d2);
- StudentskaSluzba fit;
- fit.Unos("Fakultet informacijskih tehnologija");
- fit.DodajOsoblje(denis, "denis", "music123");
- fit.DodajStudenta(maid, "maid", "bbbb");
- d1.Dealociraj();
- d2.Dealociraj();
- pr2.Dealociraj();
- denis.Dealociraj();
- maid.Dealociraj();
- fit.Dealociraj();
- /*Student *Studenti = new Student[MaxBrojStudenata];
- int broj2 = 0;
- char err = false;
- if (FunkcijaLogin() == 1) {
- do {
- PrikaziMeni();
- if (Izbor == 1 && BrojStudenata <= 10)
- UpisStudenta(Studenti);
- if (Izbor == 2)
- IspisStudenata(Studenti);
- if (Izbor == 3) {
- PretragaPoImenu(Studenti, broj2, err);
- if (err == true)
- IspisStudenataPoPretrazi(Studenti, broj2);
- else
- cout << "Ne postoji student sa tim imenom!" << endl;
- broj2 = 0;
- }
- } while (Izbor != 4);
- }
- delete[]Studenti;
- Studenti = NULL;
- system("pause");
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement