Posted By

avrevic on 01/10/12


Tagged

Queue


Versions (?)

glavniprogram(main)


 / Published in: C++
 

glavni program red

  1. #include <iostream>
  2. #include <ctime>
  3. #include "polja.h"
  4. //#include "pok.h"
  5. #include <ctime>
  6. using namespace std;
  7. telement*element=new telement;
  8. int ukupno=0;
  9. void prvi(telement*element) {
  10. cout<<"N = ";
  11. int N;
  12. cin>>N;
  13. ukupno+=N;
  14. srand(time(0));
  15. rand();
  16. for(int i=0; i<N; i++) {
  17. tpacijent*novi=new tpacijent;
  18. novi->xi=rand()%10000+1;
  19. novi->yi=rand()%10000+1;
  20. novi->prioritet=rand()%4+1;
  21. EnQueueQ(novi,element);
  22. }
  23. tpacijent*novi=new tpacijent;
  24. }
  25. void wait( int seconds) {
  26. clock_t endwait;
  27. endwait = clock () + seconds * CLOCKS_PER_SEC ;
  28. while (clock() < endwait) {}
  29. }
  30. int drugi(telement*element) {
  31. if(IsEmptyQ(element))return 0;
  32. clock_t vrijeme1,vrijeme2;
  33. vrijeme1=clock();
  34. double proteklo;
  35. tpacijent novi[ukupno];
  36. cout<<"PRESLAZEM PACIJENTE PREMA PRIORITETU\n--------------------------------------------\n";
  37. wait(1);
  38. for(int i=0; i<ukupno; i++) {
  39. tpacijent*novi2=new tpacijent;
  40. novi2=FrontQ(element);
  41. DeQueueQ(element);
  42. novi[i].xi=novi2->xi;
  43. novi[i].yi=novi2->yi;
  44. novi[i].prioritet=novi2->prioritet;
  45. delete novi2;
  46. }
  47. for(int i=0; i<ukupno; i++) {
  48. int j=i-1;
  49. int pom=novi[i].prioritet;
  50. tpacijent pom2=novi[i];
  51. while(j>=0&&novi[j].prioritet>pom) {
  52. novi[j+1]=novi[j--];
  53. novi[j+1]=pom2;
  54. }
  55. }
  56. cout<<"Uspjesno preslozeni pacijenti prema prioritetu\n--------------------------------------------\n";
  57. wait(1);
  58. cout<<"POKRECEM SIMULACIJU \n============================================\n";
  59. wait(1);
  60. int broj=1;
  61. telement*novi3=new telement;
  62. InitQ(novi3);
  63. for(int i=0; i<ukupno; i++) {
  64. tpacijent*novi2=new tpacijent;
  65. novi2->xi=novi[i].xi;
  66. novi2->yi=novi[i].yi;
  67. novi2->prioritet=novi[i].prioritet;
  68. EnQueueQ(novi2,novi3);
  69. }
  70. tpacijent*pacijent=new tpacijent;
  71. while(!(IsEmptyQ(novi3))) {
  72. pacijent=FrontQ(novi3);
  73. DeQueueQ(novi3);
  74. cout<<"\n=============================================================\n";
  75. cout<<"Pacijent broj "<<broj<<" ceka ulaz u ordinaciju\n";
  76. cout<<"PRIORITET PACIJENTA: ";
  77. if(pacijent->prioritet==1)cout<<"KRITICNI SLUCAJ!\n";
  78. else if(pacijent->prioritet==2)cout<<"RIZICNI SLUCAJ!\n";
  79. else if(pacijent->prioritet==3)cout<<"SLUCAJ NISKOG RIZIKA!\n";
  80. else cout<<"NIJE HITAN SLUCAJ!\n";
  81. float vrijeme=pacijent->xi;
  82. vrijeme/=1000;
  83. cout<<" _______________________________________________________\n";
  84. cout<<"| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n";
  85. for(int i=0; i<vrijeme; i++) {
  86. cout<<(char)177<<(char)177<<(char)177<<(char)177<<(char)177;
  87. wait(1);
  88. }
  89. int sekunde;
  90. sekunde= ((float)pacijent->xi/1000-(int)pacijent->xi/1000)*60;
  91. cout<<"\nPacijent je cekao : "<<(int)pacijent->xi/1000 <<" min i "<<sekunde<<" sec\n";
  92. wait(1);
  93. cout<<"\nPacijent broj "<<broj<<" je u ordinaciji kod lijecnika \n";
  94. vrijeme=pacijent->yi;
  95. vrijeme/=1000;
  96. cout<<" _______________________________________________________\n";
  97. cout<<"| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n";
  98. for(int i=0; i<vrijeme; i++) {
  99. cout<<(char)177<<(char)177<<(char)177<<char(177)<<char(177);
  100. wait(1);
  101. }
  102. sekunde= ((float)pacijent->yi/1000-(int)pacijent->yi/1000)*60;
  103. cout<<"\nPacijent je u ordinaciji bio: "<<(int)pacijent->yi/1000<<" min i "<<sekunde<<" sec\n";
  104. wait(1);
  105. broj++;
  106. cout<<endl;
  107. }
  108. delete pacijent;
  109. vrijeme2=clock();
  110. proteklo=vrijeme2-vrijeme1;
  111. cout<<"VRIJEME KOJE JE BILO POTREBNO DA SE IZVRSI OVA FUNKCIJA JE: "<<(int)proteklo/1000<<" sec\n";
  112. InitQ(element);
  113. }
  114. int main()
  115. {
  116. InitQ(element);
  117. int izbor;
  118. do {
  119. cout << "IZBORNIK\n-------\n";
  120. cout<<"1. Generiranje niza slucajnih brojeva\n";
  121. cout<<"2. \n";
  122. cin>>izbor;
  123. switch(izbor) {
  124. case 1:
  125. prvi(element);
  126. break;
  127. case 2:
  128. drugi(element);
  129. break;
  130. }
  131. }
  132. while(izbor!=9);
  133. return 0;
  134. }

Report this snippet  

You need to login to post a comment.