#include <iostream>
#include <string>
using namespace std;
/*
* volumeDrink - objem napoje je v milimetrech
* contentAlcohol - obsah alkoholu
* 0.8 je hustota ethanolu
* - vraci vysledek v [g]
*/
static float WeightEthanol(float volumeDrink, float contentAlcohol)
{
return (volumeDrink * contentAlcohol * 0.8f) / 100;
}
/*
* volumeEthanol - celkove mnozstvi etanolu v [g]
* weightConsumer - vaha konzumenta v [kg]
* isMale - jedna se o muze?
* - jedna se o [g/kg]
*/
static float PerMille(float volumeEthanol, float weightConsumer, bool isMale)
{
float r = isMale ? 0.7f : 0.6f;
return volumeEthanol / (weightConsumer * r);
}
/*
* weightConsumer - vaha konzumenta v [kg]
* isMale - jedna se o muze?
* - vraci hmotnost ethanolu v [g], ktere telo odboura za 1h na 1Kg
*/
static float EthanolEliminates(float weightConsumer, bool isMale)
{
float beta = isMale ? 0.1f : 0.085f;
return weightConsumer * beta;
}
struct Clovek
{
float hmotnost, celkovyObjem, celkovyObsah;
bool jeMuz;
Clovek()
{
hmotnost = 0;
celkovyObjem = 0;
celkovyObsah = 0;
jeMuz = true;
}
};
struct Bar
{
int vino, malePivo, velkePivo, malaKoralka, velkaKoralka;
Clovek clovek;
Bar()
{
vino = 0;
malePivo = 0;
velkePivo = 0;
malaKoralka = 0;
velkaKoralka = 0;
}
};
int main()
{
Bar bar;
cout << "Jste muz nebo zena? (1/0) :: ";
cin >> bar.clovek.jeMuz;
cout << "Zadejte vasi hmotnost v Kg :: ";
cin >> bar.clovek.hmotnost;
cout << endl;
puts("\t+-------------------------+");
puts("\t| 1. Vino |");
puts("\t| 2. Male pivo |");
puts("\t| 3. Velke pivo |");
puts("\t| 4. Mala koralka |");
puts("\t| 5. Velka koralka |");
puts("\t| ----------------------- |");
puts("\t| 6. Konec |");
puts("\t+-------------------------+");
cout << endl;
fflush(stdin);
char option;
while ((option = (char)getchar()) != '6')
{
string alcohol;
switch (option)
{
case '1':
alcohol = "vino";
bar.vino++;
bar.clovek.celkovyObjem += 200;
bar.clovek.celkovyObsah += 12;
break;
case '2':
alcohol = "male pivo";
bar.malePivo++;
bar.clovek.celkovyObjem += 300;
bar.clovek.celkovyObsah += 4;
break;
case '3':
alcohol = "velke pivo";
bar.velkePivo++;
bar.clovek.celkovyObjem += 500;
bar.clovek.celkovyObsah += 4;
break;
case '4':
alcohol = "mala koralka";
bar.malaKoralka++;
bar.clovek.celkovyObjem += 20;
bar.clovek.celkovyObsah += 40;
break;
case '5':
alcohol = "velka koralka";
bar.velkaKoralka++;
bar.clovek.celkovyObjem += 50;
bar.clovek.celkovyObsah += 40;
break;
}
if (alcohol.length())
cout << "Objednali jste si: " << alcohol << "\n\n";
}
cout << "Vase objednavka je:" << endl;
cout << " Vino: " << bar.vino << "x\n";
cout << " Male pivo: " << bar.malePivo << "x\n";
cout << " Velke pivo: " << bar.velkePivo << "x\n";
cout << " Mala koralka: " << bar.malaKoralka << "x\n";
cout << " Velka koralka: " << bar.velkaKoralka << "x\n\n";
float hmotnostEthanolu = WeightEthanol(bar.clovek.celkovyObjem, bar.clovek.celkovyObsah);
float promile = PerMille(hmotnostEthanolu, bar.clovek.hmotnost, bar.clovek.jeMuz);
cout << "Vase hodnota promile je: " << promile << " !";
fflush(stdin);
cin.get();
return 0;
}