Posted By

Sostar_Martin on 12/03/11


Tagged

sp3 glavni cekaonica


Versions (?)

Glavni program


 / Published in: C++
 

Martin Sostar

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4. #include "pok.h"
  5.  
  6.  
  7. using namespace std;
  8.  
  9. int n;
  10.  
  11. void generiranje(p *pacijenti){
  12. srand(time(0));
  13. cout<<"Koliko parova zelite generirati? (1-10000)"<<endl;
  14. cin>>n;
  15. pac novi;
  16. for(int i=0;i<n;i++){
  17. novi.rb=i+1;
  18. novi.a=((rand()%10001)/1000)+1;
  19. novi.b=((rand()%10001)/1000)+1;
  20. novi.c=(rand()%4)+1;
  21. EnQueueQ(novi,pacijenti);
  22. }
  23. cout<<"zapisi su uspjesno izgenerirani!"<<endl;
  24. system("pause");
  25. }
  26. void ispis(p *pacijenti){
  27. vrijeme_pocetak();
  28. cout<<"Ispis svih pacijenata"<<endl;
  29. pac tekuci;
  30. if(IsEmptyQ(pacijenti)) cout<<"red je prazan"<<endl;
  31. while(!IsEmptyQ(pacijenti)){
  32. tekuci=FrontQ(pacijenti);
  33. DeQueueQ(pacijenti);
  34. cout<<" pacijent br: "<<tekuci.rb<<endl;
  35. cout<<" cekanje: "<<tekuci.a<<" min"<<endl;
  36. cout<<"u ordinaciji: "<<tekuci.b<<" min"<<endl;
  37. cout<<" prioritet: "<<tekuci.c<<endl;
  38. cout<<"-----------------------------------"<<endl;
  39. cout<<endl;
  40. }
  41.  
  42. vrijeme_kraj();
  43. cout<<"vrijeme izvodenja funkcije u sekundama "<<vrijeme_proteklo()/1000<<endl;
  44. system("pause");
  45. }
  46.  
  47.  
  48. void raspored(p *pacijenti){
  49. vrijeme_pocetak();
  50. pac ordinacija[10000];
  51. int brojac=0;
  52.  
  53.  
  54.  
  55. while(!IsEmptyQ(pacijenti)){
  56. ordinacija[brojac]=FrontQ(pacijenti);
  57. brojac++;
  58. DeQueueQ(pacijenti);}
  59.  
  60.  
  61. bool zamjena=true;
  62. for(int i=n-1;i>0&&zamjena; i--){
  63. zamjena=false;
  64. for(int j=0;j<i;j++){
  65. if(ordinacija[j].c<ordinacija[j+1].c){
  66. pac pom=ordinacija[j];
  67. ordinacija[j]=ordinacija[j+1];
  68. ordinacija[j+1]=pom;
  69. zamjena=true;
  70. }
  71. if(ordinacija[j].c==ordinacija[j+1].c){
  72. if(ordinacija[j].a<ordinacija[j+1].a){
  73. pac pom=ordinacija[j];
  74. ordinacija[j]=ordinacija[j+1];
  75. ordinacija[j+1]=pom;
  76. zamjena=true;
  77. }
  78. }
  79. }
  80. }
  81.  
  82. for(int i=0;i<n;i++) EnQueueQ(ordinacija[i],pacijenti);
  83.  
  84. cout<<"Ispis svih pacijenata"<<endl;
  85. pac tekuci;
  86. if(IsEmptyQ(pacijenti)) cout<<"red je prazan"<<endl;
  87. while(!IsEmptyQ(pacijenti)){
  88. tekuci=FrontQ(pacijenti);
  89. DeQueueQ(pacijenti);
  90. cout<<" pacijent br: "<<tekuci.rb<<endl;
  91. cout<<" cekanje: "<<tekuci.a<<" min"<<endl;
  92. cout<<"u ordinaciji: "<<tekuci.b<<" min"<<endl;
  93. cout<<" prioritet: "<<tekuci.c<<endl;
  94. cout<<"-----------------------------------"<<endl;
  95. }
  96. vrijeme_kraj();
  97. cout<<"Vrijeme izvodenja funkcije u sekundama: "<<vrijeme_proteklo()/1000<<endl;
  98. system("pause");
  99. }
  100. int main()
  101. {
  102. p *pacijenti;
  103. pacijenti= new p;
  104. InitQ(pacijenti);
  105. int a;
  106. do{
  107. system("cls");
  108. cout<<"1. Generiranje parova"<<endl;
  109. cout<<"2. Simulacija cekaonice"<<endl;
  110. cout<<"3. Uredivanje prioriteta"<<endl;
  111. cout<<"9. Izlaz iz programa"<<endl;
  112. cout<<"Unesite izbor: ";
  113. cin>>a;
  114. switch(a){
  115. case 1: generiranje(pacijenti); break;
  116. case 2: ispis(pacijenti); break;
  117. case 3: raspored(pacijenti); break;
  118. }
  119. }while(a!=9);
  120. system("PAUSE");
  121. return 0;
  122. }

Report this snippet  

You need to login to post a comment.