zad c: modifikacija


/ Published in: C++
Save to your folder(s)

zad c: modifikacija


Copy this code and paste it in your HTML
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include "biblioteka_vrijeme.cpp"
  5.  
  6. using namespace std;
  7.  
  8. struct tpodaci{
  9. int broj_pacijenta;
  10. int vrijeme_cekanja;
  11. int vrijeme_pregleda;
  12. int hitnost_intervencije;
  13. int pregledan;
  14. }polje[10000] , tmp;
  15.  
  16. typedef tpodaci elementtype;
  17.  
  18. //#include "red_polje.h"
  19. #include "red_pokazivac.h"
  20.  
  21. int main(){
  22. vrijeme_pocetak();
  23. srand((unsigned)time(NULL));
  24. int n;
  25. int i;
  26. int br = 0;
  27. int br2 = 0;
  28. int k = 1;
  29. int j;
  30.  
  31. red *red1 , *red2, *red3, *red4;
  32. red1 = new red;
  33. red2 = new red;
  34. red3 = new red;
  35. red4 = new red;
  36.  
  37. InitQ(red1);
  38. InitQ(red2);
  39. InitQ(red3);
  40. InitQ(red4);
  41.  
  42. cout << " Simulacija rada lijecnicke ordinacije " << endl;
  43.  
  44. cout << "\nUnesite broj pacijenata za posjetu lijecniku: ";
  45. cin >> n;
  46.  
  47. cout << "\nBr. pacijenta\tVrijeme cekanja\tVrijeme pregleda\tHitnost intervencije"<< endl;
  48.  
  49. int a;
  50. for (a = 0 ; a < n ; a++){
  51. polje[a].vrijeme_cekanja = rand()%1000 +1;
  52. polje[a].vrijeme_pregleda = rand()%1000 +1;
  53. polje[a].hitnost_intervencije = rand()%4 + 1;
  54. polje[a].broj_pacijenta = a + 1;
  55. polje[a].pregledan = 0;
  56. cout << polje[a].broj_pacijenta << "\t\t" << polje[a].vrijeme_cekanja << " \t\t" << polje[a].vrijeme_pregleda << "\t\t\t" << polje[a].hitnost_intervencije << endl;
  57. }
  58.  
  59. cout<<" Slanje pacijenata u red prema hitnosti intervencije. ";
  60. cout<<"Red 1 - Kriticni slucaj \nRed 2 - Rizicni slucaj\nRed 3 - Slucaj niskog rizika\nRed 4 - Nije hitan slucaj";
  61.  
  62. for(i = 0 ; i < n; i++){
  63.  
  64. if (polje[i].hitnost_intervencije == 1 && polje[i].pregledan == 0){
  65. if(IsEmptyQ(red1)){
  66. while(br < polje[i].vrijeme_cekanja){
  67. br++;
  68. br2++;
  69. }
  70. br=0;
  71. EnQueueQ(polje[i] , red1);
  72. cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 1." << endl;
  73. }
  74. }
  75. if (polje[i].hitnost_intervencije == 2 && polje[i].pregledan == 0){
  76. if(IsEmptyQ(red2)){
  77. while(br < polje[i].vrijeme_cekanja){
  78. br++;
  79. br2++;
  80. }
  81. br=0;
  82. EnQueueQ(polje[i] , red2);
  83. cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 2." << endl;
  84. }
  85. }
  86. if (polje[i].hitnost_intervencije == 3 && polje[i].pregledan == 0){
  87. if(IsEmptyQ(red3)){
  88. while(br < polje[i].vrijeme_cekanja){
  89. br++;
  90. br2++;
  91. }
  92. br=0;
  93. EnQueueQ(polje[i] , red3);
  94. cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 3." << endl;
  95. }
  96. }
  97. if (polje[i].hitnost_intervencije == 4 && polje[i].pregledan == 0){
  98. if(IsEmptyQ(red4)){
  99. while(br < polje[i].vrijeme_cekanja){
  100. br++;
  101. br2++;
  102. }
  103. br=0;
  104. EnQueueQ(polje[i] , red4);
  105. cout << polje[i].broj_pacijenta << ". pacijent ulazi u red 4." << endl;
  106. }
  107. }
  108.  
  109. cout << "Proteklo je " << br2 << " vremena." << endl;
  110.  
  111. if (k > 1) k--;
  112. if (IsEmptyQ(red1)){
  113. if (IsEmptyQ(red2)){
  114. if (IsEmptyQ(red3)){
  115. tmp = FrontQ(red4);
  116. DeQueueQ(red4);
  117. }
  118. else{
  119. tmp = FrontQ(red3);
  120. DeQueueQ(red3);
  121. }
  122. }
  123. else{
  124. tmp = FrontQ(red2);
  125. DeQueueQ(red2);
  126. }
  127. }
  128. else{
  129. tmp = FrontQ(red1);
  130. DeQueueQ(red1);
  131. }
  132.  
  133. cout << tmp.broj_pacijenta << ". pacijent ulazi u ordinaciju." << endl;
  134.  
  135. if (IsEmptyQ(red1)) cout<<"Red 1 je prazan."<<endl;
  136. else cout << "Na celu reda 1 je " << FrontQ(red1).broj_pacijenta <<". pacijent " << endl;
  137.  
  138. if (IsEmptyQ(red2)) cout << "Red 2 je prazan" << endl;
  139. else cout << "Na celu reda 2 je " << FrontQ(red2).broj_pacijenta <<". pacijent "<< endl;
  140.  
  141. if (IsEmptyQ(red3)) cout << "Red 3 je prazan" << endl;
  142. else cout << "Na celu reda 3 je " << FrontQ(red3).broj_pacijenta <<". pacijent "<< endl;
  143.  
  144. if (IsEmptyQ(red4)) cout << "Red 4 je prazan" << endl;
  145. else cout << "Na celu reda 4 je " << FrontQ(red4).broj_pacijenta <<". pacijent "<< endl;
  146.  
  147. tmp.pregledan = 1;
  148.  
  149. for(j=0; j<tmp.vrijeme_pregleda; j++){
  150. br++;
  151. br2++;
  152.  
  153. if((i + k < n) && (br == polje[i+k].vrijeme_cekanja)){
  154. if (polje[i+k].hitnost_intervencije == 1){
  155. EnQueueQ(polje[i+k] , red1);
  156. polje[i+k].pregledan=1;
  157. cout << "Nakon " << j+1 << ". vremena, "<<i+k+1 << ". pacijent ulazi u red 1." <<endl;
  158. }
  159. if (polje[i+k].hitnost_intervencije == 2){
  160. EnQueueQ(polje[i+k] , red2);
  161. polje[i+k].pregledan=1;
  162. cout << "Nakon " << j+1 << ". vremena, "<< i+k+1<< ". pacijent ulazi u red 2." <<endl;
  163. }
  164. if (polje[i+k].hitnost_intervencije == 3){
  165. EnQueueQ(polje[i+k] , red3);
  166. polje[i+k].pregledan=1;
  167. cout << "Nakon " << j+1 << ". vremena, "<< i+k+1<< ". pacijent ulazi u red 3." <<endl;
  168. }
  169. if (polje[i+k].hitnost_intervencije == 4){
  170. EnQueueQ(polje[i+k] , red4);
  171. polje[i+k].pregledan=1;
  172. cout << "Nakon " << j+1 << ". vremena, "<< i+k+1<< ". pacijent ulazi u red 4." <<endl;
  173. }
  174. br = 0;
  175. k++;
  176. }
  177. }
  178. cout << tmp.broj_pacijenta << ". pacijent izlazi iz ordinacije" << endl;
  179. cout << "Proteklo vremena: " << br2 << endl << endl;
  180. }
  181.  
  182. while(!IsEmptyQ(red4)){
  183. cout <<FrontQ(red4).broj_pacijenta<< ". pacijent ulazi u ordinaciju." << endl;
  184. cout<<"Red 1 je prazan."<<endl;
  185. cout<<"Red 2 je prazan."<<endl;
  186. cout<<"Red 3 je prazan"<<endl;
  187. tmp = FrontQ(red4);
  188. DeQueueQ(red4);
  189. if (IsEmptyQ(red4)) cout << "Red 4 je prazan" << endl;
  190. else cout << "Na celu reda 4 je " << FrontQ(red4).broj_pacijenta << endl;
  191. cout <<tmp.broj_pacijenta<< ". pacijent izlazi iz ordinacije" << endl;
  192. cout << "Proteklo vremena: " << br2+tmp.vrijeme_pregleda << endl << endl;
  193. };
  194. vrijeme_kraj();
  195. cout<<"Stvarno vrijeme trajanja programa je: "<<vrijeme_proteklo()<<endl;
  196. system ("pause");
  197. return 0;
  198. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.