Advertisement
Guest User

Untitled

a guest
Jan 12th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.01 KB | None | 0 0
  1. class Izuzetak :public exception {
  2. string _datum;
  3. int _linija;
  4. };
  5. template<class T1, class T2, int max>
  6. class Kolekcija {
  7. T1 * _elementi1[max];
  8. T2 * _elementi2[max];
  9. int * _trenutno;
  10. };
  11.  
  12. class Datum {
  13. int *_dan, *_mjesec, *_godina;
  14. public:
  15. Datum(int dan = 1, int mjesec = 1, int godina = 2000) {
  16. _dan = new int(dan);
  17. _mjesec = new int(mjesec);
  18. _godina = new int(godina);
  19. }
  20. ~Datum() {
  21. delete _dan; _dan = nullptr;
  22. delete _mjesec; _mjesec = nullptr;
  23. delete _godina; _godina = nullptr;
  24. }
  25. friend ostream& operator<< (ostream &COUT, Datum &obj) {
  26. COUT << *obj._dan << " " << *obj._mjesec << " " << *obj._godina;
  27. return COUT;
  28. }
  29. };
  30. enum ListaKurseva { HtmlCSSJavaScript, SoftwareEngeneeringFundamentals, MasteringSQL, WindowsSecurity };
  31. class Kurs {
  32. ListaKurseva _kurs;
  33. Datum * _pocetak;
  34. Datum * _kraj;
  35. char * _imePredavaca;
  36. };
  37. class Polaznik {
  38. static int ID;
  39. const int _polaznikID; //svakom novom studentu automatski dodijeliti novi ID (autoincrement)
  40. char * _imePrezime;
  41. vector<Kurs> _pohadjaniKursevi;
  42. public:
  43. Polaznik(char * imePrezime) :_polaznikID(ID++) {
  44. int size = strlen(imePrezime) + 1;
  45. _imePrezime = new char[size];
  46. strcpy_s(_imePrezime, size, imePrezime);
  47. }
  48. ~Polaznik() { delete[] _imePrezime; }
  49. };
  50.  
  51. class SkillsCentar {
  52. string _nazivCentra;
  53. vector<Kurs> _kursevi;//kursevi koje nudi odredjeni centar
  54. Kolekcija<Kurs *, Polaznik*, 150> _aplikanti;
  55. public:
  56. SkillsCentar(string naziv) { _nazivCentra = naziv; }
  57. SkillsCentar(const SkillsCentar & obj) :_kursevi(obj._kursevi), _aplikanti(obj._aplikanti) {
  58. _nazivCentra = obj._nazivCentra;
  59. }
  60. };
  61. char *crt = "\n---------------------------------------\n";
  62.  
  63. int main()
  64. {
  65. /****************************************************************************
  66. 1. SVE KLASE TREBAJU POSJEDOVATI ADEKVATAN DESTRUKTOR
  67. 2. NAMJERNO IZOSTAVLJANJE KOMPLETNIH I/ILI POJEDINIH DIJELOVA DESTRUKTORA KOJI UZROKUJU RUNTIME ERROR CE BITI OZNACENO KAO "RE"
  68. 3. SPASAVAJTE PROJEKAT KAKO BI SE SPRIJECILO GUBLJENJE URADJENOG ZADATKA
  69. 4. PROGRAMSKI CODE SE TAKODJER NALAZI U FAJLU CODE_.TXT
  70. 5. NAZIVI FUNKCIJA MORAJU BITI IDENTIČNI ONIMA KOJI SU KORIŠTENI U TESTNOM CODE-U.OSTALE, POMOĆNE FUNKCIJE MOŽETE IMENOVATI PO ŽELJI.
  71. 6. IZUZETAK BACITE KAD GOD JE TO POTREBNO.
  72. ****************************************************************************/
  73.  
  74. #pragma region TestiranjeDatuma
  75. Datum danas(26, 11, 2015);
  76. Datum sutra(danas);
  77. Datum prekosutra;
  78. prekosutra = danas;
  79. cout << danas << endl << sutra << endl << prekosutra << crt;
  80. #pragma endregion
  81. #pragma region TestiranjeKolekcije
  82. Kolekcija<int, int, 10> kolekcija1;
  83. for (size_t i = 0; i < kolekcija1.GetMax(); i++)
  84. kolekcija1.AddElement(i, i + 2);
  85. cout << kolekcija1.GetElement1(0) << " " << kolekcija1.GetElement2(0) << endl;
  86. cout << kolekcija1 << endl;
  87. Kolekcija<int, int, 10> kolekcija2;
  88. kolekcija2 = kolekcija1;
  89. cout << kolekcija2 << crt;
  90. if (kolekcija1.GetTrenutno() == kolekcija2.GetTrenutno())
  91. cout << "ISTI BROJ ELEMENATA" << endl;
  92. Kolekcija<int, int, 10> kolekcija3(kolekcija2);
  93. cout << kolekcija3 << crt;
  94. #pragma endregion
  95. #pragma region TestiranjeKursa
  96. Kurs sef(SoftwareEngeneeringFundamentals, "Jasmin Azemovic", Datum(28, 1, 2016), Datum(15, 2, 2016));
  97. cout << sef << endl;
  98. Kurs msql(MasteringSQL, "Adel Handzic", Datum(28, 2, 2016), Datum(15, 3, 2016));
  99. sef = msql;
  100. if (sef == msql)//kursevi su isti ako posjeduju identicne vrijednosti svih atributa
  101. cout << "ISTI SU KURSEVI" << endl;
  102. Kurs msql2(msql);
  103. cout << msql2 << endl;
  104. #pragma endregion
  105. #pragma region TestiranjePolaznika
  106. Polaznik denis("Denis Music");
  107. Polaznik denis2("Denis2 Music2");
  108. try{
  109. if (denis.AddKurs(sef)) //<<<< NAKON DODAVANJA SVAKOG NOVOG KURSA IZVRSITI NJIHOVO SORTIRANJE - NACIN SORTIRANJA PO VASEM IZBORU
  110. cout << "Polazniku " << denis << " uspjesno dodat kurs " << sef << endl;
  111. if (denis.AddKurs(msql))
  112. cout << "Polazniku " << denis << " uspjesno dodat kurs " << msql << endl;
  113. if (denis.AddKurs(msql))//<<<< NIJE DOZVOLJENO DODATI IDENTICNE KURSEVE, PRILIKOM PROVJERE KORISTITI ITERATOR
  114. cout << "Polazniku " << denis << " uspjesno dodat kurs " << msql << endl;
  115. if (denis.RemoveKurs(msql))
  116. cout << "Polazniku " << denis << " uspjesno uklonjen kurs " << msql << endl;
  117. if (denis.RemoveKurs(sef))
  118. cout << "Polazniku " << denis << " uspjesno uklonjen kurs " << sef << endl;
  119.  
  120. cout << denis2 << endl;//<<<<<KORISTITI OSTREAM_ITERATOR
  121. denis2 = denis;
  122. if (denis == denis2)//polaznici su isti ako imaju isto ime i ako su pohadjali iste kurseve
  123. cout << "ISTI SU" << endl;
  124. }
  125. catch (Izuzetak & err) {
  126. cout << err << endl;
  127. }
  128. #pragma endregion
  129.  
  130. #pragma region TestiranjeCentra
  131. try{
  132. SkillsCentar mostar("Skills Center Mostar");
  133. if (mostar.ProvjeriKoliziju(sef))//<<<JEDAN KURS NE SMIJE POCETI DOK DRUGI TRAJE TJ. VRIJEME ODRZAVANJA KURSA SE NE SMIJE POKLAPATI
  134. mostar.AddKurs(sef);
  135. if (mostar.ProvjeriKoliziju(msql))
  136. mostar.AddKurs(msql);
  137. if (mostar.ProvjeriKoliziju(msql2))
  138. mostar.AddKurs(msql2);//<<<< ONEMOGUCITI DODAVANJE IDENTICNIH KURSEVA
  139.  
  140. mostar.AddAplikaciju(sef, denis);//<<< ONEMOGUCITI APLICIRANJE ZA KURSEVE KOJI NISU REGISTROVANI U CENTRU
  141. mostar.AddAplikaciju(msql, denis);
  142. mostar.AddAplikaciju(msql, denis);//<<< ONEMOGUCITI APLICIRANJE ZA ISTI KURS
  143.  
  144. mostar.DodajUspjesnoOkoncanKurs(1, sef);//BROJ 1 OZNACAVA id STUDENTA. FUNKCIJA JE ZADUZENA DA STUDENTU DODA KURS KOJI JE POSLAT KAO PARAMETAR. PREDUSLOV ZA DODAVANJE JE DA JE STUDENT PRETHODNO APLICIRAO ZA TAJ KURS
  145. vector<Polaznik> listaPolaznika = mostar.GetPolazniciByPredavac("Jasmin Azemovic");//VRACA INFORMACIJE O POLAZNICIMA KOJI SU KOD ODREDJENOG PREDAVACA USPJESNO OKONCALI KURS
  146.  
  147. if (mostar.RemoveKurs(sef))//ONEMOGUCITI UKLANJANJE KURSA KOJI SU VEC PRIJAVILI NEKI OD POLAZNIKA
  148. cout << "Kurs " << sef << " uspjesno uklonjen iz cetra " << mostar << endl;
  149.  
  150. SkillsCentar sarajevo = mostar;
  151. cout << sarajevo << endl;
  152. }
  153. catch (Izuzetak & err) {
  154. cout << err << endl;
  155. }
  156. #pragma endregion
  157. system("pause");
  158. return 0;
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement