Posted By

carbonv0000 on 12/03/11


Tagged

red


Versions (?)

main.cpp


 / Published in: C++
 

Glavni program

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4. #include "biblioteka_vrijeme.cc"
  5. #include "red_polje.h"
  6. using namespace std;
  7. int br;
  8.  
  9. void generiranje_zapisa(tred *pac){
  10. srand(time(0));
  11. cout<<"Koliko zapisa pacijenata zelite generirati? (1-10000)"<<endl;
  12. cin>>br;
  13. tcekaonica zapis;
  14. for(int i=0;i<br;i++){
  15. zapis.br_pac=i+1;
  16. zapis.xvrij_prot=(rand()%16)+1;
  17. zapis.yvrij_prot_u_ord=(rand()%16)+1;
  18. zapis.prioritet=(rand()%4)+1;
  19. EnQueueQ(zapis,pac);
  20. }
  21. }
  22.  
  23. void ispis(tred *pac){
  24. vrijeme_pocetak();
  25. cout<<"Ispis pacijenata"<<endl;
  26. tcekaonica tekuci;
  27. if(IsEmptyQ(pac)) cout<<"Red je prazan"<<endl;
  28. while(!IsEmptyQ(pac)){
  29. tekuci=FrontQ(pac);
  30. DeQueueQ(pac);
  31. cout<<"Broj izgeneriranih pacijenata: "<<tekuci.br_pac<<endl;
  32. cout<<"Vrijeme provedeno u cekaonici: "<<tekuci.xvrij_prot<<" min"<<endl;
  33. cout<<"Vrijeme provedeno u ordinaciji: "<<tekuci.yvrij_prot_u_ord<<" min"<<endl;
  34. cout<<"Prioritet (1-4): "<<tekuci.prioritet<<endl;
  35. cout<<"--------------------------------"<<endl;
  36. }
  37. vrijeme_kraj();
  38. cout<<"Vrijeme izvodenja funkcije: "<<vrijeme_proteklo()/1000<<" sekundi"<<endl;
  39. }
  40.  
  41. void zero(tcekaonica *polje){
  42. for(int i=0;i<br;i++){
  43. polje[i].br_pac=0;
  44. polje[i].xvrij_prot=0;
  45. polje[i].yvrij_prot_u_ord=0;
  46. polje[i].prioritet=0;
  47. }
  48. br=0;
  49. }
  50.  
  51. void modifikacija_prioritet(tred *pac){
  52. if(IsEmptyQ(pac)) {cout<<"Red je prazan"<<endl; return;}
  53. vrijeme_pocetak();
  54. tcekaonica p[10000];
  55. int brojac=0;
  56. while(!IsEmptyQ(pac)){
  57. p[brojac]=FrontQ(pac);
  58. brojac++;
  59. DeQueueQ(pac);
  60. }
  61.  
  62. //sortiranje zamjenom
  63. bool zamjena=true;
  64. for(int i=br-1;i>0&&zamjena; i--){
  65. zamjena=false;
  66. for(int j=0;j<i;j++){
  67. if(p[j].prioritet<p[j+1].prioritet){
  68. tcekaonica pom=p[j];
  69. p[j]=p[j+1];
  70. p[j+1]=pom;
  71. zamjena=true;
  72. }
  73. if(p[j].prioritet==p[j+1].prioritet){
  74. if(p[j].xvrij_prot<p[j+1].xvrij_prot){
  75. tcekaonica pom=p[j];
  76. p[j]=p[j+1];
  77. p[j+1]=pom;
  78. zamjena=true;
  79. }
  80. }
  81. }
  82. }
  83. for(int i=0;i<br;i++) EnQueueQ(p[i],pac);
  84.  
  85. cout<<"Ispis pacijenata"<<endl;
  86. tcekaonica tekuci;
  87. if(IsEmptyQ(pac)) cout<<"Red je prazan"<<endl;
  88. while(!IsEmptyQ(pac)){
  89. tekuci=FrontQ(pac);
  90. DeQueueQ(pac);
  91. cout<<"Broj izgeneriranih pacijenata: "<<tekuci.br_pac<<endl;
  92. cout<<"Vrijeme provedeno u cekaonici: "<<tekuci.xvrij_prot<<" min"<<endl;
  93. cout<<"Vrijeme provedeno u ordinaciji: "<<tekuci.yvrij_prot_u_ord<<" min"<<endl;
  94. cout<<"Prioritet (1-4): "<<tekuci.prioritet<<endl;
  95. cout<<"--------------------------------"<<endl;
  96. }
  97. vrijeme_kraj();
  98. cout<<"Vrijeme izvodenja funkcije: "<<vrijeme_proteklo()/1000<<" sekundi"<<endl;
  99. zero(p);
  100. }
  101.  
  102. int main(){
  103. int izbor;
  104. tred *pac;
  105. pac=new tred;
  106. InitQ(pac);
  107. do{
  108. cout<<"1. Generiranje zapisa pacijenata"<<endl;
  109. cout<<"2. Ispis svih pacijenata"<<endl;
  110. cout<<"3. Ispis pacijenata s obzirom na prioritet"<<endl;
  111. cout<<"9. Izlaz iz programa"<<endl;
  112. cin>>izbor;
  113. switch(izbor){
  114. case 1: generiranje_zapisa(pac); break;
  115. case 2: ispis(pac); break;
  116. case 3: modifikacija_prioritet(pac); break;
  117. case 9: break;
  118. }
  119. }while(izbor!=9);
  120. system("pause");
  121. return 0;
  122. }

Report this snippet  

You need to login to post a comment.