fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. /*
  7.  * volumeDrink - objem napoje je v milimetrech
  8.  * contentAlcohol - obsah alkoholu
  9.  * 0.8 je hustota ethanolu
  10.  * - vraci vysledek v [g]
  11.  */
  12. static float WeightEthanol(float volumeDrink, float contentAlcohol)
  13. {
  14. return (volumeDrink * contentAlcohol * 0.8f) / 100;
  15. }
  16.  
  17. /*
  18.  * volumeEthanol - celkove mnozstvi etanolu v [g]
  19.  * weightConsumer - vaha konzumenta v [kg]
  20.  * isMale - jedna se o muze?
  21.  * - jedna se o [g/kg]
  22.  */
  23. static float PerMille(float volumeEthanol, float weightConsumer, bool isMale)
  24. {
  25. float r = isMale ? 0.7f : 0.6f;
  26. return volumeEthanol / (weightConsumer * r);
  27. }
  28.  
  29. /*
  30.  * weightConsumer - vaha konzumenta v [kg]
  31.  * isMale - jedna se o muze?
  32.  * - vraci hmotnost ethanolu v [g], ktere telo odboura za 1h na 1Kg
  33.  */
  34. static float EthanolEliminates(float weightConsumer, bool isMale)
  35. {
  36. float beta = isMale ? 0.1f : 0.085f;
  37. return weightConsumer * beta;
  38. }
  39.  
  40. struct Clovek
  41. {
  42. float hmotnost, celkovyObjem, celkovyObsah;
  43. bool jeMuz;
  44.  
  45. Clovek()
  46. {
  47. hmotnost = 0;
  48. celkovyObjem = 0;
  49. celkovyObsah = 0;
  50. jeMuz = true;
  51. }
  52. };
  53.  
  54. struct Bar
  55. {
  56. int vino, malePivo, velkePivo, malaKoralka, velkaKoralka;
  57. Clovek clovek;
  58.  
  59. Bar()
  60. {
  61. vino = 0;
  62. malePivo = 0;
  63. velkePivo = 0;
  64. malaKoralka = 0;
  65. velkaKoralka = 0;
  66. }
  67. };
  68.  
  69. int main()
  70. {
  71. Bar bar;
  72.  
  73. cout << "Jste muz nebo zena? (1/0) :: ";
  74. cin >> bar.clovek.jeMuz;
  75.  
  76. cout << "Zadejte vasi hmotnost v Kg :: ";
  77. cin >> bar.clovek.hmotnost;
  78.  
  79. cout << endl;
  80. puts("\t+-------------------------+");
  81. puts("\t| 1. Vino |");
  82. puts("\t| 2. Male pivo |");
  83. puts("\t| 3. Velke pivo |");
  84. puts("\t| 4. Mala koralka |");
  85. puts("\t| 5. Velka koralka |");
  86. puts("\t| ----------------------- |");
  87. puts("\t| 6. Konec |");
  88. puts("\t+-------------------------+");
  89. cout << endl;
  90. fflush(stdin);
  91.  
  92. char option;
  93.  
  94. while ((option = (char)getchar()) != '6')
  95. {
  96. string alcohol;
  97.  
  98. switch (option)
  99. {
  100. case '1':
  101. alcohol = "vino";
  102. bar.vino++;
  103. bar.clovek.celkovyObjem += 200;
  104. bar.clovek.celkovyObsah += 12;
  105. break;
  106.  
  107. case '2':
  108. alcohol = "male pivo";
  109. bar.malePivo++;
  110. bar.clovek.celkovyObjem += 300;
  111. bar.clovek.celkovyObsah += 4;
  112. break;
  113.  
  114. case '3':
  115. alcohol = "velke pivo";
  116. bar.velkePivo++;
  117. bar.clovek.celkovyObjem += 500;
  118. bar.clovek.celkovyObsah += 4;
  119. break;
  120.  
  121. case '4':
  122. alcohol = "mala koralka";
  123. bar.malaKoralka++;
  124. bar.clovek.celkovyObjem += 20;
  125. bar.clovek.celkovyObsah += 40;
  126. break;
  127.  
  128. case '5':
  129. alcohol = "velka koralka";
  130. bar.velkaKoralka++;
  131. bar.clovek.celkovyObjem += 50;
  132. bar.clovek.celkovyObsah += 40;
  133. break;
  134. }
  135.  
  136. if (alcohol.length())
  137. cout << "Objednali jste si: " << alcohol << "\n\n";
  138. }
  139. cout << "Vase objednavka je:" << endl;
  140. cout << " Vino: " << bar.vino << "x\n";
  141. cout << " Male pivo: " << bar.malePivo << "x\n";
  142. cout << " Velke pivo: " << bar.velkePivo << "x\n";
  143. cout << " Mala koralka: " << bar.malaKoralka << "x\n";
  144. cout << " Velka koralka: " << bar.velkaKoralka << "x\n\n";
  145.  
  146. float hmotnostEthanolu = WeightEthanol(bar.clovek.celkovyObjem, bar.clovek.celkovyObsah);
  147. float promile = PerMille(hmotnostEthanolu, bar.clovek.hmotnost, bar.clovek.jeMuz);
  148.  
  149. cout << "Vase hodnota promile je: " << promile << " !";
  150.  
  151. fflush(stdin);
  152. cin.get();
  153. return 0;
  154. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty