Guest User

Untitled

a guest
Aug 11th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.67 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;i++)
  103. {
  104. if (index==s[i].st_brindex)
  105. if(strcmp(pass,s[i].st_pasword)==0)
  106. return true;
  107. else
  108. {
  109. cout<<"Broj indexa i pass se ne poklapaju!"<<endl;
  110. return false;
  111. }
  112. else
  113. {
  114. cout<<"Nije pronadjen niti jedan index ("<<index<<") u bazi!"<<endl;
  115. return false;
  116. }
  117. return false;
  118. }
  119.  
  120. }
  121.  
  122.  
  123. void pokreni_test(podaci_student* s,int broj_studenta,int broj_pitanja,baza_pitanja* pitanja1)
  124. {
  125. int odgovor;
  126. for (int i=0;i<broj_pitanja;i++)
  127. {
  128. cout<<pitanja1[i].pitanja<<endl;
  129. cout<<"Unesite vas odgovor na ovo pitanje (1->tacno,2->netacno)"<<endl;
  130. cin>>odgovor;
  131. if(ponudjeni_odgovori(odgovor)==pitanja1[i].tacan)
  132. {
  133. cout<<"Odgovor je tacan!"<<endl;
  134. s[broj_studenta].st_odgovorio+=1;
  135. }
  136. else
  137. cout<<"Niste tacno odgovorili"<<endl;
  138. }
  139. }
  140. };
  141. struct podaci_admin
  142. {
  143. char* admin_username;
  144. char* admin_password;
  145. void promijeni_pass()
  146. { cout<<"Unesite novi password: ";
  147. cin.getline(tacan_password_admin,100);
  148. }
  149. void promijeni_username()
  150. {
  151. cout<<"Unesite novi username za admina: ";
  152. cin.getline(tacan_user_admin,100);
  153. }
  154. void unos(podaci_admin admin)
  155. {
  156. admin.admin_username=new char [20];
  157. admin.admin_password=new char [20];
  158. do
  159. {
  160. cout<<"Unesite vas username: "<<endl;
  161. cin.getline(admin.admin_username,20);
  162. cout<<"Unesite vas password: "<<endl;
  163. cin.getline(admin.admin_password,20);
  164. }
  165. while(strcmp(tacan_user_admin,admin.admin_username)!=0||strcmp(tacan_password_admin,admin.admin_password)!=0);
  166.  
  167. }
  168. void meni(int * izbor)
  169. {
  170. cout<<"1. Unos pitanja "<<endl;
  171. cout<<"2. Novi password "<<endl;
  172. cout<<"3. Novi username "<<endl;
  173. cout<<"4. Omoguci odredjenom studentu obnovu testa "<<endl;
  174. cout<<"5. Kraj "<<endl;
  175. cout<<crt1;
  176. cout<<"Unesite vas izbor: "<<endl;
  177. cin>>*izbor;
  178. }
  179. bool obnovi(podaci_student* s,int br_studenata)
  180. {
  181. int brindexa;
  182. cout<<"Unesite broj indexa studenta kojem zelite omoguciti ponovni pristup ispitu!"<<endl;
  183. cin>>brindexa;
  184. for (int i=0;i<br_studenata;i++)
  185. {
  186. if (brindexa==s[i].st_brindex)
  187. {
  188. cout<<"Studentu, "<<s[i].st_ime<<" "<<s[i].st_prezime<<" ce biti odobren pristup ispitu!"<<endl;
  189. s[i].st_radio_test=false;
  190. return true;
  191. }
  192. }
  193. return false;
  194. }
  195. };
  196.  
  197. int main ()
  198. {
  199. int broj_pitanja=0,broj_studenata=0;
  200. baza_pitanja* pitanja=NULL;//NIZ U KOJEM TREBAJU BITI PITANJA I ODGOVORI
  201. podaci_admin admin;;//OBJEKAT ADMIN
  202. podaci_student* studenti=NULL;//NIZ U KOJEM TREBAJU BITI SVI STUDENTI
  203. int opcija1=0,opcija2=0,opcija3=0;
  204. bool kraj1=false,kraj2=false,kraj3=false;//varijable koje su mi potrebne za kraj petlji
  205. bool preskoci=false;
  206. //<--KRAJ DEKLARACIJE-->
  207. do
  208. {
  209. meni(&opcija1);
  210. cin.ignore();
  211. switch (opcija1)//GLAVNI MENI
  212. {
  213. case 1: //ADMIN PANEL
  214. do
  215. {
  216. admin.admin_username=new char [20];
  217. admin.admin_password=new char [20];
  218. if(preskoci==false)
  219. do
  220. {
  221. cout<<"Unesite vas username: "<<endl;
  222. cin.getline(admin.admin_username,20);
  223. cout<<"Unesite vas password: "<<endl;
  224. cin.getline(admin.admin_password,20);
  225. }
  226. while(strcmp(tacan_user_admin,admin.admin_username)!=0||strcmp(tacan_password_admin,admin.admin_password)!=0);
  227. system("cls");
  228. preskoci=true;
  229. cout<<"Dobrodosli, "<<admin.admin_username<<endl;
  230. cout<<"Izaberite neku od opcija: "<<endl;
  231. admin.meni(&opcija2);
  232. switch(opcija2)
  233. {
  234. case 1:
  235. pitanja->unos(pitanja,broj_pitanja);
  236. break;
  237. case 2:
  238. admin.promijeni_pass();
  239. break;
  240. case 3:
  241. admin.promijeni_username();
  242. break;
  243. case 4:
  244. if(admin.obnovi(studenti,broj_studenata))
  245. cout<<"Omogucen ponovni pristup!"<<endl;
  246. else
  247. cout<<"Student nije pronadjen!"<<endl;
  248. break;
  249. case 5:
  250. kraj2=true;
  251. break;
  252. }
  253. }
  254. while (kraj2==false);
  255.  
  256.  
  257. case 2: //USER PANEL
  258. do
  259. {
  260. studenti->meni(&opcija3);
  261. switch(opcija3)
  262. {
  263. case 1://NOVI KORISNIK
  264. broj_studenata++;
  265. studenti=new podaci_student;
  266. studenti->new_user(studenti,broj_studenata);
  267. cout<<"Registracija je uspjesno izvrsena, molimo vas u narednom koraku izaberite drugu opciju"
  268. <<" za pocetak rada testa, sretno!"<<endl;
  269. break;
  270. case 2://STARI KORISNIK
  271. if (studenti->provjera(studenti,broj_studenata))
  272. if(studenti[broj_studenata].st_radio_test==false)
  273. studenti->pokreni_test(studenti,broj_studenata,broj_pitanja,pitanja);
  274. else
  275. cout<<"Radili ste test, posaljite mail adminu ako zelite ponovo!"<<endl;
  276. else
  277. cout<<"::ERROR::LOGIN::NIJE::USPIO::"<<endl;
  278. break;
  279. case 3:
  280. kraj3=true;//KRAJ
  281. break;
  282. }
  283. }
  284. while (kraj3==false);
  285.  
  286. break;
  287. case 3://KRAJ
  288. kraj1=true;
  289. break;
  290. }
  291. }
  292. while (kraj1==false);//IZLAZAK IZ GLAVNOG MENIJA
  293.  
  294.  
  295.  
  296.  
  297. system("pause>nul");
  298. return 0;
  299. }
Add Comment
Please, Sign In to add comment