普通类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通类相关的知识,希望对你有一定的参考价值。

3. zadatak: simulacija reda liječničke ordinacije, strukture podataka.
  1. #include <iostream>
  2. #include <ctime>
  3. //#include "red_pokazivac.h"
  4. #include "red_polje.h"
  5. using namespace std;
  6.  
  7. int broj_pacijenata = 0;
  8. tpacijent *p_pacijent, *r_pacijent;
  9. bool sim = false;
  10.  
  11. void generiranje () {
  12. int n;
  13. do {
  14. cout << " Koliko parova slucajnih brojeva zelite generirati? ";
  15. cin >> n;
  16. if (n<1) cout << "Greska! Unesli ste krivi broj! ";
  17. } while(n<1);
  18. broj_pacijenata += n;
  19. p_pacijent = new tpacijent [n];
  20. r_pacijent = new tpacijent [n];
  21. for (int i=0; i<broj_pacijenata; i++) {
  22. r_pacijent[i].Xi = rand()%10000+1;
  23. r_pacijent[i].Yi = rand()%10000+1;
  24. r_pacijent[i].P = rand()%4+1;
  25. }
  26. cout << " Zapisi su uspjesno izgenerirani i dodani u polje. ";
  27. }
  28.  
  29. int provjera_zapisa (int P, int broj) {
  30. if (broj == 0)
  31. return -1;
  32. int br = -1;
  33. for (int i=0; i<broj; i++) {
  34. if (FrontQ(red).P > P && br<0) br = i;
  35. EnQueueQ(FrontQ(red),red);
  36. DeQueueQ(red);
  37. }
  38. if (br >= 0) return br;
  39. else return -1;
  40. }
  41.  
  42. void cekanje (int sec) {
  43. clock_t kraj;
  44. kraj = clock() + sec*CLOCKS_PER_SEC;
  45. while (clock() < kraj) {}
  46. }
  47.  
  48. clock_t vrijeme_pocetak, vrijeme_kraj;
  49.  
  50. void simulacija (bool prioritet) {
  51. for (int i=0; i<broj_pacijenata; i++)
  52. p_pacijent[i] = r_pacijent[i];
  53. vrijeme_pocetak = clock();
  54. if (broj_pacijenata == 0) {
  55. cout << " Polje je prazno, koristite mogucnost 1. ";
  56. sim = false;
  57. return;
  58. }
  59. char p_prioritet[4][50] = {"kriticni slucaj", "rizicni slucaj", "slucaj niskog rizika", "nije hitan slucaj"};
  60. tpacijent pacijent;
  61. int i=0, broj=0, br_zap;
  62. cout << endl;
  63. cout << "Simulacija: ";
  64. while (i<broj_pacijenata || !IsEmptyQ(red)) {
  65. cout << "------------------------------------------------------------------------------- ";
  66. if (i == 0) {
  67. pacijent = p_pacijent[i];
  68. i++;
  69. cout << "Prvi pacijent je usao u ordinaciju. Tamo ce provesti " << pacijent.Yi << " vremenskih jedinica. ";
  70. if (prioritet) cout << "Njegov prioritet je " << p_prioritet[pacijent.P-1] << ". ";
  71. cekanje(1);
  72. }
  73. else if (i < broj_pacijenata) {
  74. if (pacijent.Yi > p_pacijent[i].Xi) {
  75. pacijent.Yi -= p_pacijent[i].Xi;
  76. cout << "U cekaonicu je usao novi pacijent.";
  77. if (!prioritet) EnQueueQ(p_pacijent[i], red);
  78. else {
  79. cout << " Njegov prioritet je: " << p_prioritet[p_pacijent[i].P-1] << ". ";
  80. br_zap = provjera_zapisa(p_pacijent[i].P, broj);
  81. if (br_zap >= 0) {
  82. provjera_zapisa (5, br_zap);
  83. EnQueueQ(p_pacijent[i], red);
  84. provjera_zapisa(5, broj-br_zap);
  85. if (br_zap)
  86. cout << "Pacijent je preskocio " << broj - br_zap << " pacijenta/pacijenata u redu jer ima veci prioritet. ";
  87. else
  88. cout << "Pacijent je dosao na celo reda jer ima najveci prioritet. ";
  89. cekanje(1);
  90. }
  91. else EnQueueQ(p_pacijent[i], red);
  92. }
  93. i++;
  94. broj++;
  95. cout << "U cekaonici je trenutno " << broj << " pacijenata. ";
  96. cout << "Pacijent u ordinaciji ce se tamo zadrzati: " << pacijent.Yi << " vremenskih jedinica. ";
  97. cekanje(1);
  98. }
  99. else if (pacijent.Yi < p_pacijent[i].Xi) {
  100. p_pacijent[i].Xi -= pacijent.Yi;
  101. if (IsEmptyQ(red)) {
  102. pacijent = p_pacijent[i];
  103. i++;
  104. }
  105. else {
  106. pacijent = FrontQ(red);
  107. DeQueueQ(red);
  108. broj--;
  109. }
  110. cout << "U ordinaciju je usao novi pacijent. Tamo ce provesti: " << pacijent.Yi << " vremenskih jedinica. ";
  111. if (prioritet) cout << "Njegov prioritet je: " << p_prioritet[pacijent.P-1] << ". ";
  112. cout << "U cekaonici je trenutno " << broj << " pacijent/pacijenata. ";
  113. cekanje(1);
  114. }
  115. else {
  116. cout << "U cekaonicu je usao novi pacijent. ";
  117. if (!prioritet) EnQueueQ(p_pacijent[i], red);
  118. else {
  119. cout << " Njegov prioritet je: " << p_prioritet[p_pacijent[i].P-1] << ". ";
  120. br_zap = provjera_zapisa(p_pacijent[i].P, broj);
  121. if (br_zap >= 0) {
  122. provjera_zapisa(5, br_zap);
  123. EnQueueQ(p_pacijent[i], red);
  124. provjera_zapisa(5, broj - br_zap);
  125. if (br_zap)
  126. cout << "Pacijent je preskocio " << broj - br_zap << " pacijenta/pacijenata u redu jer ima veci prioritet. ";
  127. else
  128. cout << "Pacijent je dosao na celo reda jer ima najveci prioritet. ";
  129. }
  130. else EnQueueQ(p_pacijent[i], red);
  131. }
  132. i++;
  133. pacijent = FrontQ(red);
  134. DeQueueQ(red);
  135. cout << "U ordinaciju je usao novi pacijent. Tamo ce provesti: " << pacijent.Yi << " vremenskih jedinica. ";
  136. if (prioritet) cout << "Njegov prioritet je: " << p_prioritet[pacijent.P-1] << ". ";
  137. cout << "U cekaonici je trenutno " << broj << " pacijent/pacijenata. ";
  138. cekanje(1);
  139. }
  140. }
  141. else {
  142. pacijent = FrontQ(red);
  143. DeQueueQ(red);
  144. cout << "U ordinaciju je usao novi pacijent. Tamo ce provesti: " << pacijent.Yi << " vremenskih jedinica. ";
  145. broj--;
  146. if (prioritet) cout << "Njegov prioritet je: " << p_prioritet[pacijent.P-1] << ". ";
  147. cout << "U cekaonici je trenutno " << broj << " pacijent/pacijenata. ";
  148. }
  149. }
  150. vrijeme_kraj = clock();
  151. broj_pacijenata = 0;
  152. sim = true;
  153. InitQ(red);
  154. }
  155. void vrijeme () {
  156. if (broj_pacijenata == 0 && !sim) {
  157. cout << " Greska! Niste pokrenuli simulaciju. ";
  158. return;
  159. }
  160. cout << " Zadnja simulacija je trajala " << ((float)vrijeme_kraj-vrijeme_pocetak)/1000 << " sec. ";
  161. }
  162. int main () {
  163. int izbor;
  164. InitQ(red);
  165. srand(time(0));
  166. rand();
  167. do {
  168. cout << "Izbornik: ";
  169. cout << "1. Generiranje niza od N parova slucajnih brojeva [1-10000] ";
  170. cout << "2. Simulacija reda lijecnicke ordinacije [bez prioriteta] ";
  171. cout << "3. Simulacija reda lijecnicke ordinacije [s prioritetom] ";
  172. cout << "4. Izracun vremena trajanja simulacije ";
  173. cout << "0. Izlaz iz programa ";
  174. cout << "Vas izbor: ";
  175. cin >> izbor;
  176. switch (izbor) {
  177. case 1:
  178. generiranje();
  179. break;
  180. case 2:
  181. simulacija(0);
  182. break;
  183. case 3:
  184. simulacija(1);
  185. break;
  186. case 4:
  187. vrijeme();
  188. break;
  189. case 0:
  190. cout << endl;
  191. system("pause");
  192. return 0;
  193. }
  194. cout << endl;
  195. } while (1);
  196. }

以上是关于普通类的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

片段(Java) | 机试题+算法思路+考点+代码解析 2023

elasticsearch代码片段,及工具类SearchEsUtil.java

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

为啥片段类应该是公开的?

片段内部静态类和gradle问题