Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- char tacan_password_admin [100]={"admin012"};
- char tacan_user_admin [100]={"Administrator"};
- char crt1[]={"\n===============================\n"};
- void meni (int * izbor)
- {
- cout<<crt1;
- cout<<"1. Admin panel"<<endl;
- cout<<"2. Student panel"<<endl;
- cout<<"3. Kraj"<<endl;
- cout<<crt1;
- cout<<"Unesite vas izbor: ";
- cin>>*izbor;
- }
- enum godina_studija {prva=1,druga,treca,cetvrta};
- enum ponudjeni_odgovori {TACNO,NETACNO};
- enum nacin_studiranja {redovan,DL};
- struct baza_pitanja
- {
- char* pitanja;
- ponudjeni_odgovori tacan;
- void unos (baza_pitanja* pitanja,int& broj_pitanja)
- {
- int odgovor;
- cout<<"Koliko pitanja zelite postaviti: ";
- cin>>broj_pitanja;
- cin.ignore();
- pitanja=new baza_pitanja [broj_pitanja];
- for (int i=0;i<broj_pitanja;i++)
- {
- pitanja[i].pitanja=new char [50];
- cout<<"Unesite pitanje broj: "<<i+1<<endl;
- cin.getline(pitanja[i].pitanja,50);
- cout<<"Unesite tacan odgovor (1-tacno,2-netacno)"<<endl;
- cin>>odgovor;
- pitanja[i].tacan=ponudjeni_odgovori(odgovor);
- cin.ignore();
- }
- cout<<"Unos pitanja i odgovora zavrsen!"<<endl;
- }
- };
- struct podaci_student
- {
- char* st_ime;
- char* st_prezime;
- char* st_pasword;
- int st_brindex;
- bool st_radio_test;
- godina_studija st_godina;
- int st_odgovorio;
- nacin_studiranja st_nacin;
- void meni(int* izbor)
- {
- cout<<"1. Novi korisnik!"<<endl;
- cout<<"2. Imam korisnicki racun!"<<endl;
- cout<<"3. Kraj!"<<endl;
- cout<<crt1;
- cout<<"Unesite vasu opciju: ";
- cin>>*izbor;
- cin.ignore();
- }
- void new_user(podaci_student* s,int brojstudenta)
- {
- s[brojstudenta].st_ime=new char [20];
- s[brojstudenta].st_prezime=new char [20];
- s[brojstudenta].st_pasword=new char [20];
- int godina,nacin;
- cout<<"Unesite vase ime: ";
- cin.getline(s[brojstudenta].st_ime,20);
- cout<<"Unesite vase prezime: ";
- cin.getline(s[brojstudenta].st_prezime,20);
- cout<<"Unesite vas password: ";
- cin.getline(s[brojstudenta].st_pasword,20);
- cout<<"Unesite vas broj indexa: ";
- cin>>s[brojstudenta].st_brindex;
- cout<<"Unesite godinu na kojoj studirate (1,2,3,4): ";
- cin>>godina;
- s[brojstudenta].st_godina=godina_studija(godina);
- cin.ignore();
- cout<<"Unesite nacin studiranja (1->REDOVAN,2->DL): ";
- cin>>nacin;
- s[brojstudenta].st_nacin=nacin_studiranja(nacin);
- cin.ignore();
- s[brojstudenta].st_radio_test=false;
- }
- bool provjera (podaci_student* s,int brojstudenata)
- {
- int index;
- char* pass=new char [20];
- cout<<"Unesite vas index: ";
- cin>>index;
- cin.ignore();
- cout<<"Unesite vas password: ";
- cin.getline(pass,20);
- for (int i=0;i<brojstudenata;i++)
- {
- if (index==s[i].st_brindex)
- if(strcmp(pass,s[i].st_pasword)==0)
- return true;
- else
- {
- cout<<"Broj indexa i pass se ne poklapaju!"<<endl;
- return false;
- }
- else
- {
- cout<<"Nije pronadjen niti jedan index ("<<index<<") u bazi!"<<endl;
- return false;
- }
- return false;
- }
- }
- void pokreni_test(podaci_student* s,int broj_studenta,int broj_pitanja,baza_pitanja* pitanja1)
- {
- int odgovor;
- for (int i=0;i<broj_pitanja;i++)
- {
- cout<<pitanja1[i].pitanja<<endl;
- cout<<"Unesite vas odgovor na ovo pitanje (1->tacno,2->netacno)"<<endl;
- cin>>odgovor;
- if(ponudjeni_odgovori(odgovor)==pitanja1[i].tacan)
- {
- cout<<"Odgovor je tacan!"<<endl;
- s[broj_studenta].st_odgovorio+=1;
- }
- else
- cout<<"Niste tacno odgovorili"<<endl;
- }
- }
- };
- struct podaci_admin
- {
- char* admin_username;
- char* admin_password;
- void promijeni_pass()
- { cout<<"Unesite novi password: ";
- cin.getline(tacan_password_admin,100);
- }
- void promijeni_username()
- {
- cout<<"Unesite novi username za admina: ";
- cin.getline(tacan_user_admin,100);
- }
- void unos(podaci_admin admin)
- {
- admin.admin_username=new char [20];
- admin.admin_password=new char [20];
- do
- {
- cout<<"Unesite vas username: "<<endl;
- cin.getline(admin.admin_username,20);
- cout<<"Unesite vas password: "<<endl;
- cin.getline(admin.admin_password,20);
- }
- while(strcmp(tacan_user_admin,admin.admin_username)!=0||strcmp(tacan_password_admin,admin.admin_password)!=0);
- }
- void meni(int * izbor)
- {
- cout<<"1. Unos pitanja "<<endl;
- cout<<"2. Novi password "<<endl;
- cout<<"3. Novi username "<<endl;
- cout<<"4. Omoguci odredjenom studentu obnovu testa "<<endl;
- cout<<"5. Kraj "<<endl;
- cout<<crt1;
- cout<<"Unesite vas izbor: "<<endl;
- cin>>*izbor;
- }
- bool obnovi(podaci_student* s,int br_studenata)
- {
- int brindexa;
- cout<<"Unesite broj indexa studenta kojem zelite omoguciti ponovni pristup ispitu!"<<endl;
- cin>>brindexa;
- for (int i=0;i<br_studenata;i++)
- {
- if (brindexa==s[i].st_brindex)
- {
- cout<<"Studentu, "<<s[i].st_ime<<" "<<s[i].st_prezime<<" ce biti odobren pristup ispitu!"<<endl;
- s[i].st_radio_test=false;
- return true;
- }
- }
- return false;
- }
- };
- int main ()
- {
- int broj_pitanja=0,broj_studenata=0;
- baza_pitanja* pitanja=NULL;//NIZ U KOJEM TREBAJU BITI PITANJA I ODGOVORI
- podaci_admin admin;;//OBJEKAT ADMIN
- podaci_student* studenti=NULL;//NIZ U KOJEM TREBAJU BITI SVI STUDENTI
- int opcija1=0,opcija2=0,opcija3=0;
- bool kraj1=false,kraj2=false,kraj3=false;//varijable koje su mi potrebne za kraj petlji
- bool preskoci=false;
- //<--KRAJ DEKLARACIJE-->
- do
- {
- meni(&opcija1);
- cin.ignore();
- switch (opcija1)//GLAVNI MENI
- {
- case 1: //ADMIN PANEL
- do
- {
- admin.admin_username=new char [20];
- admin.admin_password=new char [20];
- if(preskoci==false)
- do
- {
- cout<<"Unesite vas username: "<<endl;
- cin.getline(admin.admin_username,20);
- cout<<"Unesite vas password: "<<endl;
- cin.getline(admin.admin_password,20);
- }
- while(strcmp(tacan_user_admin,admin.admin_username)!=0||strcmp(tacan_password_admin,admin.admin_password)!=0);
- system("cls");
- preskoci=true;
- cout<<"Dobrodosli, "<<admin.admin_username<<endl;
- cout<<"Izaberite neku od opcija: "<<endl;
- admin.meni(&opcija2);
- switch(opcija2)
- {
- case 1:
- pitanja->unos(pitanja,broj_pitanja);
- break;
- case 2:
- admin.promijeni_pass();
- break;
- case 3:
- admin.promijeni_username();
- break;
- case 4:
- if(admin.obnovi(studenti,broj_studenata))
- cout<<"Omogucen ponovni pristup!"<<endl;
- else
- cout<<"Student nije pronadjen!"<<endl;
- break;
- case 5:
- kraj2=true;
- break;
- }
- }
- while (kraj2==false);
- case 2: //USER PANEL
- do
- {
- studenti->meni(&opcija3);
- switch(opcija3)
- {
- case 1://NOVI KORISNIK
- broj_studenata++;
- studenti=new podaci_student;
- studenti->new_user(studenti,broj_studenata);
- cout<<"Registracija je uspjesno izvrsena, molimo vas u narednom koraku izaberite drugu opciju"
- <<" za pocetak rada testa, sretno!"<<endl;
- break;
- case 2://STARI KORISNIK
- if (studenti->provjera(studenti,broj_studenata))
- if(studenti[broj_studenata].st_radio_test==false)
- studenti->pokreni_test(studenti,broj_studenata,broj_pitanja,pitanja);
- else
- cout<<"Radili ste test, posaljite mail adminu ako zelite ponovo!"<<endl;
- else
- cout<<"::ERROR::LOGIN::NIJE::USPIO::"<<endl;
- break;
- case 3:
- kraj3=true;//KRAJ
- break;
- }
- }
- while (kraj3==false);
- break;
- case 3://KRAJ
- kraj1=true;
- break;
- }
- }
- while (kraj1==false);//IZLAZAK IZ GLAVNOG MENIJA
- system("pause>nul");
- return 0;
- }
Add Comment
Please, Sign In to add comment