Posted By

davor on 12/02/11


Tagged


Versions (?)

zad: a i b, slijedno unosenje


 / Published in: C++
 

zadak a i b

  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. red *red1;
  31. red1 = new red;
  32.  
  33. InitQ(red1);
  34.  
  35.  
  36. cout << "\n Simulacija rada lijecnicke ordinacije\n " << endl;
  37.  
  38. cout << "\nUnesite broj pacijenata za posjetu lijecniku: ";
  39. cin >> n;
  40.  
  41. cout << "\nBr. pacijenta\tVrijeme cekanja\tVrijeme pregleda\tHitnost intervencije"<< endl;
  42.  
  43. int a;
  44. for (a = 0 ; a < n ; a++){
  45. polje[a].vrijeme_cekanja = rand()%1000 +1;
  46. polje[a].vrijeme_pregleda = rand()%1000 +1;
  47. polje[a].hitnost_intervencije = rand()%4 + 1;
  48. polje[a].broj_pacijenta = a + 1;
  49. polje[a].pregledan = 0;
  50. 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;
  51. }
  52.  
  53.  
  54. cout<<" \nSlijedno primanje pacijenata u lijecnicku ordinaciju:\n "<<endl;
  55.  
  56. for(i=0; i<n; i++){
  57. if (polje[i].pregledan == 0){
  58. if(IsEmptyQ(red1)){
  59. while(br < polje[i].vrijeme_cekanja){
  60. br++;
  61. br2++;
  62. }
  63. br=0;
  64. EnQueueQ(polje[i] , red1);
  65. cout << polje[i].broj_pacijenta << ". pacijent ulazi u red " << endl;
  66. }
  67. }
  68.  
  69. cout << "Proteklo je " << br2 << " vremena." << endl;
  70.  
  71. if (k > 1) k--;
  72.  
  73. tmp = FrontQ(red1);
  74. DeQueueQ(red1);
  75.  
  76. cout << tmp.broj_pacijenta << ". pacijent ulazi u ordinaciju." << endl;
  77.  
  78. if (IsEmptyQ(red1)) cout<<"Red je prazan."<<endl;
  79. else cout << "Na celu reda je " << FrontQ(red1).broj_pacijenta <<". pacijent " << endl;
  80.  
  81.  
  82. tmp.pregledan = 1;
  83.  
  84. for(j = 0 ; j < tmp.vrijeme_pregleda ; j++){
  85. br++;
  86. br2++;
  87. if((i + k < n) && (br == polje[i+k].vrijeme_cekanja)){
  88. EnQueueQ(polje[i+k] , red1);
  89. polje[i+k].pregledan=1;
  90. cout << "Nakon " << j+1 << ". vremena, "<<i+k+1 << ". pacijent ulazi u red." <<endl;
  91.  
  92. br = 0;
  93. k++;
  94. }
  95. }
  96. cout << tmp.broj_pacijenta << ". pacijent izlazi iz ordinacije" << endl;
  97. cout << "Proteklo vremena: " << br2 << endl<< endl;
  98. }
  99.  
  100. vrijeme_kraj();
  101. cout<<"Stvarno vrijeme trajanja programa je: "<<vrijeme_proteklo()<<endl;
  102. system ("pause");
  103. return 0;
  104. }

Report this snippet  

You need to login to post a comment.