Posted By


mjurman on 12/03/11

Tagged


Statistics


Viewed 490 times
Favorited by 0 user(s)

zadatak3_strukture_main


/ Published in: C++
Save to your folder(s)

simulacija rada liječničke ordinacije (main)


Copy this code and paste it in your HTML
  1. #include <iostream>
  2. #include <ctime>
  3. #include "red_pokazivac.h"
  4. //#include "red_polje.h"
  5. using namespace std;
  6.  
  7. red *red_1=new red;
  8. red *red_2=new red;
  9.  
  10. pacijent pac;
  11.  
  12. int pac_parovi[1000];
  13. int pac_prioritet[1000];
  14. int N=0;
  15.  
  16. int generiranje(){
  17. cout<<"Za koliko pacijenata zelite generirati slucajne brojeve? : ";
  18. cin>>N;
  19. srand((unsigned)time(NULL));
  20. for (int i=0;i<N;i++){
  21. pac_parovi[i]=rand()%10000+1;
  22. pac_parovi[i+N]=rand()%10000+1;
  23. pac_prioritet[i]=rand()%4+1;
  24. }
  25. cout<<endl;
  26. return 0;
  27. }
  28.  
  29. int ispis(){
  30. cout<<endl;
  31. for(int i=0;i<N;i++){
  32. cout<<" "<<i+1<<". pacijent--> ";
  33. cout<<"<xi="<<pac_parovi[i]<<",yi="<<pac_parovi[i+N]<<">"<<", prioritet= "<<pac_prioritet[i]<<endl;
  34. }
  35. cout<<endl;
  36. return 0;
  37. }
  38.  
  39. int simulacija_bez_prioriteta(){
  40. InitQ(red_1);
  41. int ceka=0, broj=1, napusta=0, ulaz=0;
  42. for(int i=0;i<N;i++){
  43. pac.x=pac_parovi[i];
  44. pac.y=pac_parovi[i+N];
  45. EnQueueQ(pac,red_1);
  46. }
  47. while(!IsEmptyQ(red_1)){
  48. pac=FrontQ(red_1);
  49. cout<<endl<<broj<<". pacijent\n";
  50. broj++;
  51. cout<<"---------------------------------\n";
  52. cout<<"U red je usao nakon: "<<ulaz<<" (jedinica vrem.)\n";
  53. cout<<"U redu je cekao: "<<ceka<<" (jedinica vrem.)\n";
  54. ulaz+=pac.x;
  55. napusta=ceka+pac.y;
  56. ceka+=pac.y;
  57. cout<<"U ordinaciji je bio: "<<pac.y<<" (jedinica vrem.)\n";
  58. cout<<"Kliniku je napustion nakon: "<<napusta<<" (jedninica vrem.)\n";
  59. cout<<"--------------------------------------\n\n";
  60. system("pause");
  61. DeQueueQ(red_1);
  62. }
  63. }
  64.  
  65. int simulacija_s_prioritetima(){
  66. InitQ(red_2);
  67. pacijent trenutno[1000];
  68. for(int i=0;i<N;i++){
  69. pac.x=pac_parovi[i];
  70. pac.y=pac_parovi[i+N];
  71. pac.pac_prioritet=pac_prioritet[i];
  72. EnQueueQ(pac,red_2);
  73. }
  74. for(int i=0;i<N;i++){
  75. trenutno[i]=FrontQ(red_2);
  76. DeQueueQ(red_2);
  77. }
  78.  
  79. for (int i=N; i>1;i--){
  80. int Max=0;
  81. for (int j=1;j<i;j++)
  82. if (trenutno[j].pac_prioritet>trenutno[Max].pac_prioritet) Max=j;
  83. pacijent pom=trenutno[i-1];
  84. trenutno[i-1]=trenutno[Max];
  85. trenutno[Max]=pom;
  86. }
  87.  
  88. for(int i=0;i<N;i++)
  89. EnQueueQ(trenutno[i],red_2);
  90. int ceka=0, napusta=0, broj=1, ulaz=0;
  91. while(!IsEmptyQ(red_2)){
  92. pac=FrontQ(red_2);
  93. cout<<" "<<broj<<". pacijent ---> prioritet ("<<pac.pac_prioritet<<")"<<endl;
  94. broj++;
  95. cout<<"----------------------------------"<<endl;
  96. cout<<"U red je usao nakon: "<<ulaz<<" (jedinica vrem nakon prethodnog)"<<endl;
  97. cout<<"U redu je cekao: "<<ceka<<" (jedinica vrem.)"<<endl;
  98. ulaz+=pac.x;
  99. napusta=ceka+pac.y;
  100. ceka+=pac.y;
  101. cout<<"U ordinaciji je bio: "<<pac.y<<" (jedinica vrem.)"<<endl;
  102. cout<<"Kliniku je napustion nakon: "<<napusta<<" (jedninica vrem.)"<<endl;
  103. cout<<"-----------------------------------\n\n";
  104. DeQueueQ(red_2);
  105. system("pause");
  106. }
  107. }
  108.  
  109. int main(){
  110. int izbor;
  111. do{
  112. cout<<endl;
  113. cout<<" Izbornik: "<<endl;
  114. cout<<"\n---------------------------------------"<<endl;
  115. cout<<"1. Generiranje parova slucajnih brojeva"<<endl;
  116. cout<<"2. Ispis pacijenata (s generiranim brojevima i prioritetima)"<<endl;
  117. cout<<"3. Simuliranje rada lijecnicke ordinacije (bez prioriteta ulazenja)"<<endl;
  118. cout<<"4. Simulacija rada lijecnicke ordinacije (s prioritetima ulazenja)"<<endl;
  119. cout<<"9. Izlaz iz programa"<<endl;
  120. cout<<"Vas izbor: "<<endl;
  121. cin>>izbor;
  122. cout<<endl;
  123. switch(izbor){
  124. case 1: generiranje(); break;
  125. case 2: ispis(); break;
  126. case 3: simulacija_bez_prioriteta(); break;
  127. case 4: simulacija_s_prioritetima();
  128. }
  129. }while(izbor!=9);
  130. system ("pause");
  131. return 0;
  132. }

URL: http://snipplr.com

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.