Posted By

mlcorak on 12/03/11


Tagged

glavni


Versions (?)

A,B,D dio glavnog programa


 / Published in: C++
 

glavni program, a,b,d dio

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5. #include "racunanje_vremena.cpp"
  6. struct cpacijent{
  7. int cekanje;
  8. int obrada;
  9. int rbr;
  10. int gotov;
  11. }pacijent[10000] , tmp;
  12.  
  13. typedef cpacijent elementtype;
  14.  
  15. #include "red_cirkularno_polje.h"
  16. //#include "red_pokazivaci.h"
  17.  
  18. void generiranje (int i, int n, elementtype pacijent[]){
  19. for (i = 0 ; i < n ; i++){
  20. pacijent[i].cekanje = rand()%1000 +1;
  21. pacijent[i].obrada = rand()%1000 +1;
  22. pacijent[i].rbr = i + 1;
  23. pacijent[i].gotov = 0;
  24. cout << pacijent[i].rbr << "\t\t" << pacijent[i].cekanje << " \t\t" << pacijent[i].obrada << "\t\t\t" << endl;
  25. }
  26. }
  27. int main(){
  28. vrijeme_pocetak();
  29. srand((unsigned)time(NULL));
  30. int n , i , br = 0 , br2 = 0 , k = 1 , j;
  31. queue *red1;
  32. red1 = new queue;
  33.  
  34.  
  35. InitQ(red1);
  36.  
  37.  
  38. cout << "*****************************************" << endl;
  39. cout << "*\t\tDOBRODOSLI\t\t*" << endl;
  40. cout << "* Program simulira rad hitne sluzbe *" << endl;
  41. cout << "*****************************************" << endl;
  42.  
  43. do{
  44. cout << "\nSimulaciju sa koliko pacjenata zelite R:(max 10000)? ";
  45. cin >> n;
  46. if (n>10000 || n<0) cout<<"\nUnos mora bi u rasponu izmedu 0-10000. Ponovite unos";
  47. } while (n>10000 || n<0);
  48.  
  49. cout << "\n***************************************************************";
  50. cout << "\nBroj_pacjenta\tCekanje\t\tVrijeme_obrade\t\tHitnost"<< endl;
  51.  
  52. generiranje (i,n,pacijent);
  53.  
  54. cout << "\n***************************************************************\n";
  55. cout<<"Pacjenti kako dolaze na hitnu smijestaju se u jedan \n red "<<endl;
  56. cout << "\n***************************************************************\n\n";
  57. for(i = 0 ; i < n; i++){
  58. if (pacijent[i].gotov == 0){
  59. if(IsEmptyQ(red1)){
  60. while(br < pacijent[i].cekanje){
  61. br++;
  62. br2++;
  63. }
  64. br=0;
  65. EnQueueQ(pacijent[i] , red1);
  66. cout << pacijent[i].rbr << ". pacijent ulazi u red " << endl;
  67. }
  68. }
  69.  
  70.  
  71. cout << "Proteklo " << br2 << " vremenskih jedinica." << endl;
  72.  
  73. if (k > 1) k--;
  74.  
  75. tmp = FrontQ(red1);
  76. DeQueueQ(red1);
  77.  
  78. cout << tmp.rbr << ". pacijent ulazi u ordinaciju." << endl;
  79.  
  80. if (IsEmptyQ(red1)) cout<<"Red je prazan."<<endl;
  81. else cout << "Na celu reda je " << FrontQ(red1).rbr <<". pacijent " << endl;
  82.  
  83.  
  84. tmp.gotov = 1;
  85.  
  86. for(j = 0 ; j < tmp.obrada ; j++){
  87. br++;
  88. br2++;
  89. if((i + k < n) && (br == pacijent[i+k].cekanje)){
  90. EnQueueQ(pacijent[i+k] , red1);
  91. pacijent[i+k].gotov=1;
  92. cout << "Nakon " << j+1 << ". jedinice vremena, "<<i+k+1 << ". pacijent ulazi u red." <<endl;
  93.  
  94. br = 0;
  95. k++;
  96. }
  97. }
  98. cout << tmp.rbr << ". pacijent izlazi iz ordinacije" << endl;
  99. cout << "Proteklo jedinica: " << br2 << endl << endl;
  100. }
  101.  
  102. vrijeme_kraj();
  103. cout<<"Stvarno vrijeme trajanja programa je "<<vrijeme_proteklo() <<"milisekundi"<<endl;
  104. system ("pause");
  105. return 0;
  106. }

Report this snippet  

You need to login to post a comment.