#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <math.h>
#include <fstream>
#include <time.h>
#include <conio.h>
using namespace std;
float weight,height,score,score1,a;
string line;
float bmi_score(float score); // liczy bmi
string reading(string line);//wczytuje date i bmi z pliku
int main()
{
cout << "Program do obliczania Bmi!" << endl;
cout << "--------------------------" << endl;
int choice;
string choice2="1";
while(choice2!="2") // petla ktora wraca do poczatku
{
cout<<"Co chcesz zrobic?!"<<endl;
cout<<"1)Sprawdz swoje BMI!"<<endl; // Pocz¹tek programu
cout<<"2)Odczytaj zapisane BMI!"<<endl;
cout<<"3)Wyjdz z programu!"<<endl;
cout<<"Wybierz: ";
cin>>choice;
while (!cin.good())
{
cin.clear();
cin.ignore(999, '\n'); //sprawdza poprawnosc znakow
system("cls");
cout<<"Zly znak..."<<endl;
cout<<"1)Sprawdz swoje BMI!"<<endl;
cout<<"2)Odczytaj zapisane BMI!"<<endl;
cout<<"3)Wyjdz z programu!"<<endl;
cout<<"Wybierz: ";
cin >> choice;
}
if (choice!=1 && choice!=2 &&choice!=3)
{
cout<<"Wprowadzone zle liczby..."<<endl;
Sleep(2000);
system("cls");
}
else
{
system("cls");
switch(choice) //wybór rozpoczecia
{
case 1:
cout << "Podaj swoja wage(kg)! ";
cin>>weight; //zmienne do BMI
cout << "Podaj swoj wzrost(cm)! ";
cin>>height;
if (weight<=0 || height <=0)
{
cout<<"Waga tak jak i wzrost musza byc wieksze od zera..."<<endl; //Zabezpiecza przed podaniem liczby "0"
}
else
{
cout<<"Twoje BMI!: ";
//wynik BMI
score=bmi_score(score);
cout<<score<<endl;
if (score<16)
{
cout<<"Wyglodzenie!"<<endl;
}
else if (score>=16 && score <=17)
{
cout<<"Od 16 Do 17 pkt."<<endl;
cout<<"Wychudzenie!"<<endl;
} ////////warunki BMI
else if (score>17 && score <18.5)
{
cout<<"Od 17 Do 18.5 pkt."<<endl;
cout<<"Niedowaga!"<<endl;
}
else if (score>=18.5 && score <25)
{
cout<<"Od 18.5 Do 25 pkt."<<endl;
cout<<"Waga prawidlowa!"<<endl;
}
else if (score>=25 && score <30)
{
cout<<"Od 25 Do 30 pkt."<<endl;
cout<<"Nadwaga!"<<endl;
}
else if (score>=30 && score <35)
{
cout<<"Od 30 Do 35 pkt."<<endl;
cout<<"I stopien otylosci!"<<endl;
}
else if (score>35)
{
cout<<"Od 35 Do ~ pkt."<<endl;
cout<<"II stopien otylosci!"<<endl;
}
}
cout<<endl<<"Co chcesz teraz zrobic ?"<<endl;
cout<<"1)Wroc do poczatku!"<<endl;
cout<<"2)Wyjdz z programu!"<<endl;
cout<<"Wybierz: ";
//wraca lub konczy program
cin>>choice2;
system("cls");
if (choice2=="2")
{
system("cls");
cout<<"Do zobaczenia !..."<<endl;
Sleep(3000); //wyjscie z programu
exit(0);
}
else if (choice2!="1" && choice2!="2")
{
cout<<"Wprowadzony zly znak..."<<endl;
Sleep(3000);
system("cls");
}
break;
case 2:
cout<<reading(line)<<endl;
cout<<"Kliknij 'dowolny klawisz'"<<endl;
getch(); //wczytuje z pliku
system("cls");
break;
case 3:
system("cls");
cout<<"Do zobaczenia !..."<<endl;
Sleep(3000); //wyjscie z programu
exit(0);
break;
}
}
}
return 0;
}
float bmi_score(float score)
{
score=weight/pow(height,2)*10000 ; //liczy bmi
time_t czas;
time( & czas ); //podaje dokładny czas
char * data = ctime( & czas );
fstream plik;
plik.open("bmi.txt",ios::out | ios::app); // zapisuje bmi i date do pliku
plik<<"BMI: "<<score<<" /Data-";
plik<<data;
plik.close();
return score;
};
string reading(string line)
{
fstream plik;
plik.open("bmi.txt",ios::in);
if(plik.good()==false) ////wczytuje date i bmi z pliku
{
cout<<"Plik nie istnieje .."<<endl;
}
while(getline(plik,line))
{
cout<<line<<endl;
}
plik.close();
return line;
};
Proszę o jakąś ocene tego programu , a raczej o wskazówki co , jak i gdzie mozna by było poprawić lub zapisać inaczej . Dopiero zaczynam i to jeden z moich pierwszych programów