#include <iostream>
#include <string> //Biblioteket som tillåter användandet av strings
#include <iomanip>
#include <math.h> //Biblioteket som tillåter mig att använda pow() för upphöjning
using namespace std;
int main()
{
setlocale(LC_ALL, ""); //Möjligtför för programmet att skriva Å, Ä och Ö
int decision1, lenght, weight;
float bmi; //Använder float för att den ska kunna räknas ut med decimaler.
string gender, repeat = "n";
do //Början av do-while loopen som tillåter användaren att köra om programmet och avsluta det vid behov.
{
cin.clear(); //Tömmer cin på värden från förra körningen
system("cls"); //Tömmer skärmen på text från förra körningen
cout << "********************\n****BMI RÄKNARE*****\n********************\n" << endl;
cout << "Välkommen till mitt BMI program, vänligen mata in siffran motsvarande vad du\nvill göra\n" << endl;
cout << "1. Börja räkna\n2. Visa information\n0. Avsluta\n\nAnge ditt val: "; //Menyn
decision1: /*Gjorde om uppgiften från vad jag hade tänkt från början och försökte att göra den utan kunskap
om while vi fick efter det egentligen kunde göra, därför finns det två stycken goto i koden. en av dem hoppar hit*/
cin >> decision1;
if(decision1 == 1)
{
system("cls"); //Tömmer skärmen på texten från menyn.
cout << "Vänligen ange din:\n\nLängd (cm): ";
cin >> lenght; //ANvändaren anger sin längd i cm
cout << "\nVikt (kg): ";
cin >> weight; //ANvändaren anger sin vikt
lenght = lenght/100; //Programmet gör om cm till m
bmi = weight / pow(lenght, 2); //Programmet räknar ut användarens bmi
cout << "\nAnge ditt kön (man/kvinna): ";
genderDecision: //Andra stället dit ett goto hoppar
cin >> gender; //Användaren anger sitt kön
if(gender == "man") //If satsen som körs om användaren anger sitt kön som "man"
{
if(bmi < 20) //If satsen som körs om användaren är man ochär underviktig
{
cout << "\n\nDitt BMI är " << bmi << ", vilket klassar dig som underviktig. Du behöver gå upp " << 20 - bmi << " kg för att bli normalviktig." << endl;
}
else if(bmi <= 24.9 && bmi >= 20) //If satsen som körs om användaren är man och normalviktig
{
cout << "\n\nDitt BMI är " << bmi << ", vilket klassar dig som normalviktig." << endl;
}
else if (bmi >= 25 && bmi <= 29.9) //If satsen som körs om användaren är man och överviktig
{
cout << "\n\nDitt BMI är " << bmi << ", vilket klassar dig som överviktig. Du behöver gå ner " << bmi - 25.1 << " kg för att bli normalviktig." << endl;
}
else //If satsen som körs om användaren är man och lider av fetma
{
cout << "\n\nDitt BMI är "<< bmi << ", vilket betyder att du lider av fetma. Du behöver gå ner " << bmi - 25.1 << " kg för att bli normalviktig." << endl;
}
}
else if(gender == "kvinna")
{
if(bmi > 18.5) //If satsen som körs om användaren är kvinna och underviktig
{
cout << "\n\nDitt BMI är " << bmi << ", vilket klassar dig som underviktig. Du behöver gå upp " << 18.5 - bmi << " kg för att bli normalviktig." << endl;
}
else if(bmi <= 23.9 && bmi >= 28.5) //If satsen som körs om användaren är kvinna och normalviktig
{
cout << "\n\nDitt BMI är " << bmi << ", vilket klassar dig som normalviktig." << endl;
}
else if (bmi >= 24 && bmi <= 28.9) //If satsen som körs om användaren är kvinna och överviktig
{
cout << "\n\nDitt BMI är " << bmi << ", vilket klassar dig som överviktig. Du behöver gå ner " << bmi - 24.1 << " kg för att bli normalviktig." << endl;
}
else //If satsen som körs om användaren är kvinna och lider av fetma
{
cout << "\n\nDitt BMI är "<< bmi << ", vilket betyder att du lider av fetma. Du behöver gå ner " << bmi - 24.1 << " kg för att bli normalviktig." << endl;
}
}
else //Detta körs om användaren inte matar in "man" eller "kvinna" som kön
{
cout << "Felaktig inmatning. Vänligen ange kön (man/kvinna): ";
goto genderDecision; //Skickar tillbaka användaren till dä rde matar in kön
}
cout << "\nVill du avsluta programmet (j/n): "; //Användaren får välja att stänga av programmet eller köra om.
cin >> repeat;
}
else if (decision1 == 2) //Denna if sats körs om användaren matar in 2 för att se information
{
system("cls");
cout << "BMI eller, Body Mass Index, anger relationen mellan vikt och längd enligt beräkningen kroppsvikt i kilogram dividerat med kroppslängden i meter i kvadrat." << endl;
cout << "När man pratar om BMI så finns det 4 olika viktklasser: Underviktig, normalviktig, överviktig och fetma." << endl;
cout << "Följande är gränsvärdena för de olika viktklasserna definierade av WHO:\n\n" << endl;
cout << "Viktklasser Män: Kvinnor:\nUndervikt Under 20 Under 18,5\nNormalvikt 20 - 24,9 18,5 - 23,9\nÖvervikt 25 - 29,9 24 - 28,9\nFetma 30 eller mer 29 eller mer" << endl;
cout << "\nKlicka enter för att komma tillbaka till menyn." << endl;
cin.ignore(1000, '\n');
cin.get(); //Pausar programmet så att användaren hinner läsa texten.
}
else //Denna del var för om användaren väljer att avsluta programmet. Den ändrar repeat variabeln så att do-while loopen inte körs igen.
{
repeat = "j";
}
} while (repeat == "n"); //Anger att loopen körs så länge variabeln "repeat" är lika med "n"
system("pause");
return 0;
}