Posted By

makozic on 12/02/11


Tagged

program glavni


Versions (?)

Glavni program z3


 / Published in: C++
 

lijecnicka ordinacija z3

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <time.h>
  4.  
  5. #include "red_pokazivac.h"
  6. //#include "red_polje.h"
  7. #define N 10000
  8.  
  9. using namespace std;
  10.  
  11. void generiraj(int par[],int prioritet_pacijenta[],int broj);
  12. void ispis(int par[],int prioritet_pacijenta[],int broj);
  13. void simuliranje(int par[],int prioritet_pacijenta[],int broj,int radi);
  14. void cekaonica(int par[],int broj);
  15. void modifikacija(int par[],int prioritet_pacijenta[],int broj);
  16.  
  17. int main(void){
  18. int broj;
  19. int mogucnost;
  20. cout << "Unesite broj pacijenata: ";
  21. cin >> broj;
  22. int *par = new int[2*broj];
  23. int *prioritet_pacijenta = new int[2*broj];
  24. bool generiranje = false;
  25. while(mogucnost != 0){
  26. system("CLS");
  27. cout << "IZBORNIK" << endl;
  28. cout << "-------------------------------------------------|" << endl;
  29. cout << "1. Generiranje pacijenata |" << endl;
  30. cout << "2. Simulacija cekaonice |" << endl;
  31. cout << "3. Modifikacija simulacije cekaonice |" << endl;
  32. cout << "0. Izlaz |" << endl;
  33. cout << "-------------------------------------------------|" << endl;
  34. cout << "Mogucnost: ";
  35. cin >> mogucnost;
  36. if(generiranje == false && mogucnost != 0 && mogucnost != 1){
  37. cout << "Pogresan unos!\nOdaberite mogucnost 1!" << endl;
  38. system("PAUSE");
  39. continue;
  40. }
  41. else if(mogucnost == 1){
  42. cout << "Generiranje pacijenata." << endl;
  43. generiraj(par,prioritet_pacijenta,broj);
  44. generiranje = true;
  45. ispis(par,prioritet_pacijenta,broj);
  46. }
  47. else if(mogucnost == 2) simuliranje(par,prioritet_pacijenta,broj,1);
  48. else if(mogucnost == 3) simuliranje(par,prioritet_pacijenta,broj,2);
  49. else if(mogucnost == 0) cout << "Izlaz iz programa!" << endl;
  50. else cout << "Pogresan unos!" << endl;
  51. system("PAUSE");
  52. };
  53. delete[] par;
  54. delete[] prioritet_pacijenta;
  55. return 0;
  56. };
  57.  
  58. void generiraj(int par[],int prioritet_pacijenta[],int broj){
  59. srand((unsigned)time(0));
  60. int x = 0;
  61. while(x < broj){
  62. par[x] = rand() % N + 1;
  63. par[broj+x] = rand() % N + 1;
  64. prioritet_pacijenta[x] = rand() % 4 + 1;
  65. x++;
  66. };
  67. };
  68.  
  69. void ispis(int par[],int prioritet_pacijenta[],int broj){
  70. cout << endl << setw(5) << "[Xi]" << setw(10) << "[Yi]" << setw(17)
  71. << "[PRIORITET]" << endl;
  72. cout << "---------------------------------|" << endl;
  73. int x = 0;
  74. while(x < broj){
  75. cout << setw(5) << par[x] << setw(10) << par[broj+x] << setw(12) << prioritet_pacijenta[x]
  76. << " |" << endl;
  77. x++;
  78. };
  79. cout << "---------------------------------|" << endl;
  80. };
  81.  
  82. void simuliranje(int par[],int prioritet_pacijenta[],int broj,int radi){
  83. cout << "Stanje." << endl;
  84. ispis(par,prioritet_pacijenta,broj);
  85. float vrijeme_pocetak = clock();
  86. if(radi == 1) cekaonica(par,broj);
  87. else modifikacija(par,prioritet_pacijenta,broj);
  88. float vrijeme_kraj = clock();
  89. cout << "Vrijeme: " << (vrijeme_kraj - vrijeme_pocetak) << " ms" << endl << endl;
  90. };
  91.  
  92. void cekaonica(int par[],int broj){
  93. red *red = InitQ(red);
  94. int pocetak;
  95. int kraj;
  96. int x;
  97. int y;
  98. int pomocna;
  99. pocetak = kraj = x = y = pomocna = 0;
  100. element e;
  101. cout << endl;
  102. while(y < broj){
  103. e.i = par[y];
  104. e.j = par[broj+y++];
  105. EnQueueQ(e,red);
  106. cout << ++x << ". pacijent:" << endl;
  107. pomocna = FrontQ(red).i;
  108. cout << "Na vrhu reda se nalazi: " << pomocna << endl;
  109. cout << "Vrijeme dolaska pacijenata: " << pocetak << endl;
  110. kraj = FrontQ(red).j;
  111. cout << "Vrijeme u ordinaciji: " << kraj << endl;
  112. pocetak = pocetak + kraj;
  113. cout << "Vrijeme odlaska iz ordinacije: " << pocetak << endl << endl;
  114. pocetak = pocetak + pomocna;
  115. DeQueueQ(red);
  116. };
  117. delete [] red;
  118. };
  119.  
  120. void modifikacija(int par[],int prioritet_pacijenta[],int broj){
  121. int *parovi = new int[2*broj];
  122. int *prioriteti = new int[2*broj];
  123. int x = 0;
  124. int y;
  125. int pom1;
  126. int pom2;
  127. int pom3;
  128. while(x < broj){
  129. parovi[x]=par[x];
  130. parovi[broj+x]=par[broj+x];
  131. prioriteti[x]=prioritet_pacijenta[x];
  132. x++;
  133. };
  134. x = 1;
  135. while(x < broj){
  136. pom1 = prioriteti[x];
  137. pom2 = parovi[x];
  138. pom3 = parovi[broj+x];
  139. y = x - 1;
  140. while(y>=0 && prioriteti[y] > pom1){
  141. prioriteti[y+1] = prioriteti[y];
  142. parovi[y+1] = parovi[y];
  143. parovi[broj+y+1] = parovi[broj+y--];
  144. };
  145. prioriteti[y+1] = pom1;
  146. parovi[y+1] = pom2;
  147. parovi[broj+y+1] = pom3;
  148. x++;
  149. };
  150. cekaonica(parovi,broj);
  151. delete[] parovi;
  152. delete[] prioriteti;
  153. };

Report this snippet  

You need to login to post a comment.