C++ BMI Rechner - 2. Projekt

mozo007

New member
Hallo,
ich habe mir gestern soo aus Langeweile einen BMI(Body Maß Index) Rechner geschrieben und wollte von euch ein paar verbesserungen hören.

Code:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

main()
{
double a;
double b;
double c;
double jn;


cout<< "BMI Rechner"<<endl;
cout<< "_________________________________"<<endl<<endl;
cout<< "Gewicht in KG: ";
cin>> a;
cout<< ""<<endl;
cout<< "Koerpergroesse in m: ";
cin>> b;

c=a/(b*b);


   if(c<16)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben starkes Untergewicht"<<endl;
              cout<< "_________________________________"<<endl;
   }
   if(c>=16 && c<17)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben maeßiges Untergewicht"<<endl;
              cout<< "_________________________________"<<endl;
   }
     if(c>=17 && c<18.5)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben leichtes Untergewicht"<<endl;
              cout<< "_________________________________"<<endl;
   }
     if(c>=18.5 && c<25)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben Normalgewicht"<<endl;
              cout<< "_________________________________"<<endl;
   }
     if(c>=25 && c<30)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben Praeadipositas"<<endl;
              cout<< "_________________________________"<<endl;
   }
     if(c>=30 && c<35)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben Adipositas Grad I"<<endl;
              cout<< "_________________________________"<<endl;
   }
     if(c>=35 && c<40)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben Adipositas Grad II"<<endl;
              cout<< "_________________________________"<<endl;
   }
     if(c>=40)
   {
              cout<< "_________________________________"<<endl<<endl;
              cout<< "BMI= "<<c<<endl;
              cout<< "Sie haben Adipositas Grad III"<<endl;
              cout<< "_________________________________"<<endl;
   }
getch();
}
Mit freundlichen Grüßen,
Maurice H.
 
  1. Wieder das Problem mit Division durch Null. Auch wenn niemand eine Größe von "0 Metern" hat, bei einer Falscheingabe stürzt dein Programm ab.
  2. Wenn du ein Switch-Case verwendest, hast du anstatt 8 Abfragen nur noch eine - der Rest kann ignoriert werden.
  3. Unbenutzte Variable jn
  4. Eigentlich (bin mir nicht sicher) sollte es reichen, wenn du nur die iostream.h einbindest.
  5. Ein return 0; wäre noch vorteilhaft
  6. Ich würds schön finden, wenn du mit der Ausgabe von Text auf der Konsole etwas weiter kommst. Die Ausgabe in der Form cout << "________..."; könnte man auch folgendermaßen machen:
    Code:
    cout << setfill ('_') << setw (80); // 80 ist die Default-Breite der Konsole

Ich vermute mal, du hast dir wieder einfach nur irgendeine Aufgabe gesucht. Das ist zwar nicht schlecht, um gelerntes zu vertiefen. Aber so kommst du nicht weiter (siehe #6). Eine Alternative zum Galileo Openbook (C von A bis Z) wäre noch Wikibooks: (incl. Beispiele wie Taschenrechner).

Edit:
7. Gibt der Benutzer anstatt Zahlen einfach Buchstaben ein, kommt Murks raus.​
 
Zuletzt bearbeitet:
Ja, ich habe es aus Langeweile gemacht^^

Nunja danke für das buch.

Ich habe das setfill mal ausprobier, geht aber nicht muss ich dafür noch etwas includen?

nunja werde jetzt erstmal das buch lesen
 

Online-Statistiken

Zurzeit aktive Mitglieder
1
Zurzeit aktive Gäste
39
Besucher gesamt
40

Beliebte Forum-Themen

Zurück
Oben Unten