Guest User

Untitled

a guest
Aug 11th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. char tacan_password_admin [100]={"admin012"};
  5. char tacan_user_admin [100]={"Administrator"};
  6. char crt1[]={"\n===============================\n"};
  7. void meni (int * izbor)
  8. {  
  9.     cout<<crt1;
  10.     cout<<"1. Admin panel"<<endl;
  11.     cout<<"2. Student panel"<<endl;
  12.     cout<<"3. Kraj"<<endl;
  13.     cout<<crt1;
  14.     cout<<"Unesite vas izbor: ";
  15.     cin>>*izbor;
  16. }
  17. enum godina_studija {prva=1,druga,treca,cetvrta};
  18. enum ponudjeni_odgovori {TACNO,NETACNO};
  19. enum nacin_studiranja {redovan,DL};
  20.  
  21. struct baza_pitanja
  22. {
  23.     char* pitanja;
  24.     ponudjeni_odgovori tacan;
  25.     void unos (baza_pitanja* pitanja,int& broj_pitanja)
  26.     {
  27.         int odgovor;
  28.         cout<<"Koliko pitanja zelite postaviti: ";
  29.         cin>>broj_pitanja;
  30.         cin.ignore();
  31.         pitanja=new baza_pitanja [broj_pitanja];
  32.  
  33.         for (int i=0;i<broj_pitanja;i++)
  34.         {
  35.             pitanja[i].pitanja=new char [50];
  36.             cout<<"Unesite pitanje broj: "<<i+1<<endl;
  37.             cin.getline(pitanja[i].pitanja,50);
  38.             cout<<"Unesite tacan odgovor (1-tacno,2-netacno)"<<endl;
  39.             cin>>odgovor;
  40.             pitanja[i].tacan=ponudjeni_odgovori(odgovor);
  41.             cin.ignore();
  42.         }
  43.         cout<<"Unos pitanja i odgovora zavrsen!"<<endl;
  44.  
  45.     }
  46. };
  47. struct podaci_student
  48. {
  49.     char* st_ime;
  50.     char* st_prezime;
  51.     char* st_pasword;  
  52.     int st_brindex;
  53.     bool st_radio_test;
  54.     godina_studija st_godina;
  55.     int st_odgovorio;
  56.     nacin_studiranja st_nacin;
  57.     void meni(int* izbor)
  58.     {
  59.         cout<<"1. Novi korisnik!"<<endl;
  60.         cout<<"2. Imam korisnicki racun!"<<endl;
  61.         cout<<"3. Kraj!"<<endl;
  62.         cout<<crt1;
  63.         cout<<"Unesite vasu opciju: ";
  64.         cin>>*izbor;
  65.         cin.ignore();
  66.     }
  67.  
  68.     void new_user(podaci_student* s,int brojstudenta)
  69.     {
  70.         s[brojstudenta].st_ime=new char [20];
  71.         s[brojstudenta].st_prezime=new char [20];
  72.         s[brojstudenta].st_pasword=new char [20];
  73.         int godina,nacin;
  74.         cout<<"Unesite vase ime: ";
  75.         cin.getline(s[brojstudenta].st_ime,20);
  76.         cout<<"Unesite vase prezime: ";
  77.         cin.getline(s[brojstudenta].st_prezime,20);
  78.         cout<<"Unesite vas password: ";
  79.         cin.getline(s[brojstudenta].st_pasword,20);
  80.         cout<<"Unesite vas broj indexa: ";
  81.         cin>>s[brojstudenta].st_brindex;
  82.         cout<<"Unesite godinu na kojoj studirate (1,2,3,4): ";
  83.         cin>>godina;
  84.         s[brojstudenta].st_godina=godina_studija(godina);
  85.         cin.ignore();
  86.         cout<<"Unesite nacin studiranja (1->REDOVAN,2->DL): ";
  87.         cin>>nacin;
  88.         s[brojstudenta].st_nacin=nacin_studiranja(nacin);
  89.         cin.ignore();
  90.         s[brojstudenta].st_radio_test=false;
  91.        
  92.     }
  93.     bool provjera (podaci_student* s,int brojstudenata)
  94.     {
  95.         int index;
  96.         char* pass=new char [20];
  97.         cout<<"Unesite vas index: ";
  98.         cin>>index;
  99.         cin.ignore();
  100.         cout<<"Unesite vas password: ";
  101.         cin.getline(pass,20);
  102.         for (int i=0;i<brojstudenata+1;i++)
  103.         {
  104.             if (index==s[i].st_brindex)
  105.                 if(strcmp(pass,s[i].st_pasword)==0)
  106.                     return true;
  107.         }
  108.        return false;
  109.     }
  110.  
  111.  
  112.     void pokreni_test(podaci_student* s,int broj_studenta,int broj_pitanja,baza_pitanja* pitanja1)
  113.     {
  114.         int odgovor;
  115.         cout<<"FUNKCIJA::FUNKCIJA::FUNKCIJA::"<<endl;
  116.         for (int i=0;i<=broj_pitanja;i++)
  117.         {
  118.             cout<<"PROBA-FOR"<<endl;
  119.             cout<<pitanja1[i].pitanja<<endl;
  120.             cout<<"Unesite vas odgovor na ovo pitanje (1->tacno,2->netacno)"<<endl;
  121.             cin>>odgovor;
  122.             if(ponudjeni_odgovori(odgovor)==pitanja1[i].tacan)
  123.             {
  124.                 cout<<"Odgovor je tacan!"<<endl;
  125.                 s[broj_studenta].st_odgovorio+=1;
  126.             }
  127.             else
  128.                 cout<<"Niste tacno odgovorili"<<endl;
  129.         }
  130.     }
  131. };
  132. struct podaci_admin
  133. {
  134.     char* admin_username;
  135.     char* admin_password;
  136.     void promijeni_pass()
  137.     {   cout<<"Unesite novi password: ";
  138.         cin.getline(tacan_password_admin,100);
  139.     }
  140.     void promijeni_username()
  141.     {  
  142.         cout<<"Unesite novi username za admina: ";
  143.         cin.getline(tacan_user_admin,100);
  144.     }
  145.     void unos(podaci_admin admin)
  146.     {
  147.         admin.admin_username=new char [20];
  148.         admin.admin_password=new char [20];
  149.         do
  150.         {
  151.         cout<<"Unesite vas username: "<<endl;
  152.         cin.getline(admin.admin_username,20);
  153.         cout<<"Unesite vas password: "<<endl;
  154.         cin.getline(admin.admin_password,20);
  155.         }
  156.         while(strcmp(tacan_user_admin,admin.admin_username)!=0||strcmp(tacan_password_admin,admin.admin_password)!=0);
  157.  
  158.     }
  159.     void meni(int * izbor)
  160.     {
  161.         cout<<"1. Unos pitanja "<<endl;
  162.         cout<<"2. Novi password "<<endl;
  163.         cout<<"3. Novi username "<<endl;
  164.         cout<<"4. Omoguci odredjenom studentu obnovu testa "<<endl;
  165.         cout<<"5. Kraj "<<endl;
  166.         cout<<crt1;
  167.         cout<<"Unesite vas izbor: "<<endl;
  168.         cin>>*izbor;
  169.     }
  170.     bool obnovi(podaci_student* s,int br_studenata)
  171.     {
  172.         int brindexa;
  173.         cout<<"Unesite broj indexa studenta kojem zelite omoguciti ponovni pristup ispitu!"<<endl;
  174.         cin>>brindexa;
  175.         for (int i=0;i<br_studenata;i++)
  176.         {
  177.             if (brindexa==s[i].st_brindex)
  178.             {
  179.                 cout<<"Studentu, "<<s[i].st_ime<<" "<<s[i].st_prezime<<" ce biti odobren pristup ispitu!"<<endl;
  180.                 s[i].st_radio_test=false;
  181.                 return true;
  182.             }
  183.         }
  184.         return false;
  185.     }
  186. };
  187.  
  188. int main ()
  189. {
  190.     int broj_pitanja=0,broj_studenata=0;
  191.     baza_pitanja* pitanja=NULL;//NIZ U KOJEM TREBAJU BITI PITANJA I ODGOVORI
  192.     podaci_admin admin;;//OBJEKAT ADMIN
  193.     podaci_student* studenti=NULL;//NIZ U KOJEM TREBAJU BITI SVI STUDENTI
  194.     int opcija1=0,opcija2=0,opcija3=0;
  195.     bool kraj1=false,kraj2=false,kraj3=false;//varijable koje su mi potrebne za kraj petlji
  196.     bool preskoci=false;
  197.     //<--KRAJ DEKLARACIJE-->
  198.   do
  199.    {
  200.         meni(&opcija1);
  201.         cin.ignore();
  202.         switch (opcija1)//GLAVNI MENI
  203.             {
  204.             case 1: //ADMIN PANEL
  205.                do
  206.                 {
  207.                     admin.admin_username=new char [20];
  208.                     admin.admin_password=new char [20];
  209.                     if(preskoci==false)
  210.                     do
  211.                     {
  212.                         cout<<"Unesite vas username: "<<endl;
  213.                         cin.getline(admin.admin_username,20);
  214.                         cout<<"Unesite vas password: "<<endl;
  215.                         cin.getline(admin.admin_password,20);
  216.                     }
  217.                     while(strcmp(tacan_user_admin,admin.admin_username)!=0||strcmp(tacan_password_admin,admin.admin_password)!=0);
  218.                        
  219.                     system("cls");
  220.                     preskoci=true;
  221.                     cout<<"Dobrodosli, "<<tacan_user_admin<<endl;
  222.                     cout<<"Izaberite neku od opcija: "<<endl;
  223.                     admin.meni(&opcija2);
  224.                     switch(opcija2)
  225.                         {
  226.                         case 1:
  227.                                 pitanja->unos(pitanja,broj_pitanja);
  228.                         break;
  229.                         case 2:
  230.                                 admin.promijeni_pass();
  231.                         break;
  232.                         case 3:
  233.                                 admin.promijeni_username();
  234.                         break;
  235.                         case 4:
  236.                                 if(admin.obnovi(studenti,broj_studenata))
  237.                                         cout<<"Omogucen ponovni pristup!"<<endl;
  238.                                 else
  239.                                         cout<<"Student nije pronadjen!"<<endl;
  240.                         break;
  241.                         case 5:
  242.                                 kraj2=true;
  243.                         break;
  244.                         }
  245.                        
  246.                 }
  247.                 while (kraj2==false);
  248.  
  249.                 break;
  250.             case 2: //USER PANEL
  251.                 do
  252.                 {
  253.                     studenti->meni(&opcija3);
  254.                     switch(opcija3)
  255.                     {
  256.                     case 1://NOVI KORISNIK
  257.                                 broj_studenata++;
  258.                                 studenti=new podaci_student;
  259.                                 studenti->new_user(studenti,broj_studenata);
  260.                                 system("cls");
  261.                                 cout<<"Registracija je uspjesno izvrsena, molimo vas u narednom koraku izaberite drugu opciju"
  262.                                 <<" za pocetak rada testa, sretno!"<<endl;
  263.                     break;
  264.                     case 2://STARI KORISNIK
  265.                                 if (studenti->provjera(studenti,broj_studenata))
  266.                                     if(studenti[broj_studenata].st_radio_test==false)
  267.                                     {
  268.                                         cout<<"Logirali ste se! Dobrodosli, "<<studenti[broj_studenata].st_ime<<endl;
  269.                                         studenti->pokreni_test(studenti,broj_studenata,broj_pitanja,pitanja);
  270.                                         cout<<"TEST_ ::::::::::::::"<<endl;
  271.                                     }
  272.                                     else
  273.                                         cout<<"Radili ste test, posaljite mail adminu ako zelite ponovo!"<<endl;
  274.                                 else
  275.                                     cout<<"::ERROR::LOGIN::NIJE::USPIO::"<<endl;
  276.                     break;
  277.                     case 3:
  278.                             kraj3=true;//KRAJ
  279.                             break;
  280.                         }
  281.                 }
  282.                 while (kraj3==false);
  283.                
  284.             break;
  285.             case 3://KRAJ
  286.                 kraj1=true;
  287.                 break;
  288.             }
  289.    }
  290.   while (kraj1==false);//IZLAZAK IZ GLAVNOG MENIJA
  291.  
  292.  
  293.  
  294.    
  295.     system("pause>nul");
  296.     return 0;
  297. }
Add Comment
Please, Sign In to add comment