Posted By

mario_posavec on 12/03/11


Tagged


Versions (?)

Zadatak_3


 / Published in: C++
 

zadatak_3

  1. #include <iostream>
  2. #include <ctime>
  3. #include "pokazivac.h"
  4. using namespace std;
  5. telement *element=new telement;
  6. int suma=0;
  7. void generiraj(telement *element) {
  8. cout<<"Generirati niz za N brojeva "<<endl;
  9. cout<<"N= ";
  10. int N;
  11. cin>>N;
  12. suma+=N;
  13. srand(time(0));
  14. rand();
  15. for(int i=0; i<N; i++) {
  16. tpacijent *novi=new tpacijent;
  17. novi->xi=rand()%10000+1;
  18. novi->yi=rand()%10000+1;
  19. novi->prioritet=rand()%4+1;
  20. EnQueueQ(novi,element);
  21. }
  22. tpacijent*novi=new tpacijent;
  23. }
  24. int drugi(telement *element) {
  25. if(IsEmptyQ(element))return 0;
  26. clock_t vrijeme1,vrijeme2;
  27. vrijeme1=clock();
  28. double proteklo;
  29. tpacijent novi[suma];
  30. cout<<"Sortiranje prema prioritetu "<<endl;
  31. for(int i=0; i<suma; i++) {
  32. tpacijent *novi2=new tpacijent;
  33. novi2=FrontQ(element);
  34. DeQueueQ(element);
  35. novi[i].xi=novi2->xi;
  36. novi[i].yi=novi2->yi;
  37. novi[i].prioritet=novi2->prioritet;
  38. delete novi2;
  39. }
  40. for(int i=0; i<suma; i++) {
  41. int j=i-1;
  42. int pom=novi[i].prioritet;
  43. tpacijent pom2=novi[i];
  44. while(j>=0&&novi[j].prioritet>pom) {
  45. novi[j+1]=novi[j--];
  46. novi[j+1]=pom2;
  47. }
  48. }
  49. cout<<"Sortiranje obavljeno"<<endl;
  50. int broj=1;
  51. telement *novi3=new telement;
  52. InitQ(novi3);
  53. for(int i=0; i<suma; i++) {
  54. tpacijent*novi2=new tpacijent;
  55. novi2->xi=novi[i].xi;
  56. novi2->yi=novi[i].yi;
  57. novi2->prioritet=novi[i].prioritet;
  58. EnQueueQ(novi2,novi3);
  59. }
  60. tpacijent *pacijent=new tpacijent;
  61. while(!(IsEmptyQ(novi3))) {
  62. pacijent=FrontQ(novi3);
  63. DeQueueQ(novi3);
  64. cout<<"------------------------------------------------------------------"<<endl;
  65. cout<<"Pacijent broj "<<broj<<" ceka u cekaoni"<<endl;
  66. cout<<"PRIORITET: ";
  67. if(pacijent->prioritet==1)cout<<"Kriticni slucaj!"<<endl;
  68. else if(pacijent->prioritet==2)cout<<"Rizicni slucaj!"<<endl;
  69. else if(pacijent->prioritet==3)cout<<"Slucaj niskog rizika!"<<endl;
  70. else cout<<"Nije hitan slucaj!"<<endl;
  71. float vrijeme=pacijent->xi;
  72. vrijeme/=1000;
  73. int sekunde;
  74. sekunde= ((float)pacijent->xi/1000-(int)pacijent->xi/1000)*60;
  75. cout<<"Pacijent je cekao : "<<(int)pacijent->xi/1000 <<" min i "<<sekunde<<" sec\n"<<endl;
  76. cout<<"Pacijent broj "<<broj<<" ulazi u ordinaciju "<<endl;;
  77. vrijeme=pacijent->yi;
  78. vrijeme/=1000;
  79. sekunde= ((float)pacijent->yi/1000-(int)pacijent->yi/1000)*60;
  80. cout<<"Pacijent je u ordinaciji bio: "<<(int)pacijent->yi/1000<<" min i "<<sekunde<<" sec"<<endl;
  81. broj++;
  82. cout<<endl;
  83. }
  84. }
  85. int main()
  86. {
  87. InitQ(element);
  88. int izbor;
  89. do {
  90. cout <<"-------IZBORNIK-------"<<endl;
  91. cout<<"1. Generiranje niza slucajnih brojeva"<<endl;
  92. cout<<"2. Simulacija"<<endl;
  93. cout<<"9. Izlaz iz programa"<<endl;
  94. cout<<"Vas odabir? ";
  95. cin>>izbor;
  96. cout<<"-----------------------"<<endl;
  97. switch(izbor) {
  98. case 1:
  99. generiraj(element);
  100. break;
  101. case 2:
  102. drugi(element);
  103. break;
  104. case 9: break;
  105. }
  106. }
  107. while(izbor!=9);
  108. return 0;
  109. }

Report this snippet  

You need to login to post a comment.