Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. //Mjerenje proteklog vremena u tisucinkama sekundi
  4. using namespace std;
  5. class cpredmeti_zapis {
  6. public:
  7. int id_predmeta;
  8. string naziv;
  9. string smjer;
  10.  
  11. template <typename P>
  12. void ispis_upis(bool ispis, P pointer, bool samo_naziv = false) {
  13. if(samo_naziv) {
  14. cout<<"Naziv predmeta: "<<naziv<<endl;
  15. return;
  16. }
  17. if (ispis) {
  18. cout<<"\nSifra predmeta: "<<id_predmeta
  19. <<"\nNaziv: "<<naziv
  20. <<"\nSmjer: "<<smjer
  21. <<"\nPokazivac na sljedeci element: "<<pointer<<endl;
  22. return;
  23. }
  24.  
  25.  
  26. cout<<"\nSifra predmeta: ";
  27. cin>>id_predmeta;
  28. cout<<"Naziv: ";
  29. cin.ignore();
  30. getline(cin, naziv);
  31. cout<<"Smjer: ";
  32. getline(cin, smjer);
  33. }
  34. };
  35.  
  36.  
  37. class cpredmeti {
  38. cpredmeti_zapis zapis;
  39. cpredmeti* sljedeci;
  40. cpredmeti* prethodni;
  41.  
  42. public:
  43. static int brojac_predmeta;
  44.  
  45. cpredmeti() {
  46. sljedeci = NULL;
  47. prethodni = NULL;
  48. }
  49.  
  50. void dodaj_na_kraj() {
  51. zapis.ispis_upis(0, 0);
  52. brojac_predmeta++;
  53.  
  54. cpredmeti* zadnji = this;
  55. cpredmeti* novi = new cpredmeti;
  56.  
  57.  
  58. while (zadnji->sljedeci) zadnji = zadnji->sljedeci;
  59.  
  60. novi->zapis = zapis;
  61. novi->prethodni = zadnji;
  62. novi->sljedeci = NULL;
  63. zadnji->sljedeci = novi;
  64. }
  65.  
  66. void ispis() {
  67. cout<<"\n----------Ispis liste----------\n";
  68. for (cpredmeti* tekuci = this->sljedeci; tekuci; tekuci = tekuci->sljedeci)
  69. tekuci->zapis.ispis_upis(true, tekuci->sljedeci, 0);
  70. }
  71.  
  72. bool pretraga(string id_smjera, int id_predmeta, bool prema_sifri = false, bool prema_sifri_predmeta = false) {
  73. for (cpredmeti* tekuci = this->sljedeci; tekuci; tekuci = tekuci->sljedeci) {
  74. if(!prema_sifri && tekuci->zapis.smjer == id_smjera) {
  75. tekuci->zapis.ispis_upis(true, tekuci->sljedeci, 0);
  76. }
  77. if(!prema_sifri && (!id_smjera.compare("*"))) {
  78. tekuci->zapis.ispis_upis(true,tekuci->sljedeci, 0);
  79. }
  80. if(prema_sifri_predmeta && prema_sifri && id_predmeta == tekuci->zapis.id_predmeta) {
  81. tekuci->zapis.ispis_upis(true,tekuci->sljedeci,1);
  82. return true;
  83. }
  84. if ((prema_sifri || prema_sifri_predmeta) && tekuci->zapis.id_predmeta == id_predmeta) return true;
  85. }
  86. return false;
  87. }
  88. }* ListaPredmeta = NULL;
  89.  
  90. class cprijave_zapis {
  91. public:
  92. int id_prijave;
  93. int id_predmeta;
  94. string id_studenta;
  95. string rok;
  96.  
  97. void ispis_upis(bool ispis = false) {
  98. if (ispis) {
  99. cout<<"\nSifra prijave: "<<id_prijave<<"\nSifra predmeta: "<<id_predmeta<<endl;
  100. ListaPredmeta->pretraga("", id_predmeta, 1, 1); //ispis predmeta
  101. cout<<"Maticni broj: "<<id_studenta<<"\nRok: "<<rok<<endl;
  102. return;
  103. }
  104.  
  105. cout<<"\nSifra prijave: ";
  106. cin>>id_prijave;
  107.  
  108. do {
  109. cout<<"Sifra predmeta: ";
  110. cin>>id_predmeta;
  111. if (!ListaPredmeta->pretraga("", id_predmeta, true)) cout<<"Nepostojeci predmet!\n";
  112. }while (!ListaPredmeta->pretraga("", id_predmeta, true));
  113.  
  114. cout<<"Maticni broj studenta: ";
  115. cin.ignore();
  116. getline(cin,id_studenta);
  117. cout<<"Rok: ";
  118. getline(cin,rok);
  119. }
  120. };
  121.  
  122.  
  123. class cprijave {
  124. public:
  125. cprijave_zapis *zapis;
  126. cprijave *sljedeci;
  127. static int brojac_prijava;
  128.  
  129. cprijave() {
  130. zapis = new cprijave_zapis;
  131. sljedeci = NULL;
  132. cout<<"\nKonstruktor..."<<endl;
  133. }
  134.  
  135. void dodaj() {
  136. zapis->ispis_upis();
  137. brojac_prijava++;
  138.  
  139. cprijave *zadnji = this;
  140. cprijave *novi = new cprijave;
  141.  
  142. while (zadnji->sljedeci)
  143. zadnji = zadnji->sljedeci;
  144.  
  145. zadnji->sljedeci = novi;
  146.  
  147. novi->zapis->id_prijave = zapis->id_prijave;
  148. novi->zapis->id_predmeta = zapis->id_predmeta;
  149. novi->zapis->id_studenta = zapis->id_studenta;
  150. novi->zapis->rok = zapis->rok;
  151. }
  152.  
  153. void ispis_prijava() {
  154. cout<<"\n----------Popis svih prijava----------\n";
  155. for(cprijave *tekuci = this->sljedeci; tekuci; tekuci = tekuci->sljedeci)
  156. tekuci->zapis->ispis_upis(true);
  157. }
  158. }* ListaPrijava = NULL;
  159. class cvrijeme{
  160. private:
  161. clock_t vrijeme1,vrijeme2;
  162. double razlika;
  163. public:
  164. double pocetak(){
  165. vrijeme1=clock();
  166. return (double)vrijeme1;
  167. };
  168. double kraj(){
  169. vrijeme2=clock();
  170. return (double)vrijeme2;
  171. };
  172. double proteklo(){
  173. razlika=vrijeme2-vrijeme1;
  174. return razlika;
  175. };
  176. };//cvrijeme
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement