Ich habe ein Problem, mit einem c++ Programm

ich habe hier ein c++ programm, mit dem ich zwischen flächen und volumen progamm wählen kann und diese dann berechnen (dies habe ich mit funktionen programmiert.
doch es funktioniert nicht, so wie ich es mir vorgestellt habe ;-(

wär nett wenn ihr mir helfen könntet

Volumen - und Flächenprogramm :
siehe dateianhang
 
Quellcode kannst du mit [code_][_/code] posten ohne _ posten.
Ich mache das mal für dich, damit sich nicht jeder die rar ziehen muss.

Code:
#include <iostream>
#include <cmath>

using namespace std;

// Volumen

double quader()
{
    double a, b, c, v;
    cout<< " Geben Sie die Laenge in cm ein!" <<endl;  
    cin>> a;
    cout<< " Geben Sie die Breite in cm ein!" <<endl;
    cin>> b;
    cout<< " Geben Sie die Tiefe in cm ein!" <<endl;
    cin>> c;
    v=a*b*c;
    //cout<< " Das Volumen des Quaders betraegt " <<v<< " Kubikcentimeter. "<<endl;
    return v;
}
double wuerfel()
{
    double a, v;
    cout<< " Geben Sie die Laenge in cm ein!" <<endl;
    cin>> a;
    v=a*a*a;
    //cout<< " Das Volumen des Wuerfels betraegt " <<v<< " Kubikcentimeter." <<endl;
    return v;
}
double kegel()
{
    double h, r, v;
    cout<< " Geben Sie die Hoehe in cm ein!" <<endl;
    cin>> h;      
    cout<< " Geben Sie den Radius in cm ein!" <<endl;
    cin>> r;
    v=M_PI*r*r*h/3;
    //cout<< " Das Volumen des Kegels betraegt" <<v<< " Kubikcentimeter. " <<endl;
    return v;
}
double kugel()
{
    double r, v;
    cout<< " Geben Sie den Radius in cm an!" <<endl;
    cin>> r;
    v=4.0/3*r*r*r*M_PI;
    //cout<< " Das Volumen der Kugel betraegt " <<v<< " Kubikcentimeter. " <<endl;
    return v;
}
double zylinder()
{
    double r, h, v;
    cout<< " Geben Sie die Radius in cm ein!" <<endl;
    cin>> r; 
    cout<< " Geben Sie die Hoehe in cm ein!" <<endl;
    cin>> h;
    v=r*r*h*M_PI;
    //cout<< " Das Volumen des Zylinder betraegt " <<v<< " Kubikcentimeter. \n" <<endl;
    return v;
}

// Fl�che

double quadrat()
{
    double a, A;
    cout<< " Geben Sie die Kantenlaenge ein. \n " <<endl;
    cin>> a;   
    A=a*a;
    //cout<< " Die Flaeche des Quadrats betraegt " <<A<< " Quadratcentimeter! \n " <<endl;
    return A;
}
double dreieck()
{
    double g, h, A;
    cout<< " Geben Sie die Grundseite ein. \n " <<endl;
    cin>> g;
    cout<< " Geben Sie die Hoehe ein. \n " <<endl;
    cin>> h;
    A=g*h/2;
    //cout<< " Die Faeche des Dreiecks Betraegt " <<A<< " Quadratcentimeter \n " <<endl; 
    return A;
}
double kreis()
{
    double r, A;
    cout<< " Geben Sie den Radius ein. \n " <<endl;
    cin>> r;
    A=M_PI*r*r;  
    //cout<< " Die Flaeche des Kreises betraegt " <<A<< " Quadratcentimeter! \n " <<endl;
    return A;
}
double rechteck()
{
     double a, b, A;
     cout<< " Geben Sie die Laenge a ein. " <<endl;
     cin>> a;
     cout<< " Geben Sie die Laenge b ein. " <<endl;
     cin>> b;
     A=a*b;
     //cout<< " Das Volumen des Rechtecks betraegt " <<A<< " Quadratcentimeter! \n " <<endl;
     return A;
}

void volumen()
{
     int wahl;
     double v;
     
    
    
    cout<< " Was moechten Sie berechnen? \n " <<endl;
    cout<< " Quader   (1)\n Wuerfel  (2)\n Kegel    (3)\n Kugel    (4)\n Zylinder (5) " <<endl;
    cin>>wahl;

    do
    {
    switch(wahl)
    {
         case 1:
               {             
                    v=quader();
               }
               break;
         case 2:
               {   
                    v=wuerfel();
               }
               break;
         case 3:
               {
                    v=kegel();
               }
               break;
         case 4:
               {
                    v=kugel();
               }
               break;
         case 5:
               {
                    v=zylinder();
               }
               break;
        default:
               {
                    cout<< " Sie haben sich vertippt!!! " <<endl;
                    cout<< " Geben Sie eine oben angegebene Zahl ein. " <<endl;  
               }    
    }
    }
    while((wahl<1)||(wahl>5));
    cout<< " Das Volumen betraegt " <<v<< " Kubikcentimeter " <<endl;
}

void flaeche()
{
     int wahl;
     double A; 
     do
     {
         switch(wahl)
         {   
              case 1:
                    {    cout<<"Quadratsflaeche"<<endl;       
                         A=quadrat();
                         cout<< " Die Flaeche betraegt " <<A<< " Quadratcentimeter " <<endl;
                    }
                    break;
              case 2:
                    {    cout<<"Dreiecksflaeche"<<endl;
                         A=dreieck();
                         cout<< " Die Flaeche betraegt " <<A<< " Quadratcentimeter " <<endl;
                    }
                    break;
              case 3:
                    {    cout<<"Kreisflaeche"<<endl;
                         A=kreis();
                         cout<< " Die Flaeche betraegt " <<A<< " Quadratcentimeter " <<endl;
                    }
                    break;
              case 4:
                    {    cout<<"Rechtecksflaeche"<<endl;
                         A=rechteck();
                         cout<< " Die Flaeche betraegt " <<A<< " Quadratcentimeter " <<endl;
                    }
                    break;
             default:
                    {
                         cout<< " Sie haben sich vertippt!!! " <<endl;
                         cout<< " Geben Sie eine Zahl ein, die oben angegeben ist " <<endl;
                    }
         }
}
while((wahl<1)||(wahl>4));

}

int main()
{
    int figurwahl;
    do
    {
    
    cout<< " Was moechten Sie berechnen? \n " <<endl;
    cout<< " Volumen  (1)\n Flaeche  (2) " <<endl;
    cin>>figurwahl;
      
    switch(figurwahl)
    {
         case 1:
               {             
                    volumen();
               }
               break;
         case 2:
               {    
                    flaeche();
               }
               break;
        default:
               {
                    cout<< " Sie haben sich vertippt!!! " <<endl;
                    cout<< " Geben Sie eine oben angegebene Zahl ein. " <<endl;  
               }
    }
    }
    while((figurwahl<1)||(figurwahl>4));
    
system ("Pause");
return 0;
}
 
du hast vergessen in der Funktion flaeche() einen Wert in "wahl" einzulesen.
Code:
void flaeche()
{
     int wahl;
     double A; 
     do
     {
         cin >> wahl; //   <--- hier
         switch(wahl)
         {
...
so sollte es laufen, musst halt nur noch so ein schönes menü wie in volumen() machen...


mfg loose
 
Hi Leute, ich wollte fragen ob mir nochmal bei einem weiterem c++-Programm helfen könntet?

Auswahl zwischen der berechnung von idealgewicht und des BMI wertes, mit funktionen und switch schleifen

Programm:

#include <iostream>
using namespace std;
//BMI=Body Maß Index
//BMI über 30 Übergewicht, das die Gesundheit belastet
//BMI 26 - 30 Leichtes Übergewicht
//BMI 18 - 25 Normalgewichtig
//BMI unter 18 Gewicht zu niedrig, Gesundheit belastet

//wünschenswerter BMI unter Berücksichtigung des Alters
//19 - 24 Jahre BMI 19 bis 24
//24 - 34 Jahre BMI 20 bis 25
//35 - 44 Jahre BMI 21 bis 26
//45 - 54 Jahre BMI 22 bis 27
//55 - 64 Jahre BMI 23 bis 28
//ab 65 Jahre BMI 24 bis 29
// Berechnung des BMI - Wertes:

// BMI = Gewicht in kg : (Körpergröße in m)?

//Idealgewicht=Normalgewicht - 10 %

double idealgewicht()
{
double k, n, i, z;//k=körpergröße, n=normalgewicht, i=idealgewicht, g=gewicht in kg, z=zwischenrechnung

cout<< " Geben Sie Ihre Körpergroesse in cm ein.\n [Hinweis]\n Diese Berechnung ist für Personen\n ab 19 Jahren interessant, da für\n alle Personen unter 19 Jahren \nder Wachstum noch nich abgeschlossen ist!!! " <<endl;
cin>> k;
n=k-100;
z=(n/100)*10;
i=n-z;
cout<< " Ihr Idealgewicht müsste " <<i<< " kg betragen. " <<endl;
}
double gewichtsklasse()
{
double BMI, k, g;//BMI=Body Maß Index, k=körpergröße in m, g=gewicht in kg
cout<< " Geben Sie Ihre Körpergroesse in cm ein.\n [Hinweis]\n Diese Berechnung ist für Personen\n ab 19 Jahren interessant, da für\n alle Personen unter 19 Jahren \nder Wachstum noch nich abgeschlossen ist!!! " <<endl;
cout<< " Geben Sie Ihre Koerpergroesse in m ein. " <<endl;
cin>> k;
cout<< " Geben Sie Ihr Gewicht in kg ein. " <<endl;
cin>> g;
BMI=g/(k*k);

cout<< " Ihr BMI - Wert betraegt " <<BMI<< " . " <<endl;
cout<< " Sie können an der Tabelle erkennen, ob sie an Uebergewicht oder Untergewicht leiden, oder ob Sie ein Normales Gewichtsverhalten haben. " <<endl;
cout<< " Body Maß Index [BMI]: " <<endl <<endl;
cout<< " BMI über 30 Übergewicht, das die Gesundheit belastet " <<endl;
cout<< " BMI 26 - 30 Leichtes Übergewicht " <<endl;
cout<< " BMI 18 - 25 Normalgewichtig " <<endl;
cout<< " BMI unter 18 Gewicht zu niedrig, Gesundheit belastet " <<endl <<endl;

cout<< " Wuenschenswerter BMI - Wert unter Beruecksichtigung des Alters " <<endl <<endl;
cout<< " 19 - 24 Jahre BMI 19 bis 24 " <<endl;
cout<< " 24 - 34 Jahre BMI 20 bis 25 " <<endl;
cout<< " 35 - 44 Jahre BMI 21 bis 26 " <<endl;
cout<< " 45 - 54 Jahre BMI 22 bis 27 " <<endl;
cout<< " 55 - 64 Jahre BMI 23 bis 28 " <<endl;
cout<< " ab 65 Jahre BMI 24 bis 29 " <<endl;
}

int main()
{
char wahl;
double i, BMI;

cout<< " Berechnung des Idealgewichts [1] " <<endl;
cout<< " Berechnung von Über -oder Untergewicht [2] " <<endl;
cin>> wahl;

do
{
switch (wahl)
{
case 1:
{
i=idealgewicht();
{
break;
case 2:
{
BMI=gewichtsklasse();
}
break;
default:
{
cout<< " Du hast Wurstfinger ^^....versuch die Tasten richtig zu treffen!!! " <<endl;
}
}
}
while((wahl>2)||(wahl<1));


return 0;
}
 
Hallo!

Also, hab dein Sourcecode mal schnell angeschaut:
- in main() hast du "wahl" so deklariert: char wahl
Es gehört aber int wahl;
denn wenn char wahl verwenden willst, musst du in deinem switch auch auf ASCII-Zeichen abfragen (ich glabue 1 müsste so um 85 sein)

Weiters schau dir mal meine switch an:

Hier nochmal main():
Code:
int main()
{
      //char wahl;
      int wahl = 0; //<--!!!!!!!!!!!!!!
      double i, BMI;

      cout<< " Berechnung des Idealgewichts [1] " <<endl;
      cout<< " Berechnung von Über -oder Untergewicht [2] " <<endl;
      cin >> wahl;

      do
      {
          switch (wahl)
          {
              case 1:
              i=idealgewicht();
              break;
              case 2:
              BMI=gewichtsklasse();
              break;
              default:
              cout<< " Du hast Wurstfinger ^^....versuch die Tasten richtig zu treffen!!! " <<endl;

          }
       }while((wahl>2)||(wahl<1));

      return 0;
}

Im switch brauchst du nicht soviele geschweifte Klammern, das ist ja der Vorteil am switch. Weiters solltest du Umlaute in Konsolenanwedungen vermeiden, diese schauen nicht gut aus.
Und achte ein bisschen auf die Compilerwarnungen, diesem können manchmal gute Hinweise geben, auch wenn das in diesem Fall nicht gewesen wäre.

Und debuggen hätte schon wieder geholfen. ;)
Bitte auch deinen Code codnen [CO*DE]Hier dein Sourcecode[/CO*DE] (ohne die *)
Und eine kurze Fehlerbeschreibung wäre auch fein!

EDIT: Zu spät, Problem ist ja schon in einem anderen Thread gelöst worden!
mfg. shadowrunner
 
Zurück
Oben