Posted By

matijafoi on 12/03/11


Tagged

Strukture podataka zadatak3


Versions (?)

Glavni program


 / Published in: C++
 

Glavni program iz zadatka 3 strukture podataka

  1. #include <iostream>
  2. #include <ctime>
  3. #include "polja.h"
  4. //#include "pok.h"
  5.  
  6. using namespace std;
  7.  
  8. elementi*el=new elementi;
  9. int n=0;
  10.  
  11. void prvi(elementi*el){
  12. cout<<"Koliko N parova slucajnih brojeva zelite generirati: ";
  13. do cin>>n; while(n<=1||n>=10000);
  14. srand(time(0));
  15. rand();
  16. for(int i=0; i<n; i++){
  17. pacijenti*novi=new pacijenti;
  18. novi->xi=rand()%10000+1;
  19. novi->yi=rand()%10000+1;
  20. novi->prioritet=rand()%4+1;
  21. EnQueueQ(novi,el);
  22. }
  23. pacijenti*novi=new pacijenti;
  24. cout<<endl;
  25. }
  26.  
  27. void wait(int sekunde){
  28. clock_t cekaj;
  29. cekaj=clock()+sekunde*CLOCKS_PER_SEC;
  30. while(clock()<cekaj){}
  31. }
  32.  
  33. int drugi(elementi*el){
  34. if(IsEmptyQ(el))return 0;
  35. clock_t vrijeme1,vrijeme2;
  36. vrijeme1=clock();
  37. float vrijeme_trajanja;
  38. pacijenti novi[n];
  39. cout<<"\tSIMULACIJA"<<endl;
  40. cout<<"----------------------------------------"<<endl;
  41. cout<<"Preslazem pacijente prema prioritetu."<<endl;
  42. wait(1);
  43. for(int i=0; i<n; i++) {
  44. pacijenti*novi1=new pacijenti;
  45. novi1=FrontQ(el);
  46. DeQueueQ(el);
  47. novi[i].xi=novi1->xi;
  48. novi[i].yi=novi1->yi;
  49. novi[i].prioritet=novi1->prioritet;
  50. delete novi1;
  51. }
  52. for(int i=0; i<n; i++) {
  53. int j=i-1;
  54. int pom=novi[i].prioritet;
  55. pacijenti pom2=novi[i];
  56. while(j>=0&&novi[j].prioritet>pom) {
  57. novi[j+1]=novi[j--];
  58. novi[j+1]=pom2;
  59. }
  60. }
  61. cout<<"Pacijenti su preslozeni prema prioritetu."<<endl;
  62. cout<<"///////////////////////////////////////////"<<endl;
  63. wait(1);
  64. cout<<"\tSimulacija pokrenuta "<<endl;
  65. cout<<"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"<<endl;
  66. wait(1);
  67. int broj=1;
  68. elementi*novi2=new elementi;
  69. InitQ(novi2);
  70. for(int i=0; i<n; i++){
  71. pacijenti*novi1=new pacijenti;
  72. novi1->xi=novi[i].xi;
  73. novi1->yi=novi[i].yi;
  74. novi1->prioritet=novi[i].prioritet;
  75. EnQueueQ(novi1,novi2);
  76. }
  77. pacijenti*pacijent=new pacijenti;
  78. while(!(IsEmptyQ(novi2))){
  79. pacijent=FrontQ(novi2);
  80. DeQueueQ(novi2);
  81. cout<<"Pacijent broj: "<<broj<<". ceka ulaz u ordinaciju."<<endl;
  82. cout<<"Prioritet pacjenta: ";
  83. if(pacijent->prioritet==1)cout<<"1-KRITICNI SLUCAJ!"<<endl;
  84. else if(pacijent->prioritet==2)cout<<"2-RIZICNI SLUCAJ!"<<endl;
  85. else if(pacijent->prioritet==3)cout<<"3-SLUCAJ NISKOG RIZIKA!"<<endl;
  86. else cout<<"4-NIJE HITAN SLUCAJ!"<<endl;
  87. float vrijeme=pacijent->xi;
  88. vrijeme/=1000;
  89. for(int i=0; i<vrijeme; i++){
  90. wait(1);
  91. }
  92. int sekunde;
  93. sekunde=((float)pacijent->xi/1000-(int)pacijent->xi/1000)*60;
  94. cout<<"Pacijent je cekao: "<<(int)pacijent->xi/1000 <<" min i "<<sekunde<<" sekundi."<<endl;
  95. wait(1);
  96. cout<<"Pacijent broj "<<broj<<" je u ordinaciji kod lijecnika."<<endl;
  97. vrijeme=pacijent->yi;
  98. vrijeme/=1000;
  99. for(int i=0; i<vrijeme; i++){
  100. wait(1);
  101. }
  102. sekunde=((float)pacijent->yi/1000-(int)pacijent->yi/1000)*60;
  103. cout<<"Pacijent je u ordinaciji bio: "<<(int)pacijent->yi/1000<<" min i "<<sekunde<<" sekundi."<<endl;
  104. wait(1);
  105. broj++;
  106. cout<<endl;
  107. }
  108. delete pacijent;
  109. vrijeme2=clock();
  110. vrijeme_trajanja=vrijeme2-vrijeme1;
  111. cout<<"Ukupno vrijeme trajanja druge opcije je: "<<(int)vrijeme_trajanja/1000<<" sekundi."<<endl<<endl;
  112. InitQ(el);
  113. }
  114. int main()
  115. {
  116. InitQ(el);
  117. int izbor;
  118. do {
  119. cout << "\tIZBORNIK\n------------------------"<<endl;
  120. cout<<"1. Generiranje niza slucajnih brojeva"<<endl;
  121. cout<<"2. Simulacija"<<endl;
  122. cout<<"9. Izlaz"<<endl;
  123. cout<<"Vas izbor: ";
  124. cin>>izbor;
  125. switch(izbor) {
  126. case 1:
  127. prvi(el);
  128. break;
  129. case 2:
  130. drugi(el);
  131. break;
  132. }
  133. }
  134. while(izbor!=9);
  135. return 0;
  136. }

Report this snippet  

You need to login to post a comment.