Posted By

ivarbanas on 12/03/11


Tagged


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

ivarbanas


Main


 / Published in: C++
 

Pacijenti u lijecnickoj ordinaciji

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4. #include "biblioteka_vrijeme.cc"
  5. //#include "red_pokazivac.h"
  6. #include "red_polje.h"
  7. using namespace std;
  8. int n;
  9.  
  10. void generiranje(bot *pacijenti){
  11. srand(time(0));
  12. cout<<"Koliko parova zelite generirati? (1-10000)"<<endl;
  13. cin>>n;
  14. tpopis novi;
  15. for(int i=0;i<n;i++){
  16. novi.redbr=i+1;
  17. novi.x=((rand()%10001)/1000)+1;
  18. novi.y=((rand()%10001)/1000)+1;
  19. novi.z=(rand()%4)+1;
  20. enqueueq(novi,pacijenti);
  21. }
  22. };
  23.  
  24. void ispis(bot *pacijenti){
  25. vrijeme_pocetak();
  26. cout<<"Ispis svih trenutnih pacijenata:"<<endl;
  27. tpopis tekuci;
  28. if(isemptyq(pacijenti))
  29. cout<<"Red je prazan!"<<endl;
  30. while(!isemptyq(pacijenti)){
  31. tekuci=frontq(pacijenti);
  32. dequeueq(pacijenti);
  33. cout<<"Pacijent broj: "<<tekuci.redbr<<endl;
  34. cout<<"Cekanje: "<<tekuci.x<<" min"<<endl;
  35. cout<<"U ordinaciji: "<<tekuci.y<<" min"<<endl;
  36. cout<<"Prioritet: "<<tekuci.z<<endl;
  37. cout<<".................................."<<endl;
  38. }
  39. vrijeme_kraj();
  40. cout<<"Vrijeme izvodjenja funkcije u sekundama: "<<vrijeme_proteklo()/1000<<endl;
  41. };
  42.  
  43. void nula(tpopis *polje){
  44. for(int i=0;i<n;i++){
  45. polje[i].redbr=0;
  46. polje[i].x=0;
  47. polje[i].y=0;
  48. polje[i].z=0;
  49. }
  50. n=0;
  51. }
  52.  
  53. void modif(bot *pacijenti){
  54. vrijeme_pocetak();
  55. tpopis ordinacija[10000];
  56. int brojac=0;
  57. while(!isemptyq(pacijenti)){
  58. ordinacija[brojac]=frontq(pacijenti);
  59. brojac++;
  60. dequeueq(pacijenti);}
  61.  
  62. //sortiranje bubble sort
  63. bool zamjena=true;
  64. for(int i=n-1;i>0&&zamjena; i--){
  65. zamjena=false;
  66. for(int j=0;j<i;j++){
  67. if(ordinacija[j].z<ordinacija[j+1].z){
  68. tpopis pom=ordinacija[j];
  69. ordinacija[j]=ordinacija[j+1];
  70. ordinacija[j+1]=pom;
  71. zamjena=true;
  72. }
  73. if(ordinacija[j].z==ordinacija[j+1].z){
  74. if(ordinacija[j].x<ordinacija[j+1].x){
  75. tpopis pom=ordinacija[j];
  76. ordinacija[j]=ordinacija[j+1];
  77. ordinacija[j+1]=pom;
  78. zamjena=true;
  79. }
  80. }}
  81. }
  82.  
  83. for(int i=0;i<n;i++)
  84. enqueueq(ordinacija[i],pacijenti);
  85. cout<<"Ispis svih pacijenata:"<<endl;
  86. tpopis tekuci;
  87. if(isemptyq(pacijenti))
  88. cout<<"Red je prazan!"<<endl;
  89. while(!isemptyq(pacijenti)){
  90. tekuci=frontq(pacijenti);
  91. dequeueq(pacijenti);
  92. cout<<"Pacijent broj: "<<tekuci.redbr<<endl;
  93. cout<<"Cekanje: "<<tekuci.x<<" min"<<endl;
  94. cout<<"U ordinaciji: "<<tekuci.y<<" min"<<endl;
  95. cout<<"Prioritet: "<<tekuci.z<<endl;
  96. cout<<".................................."<<endl;
  97. }
  98. vrijeme_kraj();
  99. cout<<"Vrijeme izvodjenja funkcije u sekundama: "<<vrijeme_proteklo()/1000<<endl;
  100. nula(ordinacija);
  101. }
  102.  
  103. int main(int argum, char *argun[]){
  104. int izbor;
  105. bot *pacijenti;
  106. pacijenti=new bot;
  107. initq(pacijenti);
  108. do{
  109. cout<<endl<<endl;
  110. cout<<" IZBORNIK: "<<endl;
  111. cout<<"-------------------------"<<endl;
  112. cout<<"1.Generiranje pacijenata."<<endl;
  113. cout<<"2.Simulacija (sekvencijalno posluzivanje)."<<endl;
  114. cout<<"3.Modifikacija (posluzivanje)."<<endl;
  115. cout<<"9.Izlaz."<<endl<<endl;
  116. cout<<"Vas izbor: ";
  117. cin>>izbor;
  118. switch(izbor){
  119. case 1:
  120. generiranje(pacijenti);
  121. break;
  122. case 2:
  123. ispis(pacijenti);
  124. break;
  125. case 3:
  126. modif(pacijenti);
  127. break;
  128. case 9:
  129. return 0;
  130. default:
  131. cout<<"Pogresan unos!"<<endl;
  132. break;
  133. }
  134. }while(1);
  135. system("pause");
  136. return 0;
  137. }

Report this snippet  

You need to login to post a comment.