Posted By

ikovic on 12/03/11


Tagged

sp c++


Versions (?)

main.cpp


 / Published in: C++
 

URL: /

Glavni program za 3. zadaću iz SP

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <ctime>
  4. #include "red_pokazivaci.h"
  5. //#include "red_polje.h"
  6.  
  7. using namespace std;
  8.  
  9. int n;
  10. clock_t vrijeme1,vrijeme2; //blok funkcija za ra����¯�¿�½unanje vremena//
  11.  
  12. double vrijeme_pocetka(){
  13. vrijeme1=clock();
  14. return vrijeme1;
  15. };
  16. double vrijeme_kraja(){
  17. vrijeme2=clock();
  18. return vrijeme2;
  19. };
  20. double vrijeme_proteklo(){
  21. return vrijeme2-vrijeme1;
  22. };
  23.  
  24. void generiranje(q*pacijenti){
  25. srand(time(0));
  26. cout<<"Koliko pacijenata zelite prikazati u simulaciji? (1-10000)"<<endl;
  27. cin>>n;
  28. tpacijent novi;
  29. for(int i=0;i<n;i++){
  30. novi.rbp=i+1;
  31. novi.x=((rand()%10001)/1000)+1;
  32. novi.y=((rand()%10001)/1000)+1;
  33. novi.z=(rand()%4)+1;
  34. enqueueq(novi,pacijenti);
  35. }
  36. };
  37.  
  38. void primanje_pacijenata(q *pacijenti){
  39. vrijeme_pocetka(); //po����¯�¿�½etak mjerenja trajanja izvo����¯�¿�½enja programa//
  40. cout<<"Ispis svih pacijenata"<<endl;
  41. tpacijent tekuci;
  42. if(isemptyq(pacijenti)) cout<<"Red je prazan"<<endl;
  43. for(int i=0;i<n;i++){
  44. tekuci=frontq(pacijenti);
  45. dequeueq(pacijenti);
  46. cout<<"Pacijent pod rednim brojem....."<<tekuci.rbp<<endl;
  47. cout<<"Vrijeme cekanja:........"<<tekuci.x<<" min"<<endl;
  48. cout<<"u ordinaciji:..."<<tekuci.y<<" min"<<endl;
  49. cout<<"*************************"<<endl;
  50. enqueueq(tekuci,pacijenti);
  51. }
  52. vrijeme_kraja();
  53. cout<<"Ukupno vrijeme trajanja izvodjenja programa: "<<vrijeme_proteklo()/1000<<endl;
  54. };
  55.  
  56. void primanje_prioriteti(q *pacijenti){
  57. vrijeme_pocetka();
  58. tpacijent ord[10000];
  59. int brojac=0;
  60. while(!isemptyq(pacijenti)){
  61. ord[brojac]=frontq(pacijenti);
  62. brojac++;
  63. dequeueq(pacijenti);}
  64.  
  65. bool zamjena=true;
  66. for(int i=n-1;i>0&&zamjena; i--){
  67. zamjena=false;
  68. for(int j=0;j<i;j++){
  69. if(ord[j].z>ord[j+1].z){
  70. tpacijent pom=ord[j];
  71. ord[j]=ord[j+1];
  72. ord[j+1]=pom;
  73. zamjena=true;
  74. }
  75.  
  76. if(ord[j].z==ord[j+1].z){
  77. if(ord[j].x<ord[j+1].x){
  78. tpacijent pom=ord[j];
  79. ord[j]=ord[j+1];
  80. ord[j+1]=pom;
  81. zamjena=true;
  82. }
  83. }
  84. }
  85. }
  86.  
  87. for(int i=0;i<n;i++) enqueueq(ord[i],pacijenti);
  88.  
  89. cout<<"Stanje reda"<<endl;
  90. tpacijent tekuci;
  91. if(isemptyq(pacijenti)) cout<<"red je prazan"<<endl;
  92. while(!isemptyq(pacijenti)){
  93. tekuci=frontq(pacijenti);
  94. dequeueq(pacijenti);
  95. cout<<"pacijent br....."<<tekuci.rbp<<endl;
  96. cout<<"cekanje:........"<<tekuci.x<<" min"<<endl;
  97. cout<<"u ordinaciji:..."<<tekuci.y<<" min"<<endl;
  98. cout<<"prioritet:......"<<tekuci.z<<endl;
  99. cout<<"***********************"<<endl;
  100. }
  101. enqueueq(tekuci,pacijenti);
  102. vrijeme_kraja();
  103. cout<<"Vrijeme trajanja u sekundama: "<<vrijeme_proteklo()/1000<<endl;
  104.  
  105. }
  106.  
  107. int main()
  108. {
  109. cout<<"I----------------------------------------------------------I"<<endl;
  110. cout<<"I Sveuciliste u Zagrebu I"<<endl;
  111. cout<<"I Fakultet organizacije i informatike I"<<endl;
  112. cout<<"I I"<<endl;
  113. cout<<"I Zadaca iz kolegija: I"<<endl;
  114. cout<<"I Strukture podataka I"<<endl;
  115. cout<<"I I"<<endl;
  116. cout<<"I SIMULACIJA REDA U CEKAONICI I"<<endl;
  117. cout<<"I I"<<endl;
  118. cout<<"I Izradio: Ivan Kovic I"<<endl;
  119. cout<<"I Broj indeksa: 40624 I"<<endl;
  120. cout<<"I I"<<endl;
  121. cout<<"I Varazdin, 2011. I"<<endl;
  122. cout<<"I----------------------------------------------------------I"<<endl<<endl;
  123.  
  124.  
  125. int izbor;
  126. q *pacijenti;
  127. pacijenti=new q;
  128. initq(pacijenti);
  129. cout<<endl;
  130.  
  131.  
  132.  
  133. do{
  134. cout<<"I----------------------------------------------------------I"<<endl;
  135. cout<<"I GLAVNI IZBORNIK: I"<<endl;
  136. cout<<"I----------------------------------------------------------I"<<endl;
  137. cout<<"I 1. Generiranje 'n' pacijenata I"<<endl;
  138. cout<<"I 2. Primanje pacijenata prema vremenu dolaska I"<<endl;
  139. cout<<"I 3. Primanje pacijenata prema prioritetu I"<<endl;
  140. cout<<"I 0. Izlaz iz programa I"<<endl;
  141. cout<<"I----------------------------------------------------------I"<<endl;
  142. cout<<" Unesite broj zeljene kategorije: "<<endl;
  143.  
  144. cin>>izbor;
  145. switch(izbor){
  146. case 1:
  147. generiranje(pacijenti); break;
  148. case 2:
  149. primanje_pacijenata(pacijenti);break;
  150. case 3:
  151. primanje_prioriteti(pacijenti);break;
  152. default: break;
  153. }}
  154.  
  155. while(izbor!=0);
  156. system("PAUSE");
  157. return 0;
  158. }

Report this snippet  

You need to login to post a comment.