Advertisement
Guest User

asaa

a guest
Feb 25th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.24 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. char * crt = "\n---------------------------\n";
  4. struct Datum {
  5. int dan, mjesec, godina;
  6. };
  7. struct PolozeniPredmet {
  8. char * nazivPredmeta;
  9. int ocjena;
  10. Datum datumPolaganja;
  11. char * napomena;
  12. };
  13. struct Student {
  14. char * imePrezime;
  15. PolozeniPredmet polozeni[40];
  16. int brojPolozenih;
  17. };
  18. int PrikaziMenu() {
  19. int izbor;
  20. cout << crt << "\t::MENU::" << crt;
  21. cout << "1. Dodaj studenta" << endl;
  22. cout << "2. Dodaj polozeni predmet" << endl;
  23. cout << "3. Pretraga" << endl;
  24. cout << "4. Kraj" << crt;
  25. do {
  26. cout << "Vas izbor -> ";
  27. cin >> izbor;
  28. } while (izbor < 1 || izbor>4);
  29. system("cls");
  30. return izbor;
  31. }
  32.  
  33. void Unesi(char niz[], int velicina) {
  34. char znak = getchar();
  35. if (znak == '\n') znak = getchar();
  36. int i = 0;
  37. while (i < velicina - 1 && znak != '\n') {
  38. niz[i] = znak;
  39. i++;
  40. znak = getchar();
  41. }
  42. niz[i] = '\0';
  43. }
  44. /*UKOLIKO SMATRATE DA JE POTREBNO ZADATAK MOZETE PROSIRITI DODATNIM FUNKCIONALNOSTIMA, ALI PROSIRENJA MORAJU PRATITI ADEKVATNI KOMENTARI*/
  45. void Login(char sifra [])
  46. {
  47. char unesena_sifra[20];
  48. cout << "Unesite sifru: ";
  49. while(1) {
  50.  
  51. Unesi(unesena_sifra, 20);
  52. if (strcmp(unesena_sifra, sifra) == 0) break;
  53. else cout << "Pogresna sifra, unesite ponovo: ";
  54. }
  55. }
  56.  
  57. void DodajStudenta(Student * pok)
  58. {
  59. Student * q = new Student;
  60. cout << "Unesite ime i prezime: ";
  61. char s[50];
  62. Unesi(s, 49);
  63. q->imePrezime = &s[0];
  64. q->brojPolozenih = 0;
  65.  
  66. cout << "Koliko predmeta dodajete: ";
  67. int br_pr; cin >> br_pr;
  68. for (int j = 0; j < br_pr; j++) {
  69. cout << "Naziv predmeta: ";
  70. char pr[40];
  71. Unesi(pr, 40);
  72. q->polozeni[q->brojPolozenih].nazivPredmeta;
  73. cout << "Datum polaganja: ";
  74. int m, d, g;
  75. cin >> d >> m >> g;
  76. q->polozeni[q->brojPolozenih].datumPolaganja.dan = d;
  77. q->polozeni[q->brojPolozenih].datumPolaganja.mjesec = m;
  78. q->polozeni[q->brojPolozenih].datumPolaganja.godina = g;
  79.  
  80.  
  81. cout << "Ocjena: ";
  82. int ocjena; cin >> ocjena;
  83. q->polozeni[q->brojPolozenih].ocjena = ocjena;
  84. cout << "Napomena: ";
  85. char napomena[255];
  86. Unesi(napomena, 255);
  87. q->polozeni[q->brojPolozenih].napomena = &napomena[0];
  88. q->brojPolozenih = q->brojPolozenih + 1;
  89. }
  90. }
  91. void main() {
  92. const int maxStudenata = 6;
  93. int trenutnoStudenata = 0, izbor = 0;
  94. Student * studentiIgodina[maxStudenata];
  95. char validPass[] = "ispitPRII2017";
  96. /*VRSITI VALIDACIJU KORISNIKOVIH UNOSA TE GA ONEMOGUCITI DA UNOSI VRIJEDNOSTI KOJE NISU VALIDNE*/
  97. do {
  98. /*
  99. za pristup aplikaciji zahtijevati logiranje,
  100. prilikom unosa password maskirati koristeći crticu (-)
  101. */
  102. Login(validPass);
  103.  
  104. izbor = PrikaziMenu();
  105. if (izbor == 1) {
  106. DodajStudenta(studentiIgodina[trenutnoStudenata]);
  107. /*
  108. Ime i prezime -> Denis Mušić
  109. Koliko predmeta dodajete -> 1
  110. Naziv predmeta -> Uvod u informacijske tehnologije
  111. Datum polaganja -> 11 4 2017
  112. Ocjena -> 6
  113. Napomena -> seminarski rad nije sadrzavao sve zahtijevane funkcionalnosti
  114. */
  115. trenutnoStudenata++;
  116. }
  117. else if (izbor == 2) {
  118. DodajPolozeniPredmet(studentiIgodina, trenutnoStudenata);
  119. /*
  120. Ime i prezime -> Denis Music
  121. STUDENT PRONADJEN....
  122. Naziv predmeta -> Racunarske mreze
  123. Datum polaganja -> 10 4 2017
  124. Ocjena -> 7
  125. Napomena -> studentu dodijeljen seminarski rad na temu OSI modela
  126. */
  127. }
  128. else if (izbor == 3) {
  129. Pretraga(studentiIgodina, trenutnoStudenata);
  130. /*
  131. Pratraga (1. Datumu polaganja, 2. Napomeni) -> 1
  132. Unesite datum OD -> 12 1 2017
  133. Unesite datum DO -> 14 4 2017
  134. U periodu od 12.1.2017 do 14.4.2017 ispite su polozili sljedeci studenti:
  135. 1. Denis Music -> Racunarske mreze (7) Prosjek studenta: 6.5
  136. 2. Denis Music -> Uvod u informacijske tehnologije (6) Prosjek studenta: 6.5
  137. 3. Adel Handzic -> Baze podataka (9) Prosjek studenta: 8.7
  138.  
  139. ----------UKOLIKO SE ODABERE OPCIJA 2---------------
  140. Pratraga (1. Datumu polaganja, 2. Napomeni) -> 2
  141. Unesite tekst -> nije sadrzavao
  142. Trazeni sadrzaj 'nije sadrzavao' u napomeni posjeduju sljedeci studenti:
  143. 1. Denis Music, predmet Uvod u informacijske tehnologije
  144. 2. ....
  145. */
  146. }
  147.  
  148. } while (izbor != 4);
  149.  
  150.  
  151. /*oslobađa zauzetu memoriju*/
  152. Dealociraj(studentiIgodina, trenutnoStudenata);
  153.  
  154.  
  155. system("pause");
  156.  
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement