Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. struct Kategorija {
  5. char *oznakaKategorije;
  6. char *datumpolaganja;
  7. void Unos() {
  8. char temp[100];
  9. cout << "Unesite oznaku katerogije:";
  10. cin.getline(temp, 100);
  11. oznakaKategorije = new char[strlen(temp) + 1];
  12. strcpy_s(oznakaKategorije, strlen(temp) + 1, temp);
  13. cout << "Unesite datum polaganja:";
  14. cin.getline(temp, 100);
  15. datumpolaganja = new char[strlen(temp) + 1];
  16. strcpy_s(datumpolaganja, strlen(temp) + 1, temp);
  17. }
  18. void Ispis() {
  19. cout << "Oznaka kategorije:" << oznakaKategorije << endl;
  20. cout << "Datum polaganja:" << datumpolaganja << endl;
  21. }
  22. void Dealociraj() {
  23. delete[] oznakaKategorije; oznakaKategorije = nullptr;
  24. delete[]datumpolaganja; datumpolaganja = nullptr;
  25. }
  26. };
  27.  
  28. struct Kandidat {
  29. char *imePrezime;
  30. Kategorija *polozene;
  31. int brPolozenih;
  32. void Unos() {
  33. cout << "Upisite ime i prezime kandidata:";
  34. char temp[100];
  35. cin.getline(temp, 100);
  36. imePrezime = new char[strlen(temp) + 1];
  37. strcpy_s(imePrezime, strlen(temp) + 1, temp);
  38. polozene = new Kategorija[10];
  39. brPolozenih = 0;
  40.  
  41. //Unos osnovnih informacija o kandidatu
  42. //voditi računa o tome da kandidat može imati maksimalno 10 položenih kategorija
  43. //brPolozenih je brojac koji vodi evidenciju o tome koliko polozenih kategorija kandidat
  44. //ima trenutno
  45. //Npr. Maksimalno je 10 polozenih kategorija, ali kandidat može imati samo 2 položene
  46. }
  47. void Ispis() {
  48. //Ispis informacija o kandidatu zajedno sa polozenim kategorijama
  49. cout << "Ime i prezime kandidata:" << imePrezime << endl;
  50. cout << "Broj polozenih kategorija:" << brPolozenih << endl;
  51. for (int i = 0; i < brPolozenih; i++)
  52. {
  53. cout << "Kategorija:" << polozene[i].oznakaKategorije << endl;
  54. }
  55. }
  56. void DodajKategoriju() {
  57. if (brPolozenih == 10)
  58. cout << "Kandidat ne moze imati vise od 10 polozenih kateroija!." << endl;
  59. else
  60. {
  61. polozene[brPolozenih].Unos();
  62. brPolozenih++;
  63. }
  64. }
  65.  
  66. void Dealociraj() {
  67. delete[] imePrezime; imePrezime = nullptr;
  68.  
  69. for (int i = 0; i < brPolozenih; i++)
  70. {
  71. polozene[i].Dealociraj();
  72. }
  73.  
  74. delete[]polozene; polozene = nullptr;
  75. }
  76. };
  77.  
  78.  
  79. void dodajKategorijuKandidatu(Kandidat *niz, int max) {
  80. for (int i = 0; i < max; i++)
  81. {
  82. cout << i + 1 << ". " << niz[i].imePrezime << endl;
  83. }
  84. cout << "Upisite redni broj kandidata kojem zelite dodati kategoriju:";
  85. int redni;
  86. cin >> redni;
  87. cin.ignore();
  88. redni--;
  89. niz[redni].DodajKategoriju();
  90.  
  91. //Korisniku se izlistavaju svi kandidati
  92. //Zatim korisnik unosi redni broj kandidata kojem želi dodati kategoriju
  93. //Potom se dodjeljuje kategorija odabranom kandidatu
  94. }
  95.  
  96. void PretragaPoKategorijama(Kandidat *niz, int max) {
  97. cout << "Unesite naziv kategorije koju pretrazujete:";
  98. char trazena[100];
  99. cin.getline(trazena, 100);
  100. for (int i = 0; i < max; i++)
  101. {
  102. for (int j = 0; j < niz[i].brPolozenih; j++)
  103. {
  104. if (strcmp(niz[i].polozene[j].oznakaKategorije, trazena) == 0) {
  105. cout << "Polozio:" << niz[i].imePrezime << endl;
  106. }
  107. }
  108. }
  109. //Traziti od korisnika da unese naziv kategorije koju pretrazuje
  110. //U skladu s tim ispisati koji su kandidati polozili unesenu kategoriju
  111.  
  112. }
  113.  
  114.  
  115. void main() {
  116. int vel;
  117. cout << "Koliko kandidata zelite dodati? ";
  118. cin >> vel;
  119. cin.ignore();
  120. Kandidat *kandidati = new Kandidat[vel];
  121. for (int i = 0; i < vel; i++)
  122. kandidati[i].Unos();
  123.  
  124. for (int i = 0; i < vel; i++)
  125. kandidati[i].Ispis();
  126.  
  127. cout << "Koliko kategorija zelite dodati:";
  128. int broj;
  129. cin >> broj;
  130. for (int i = 0; i < broj; i++)
  131. {
  132. dodajKategorijuKandidatu(kandidati, vel);
  133. }
  134. PretragaPoKategorijama(kandidati, vel);
  135.  
  136.  
  137. for (int i = 0; i < vel; i++)
  138. kandidati[i].Dealociraj();
  139. delete[]kandidati;
  140. kandidati = nullptr;
  141. system("pause>0");
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement