Programm zur Prozentrechnung



  • Hallo an alle!Habe ein Problem mit einem Rechner zum ermitteln von Prozent-werten,-sätzen und Grundwerten.Wäre gut wenn sich das mal jemand anschauen könnte.

    Hier der Code:

    #include <iostream>
    #include <conio.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <cmath>
    
    using namespace std;
    
    double prozent(int ausw, double P, double G, double W);
    
    int main()
    {
        int auswahl = 0;
        double ergebnis = 0.0;
        double W = 0.0;
        double G = 0.0;
        double p = 0.0;
        char antwort;
    
        do
        {
          cout << "Prozentrechner Next_Generation\n" <<
                  "==============================\n" <<
                  "[1]Grundwert berechnen\n" <<
                  "[2]Prozentwert berechnen\n" <<
                  "[3]Prozentsatz berechnen\n" <<
                  "[0]Beenden\n\n" <<
                  "Waehlen sie ein Menue aus: ";
          cin >> auswahl;
    
          system ("cls");
    
          if ( auswahl == 0)
               return 0;
    
          ergebnis = prozent (auswahl, W, G, p);
    
                if ( auswahl == 1 )
                {
                   cout << "Alle Angaben mit Kommastellen müssen mit einem Punkt geschrieben werden!\n\n";
    
                   cout << "Geben sie bitte den Prozentwert (W) an: ";
                   cin >> W;
    
                   cout << "\nGeben sie bitte den Prozensatz (p) an: ";
                   cin >> p;
    
                   cout << "\n\nDer Grundwert lautet: " << setprecision(2) << fixed << ergebnis;
    
                   }
                   else if ( auswahl == 2 )
                   {
                      cout << "Alle Angaben mit Kommastellen müssen mit einem Punkt geschrieben werden!\n\n";
    
                      cout << "Geben sie bitte den Prozensatz (p) an: ";
                      cin >> p;
    
                      cout << "\nGeben sie bitte den Grundwert (G) an: ";
                      cin >> G;
    
                      cout << "\n\nDer Prozentwert lautet: " << setprecision(2) << fixed << ergebnis;               
    
                      }
                      else if ( auswahl == 3 )
                      {
                         cout << "Alle Angaben mit Kommastellen müssen mit einem Punkt geschrieben werden!\n\n";
    
                         cout << "Geben sie bitte den Prozentwert (W) an: ";
                         cin >> W;
    
                         cout << "\nGeben sie bitte den Grundwert (G) an: ";
                         cin >> G;
    
                         cout << "\n\nDer Prozentsatz lautet: " << setprecision(2) << fixed << ergebnis;
    
                         }
    
          cout << "\n\nWollen sie zurueck ins Menue?\n" <<
                  "< J/N >";
          cin >> antwort; 
    
          system ("cls");          
    
        }while ( antwort == 'j');                 
    
    }
    double prozent(int ausw, double p, double G, double W)      //Funktion zur Prozentrechnung
    {
         double res = 0.0;
    
         switch(ausw)
         {
           case 1 :
           {
                res = (W * 100) / p;
                break;     
           }
           case 2 :
           {
                res = (p * G) / 100;
                break;     
           }
           case 3 :
           {
                res = (W * 100) / G;
                break;     
           }             
         }     
    
     return res;    
    }
    

    Schonmal vielen Dank für etwaige Hilfe.



  • Nicht der Herr Ries schrieb:

    Schonmal vielen Dank für etwaige Hilfe.

    Hilfe wobei?



  • Ouh, ja in der eile noch eine entscheidende Frage oder Problemdarstellung (um es besser zu treffen) vergessen 😃

    Ja das Programm spuckt falsche oder garkeine Ergebnisse ( 0.00 ) aus und ich weiß nicht woran es liegt.



  • Hi Herr Ries,

    also erstmal wuerde ich auf ne Division mit ner Integerzahl wie in case 2 unten verzichten. Das waere jetz das, was mir als erstes auffaellt.



  • Ich würde die Funktion, die das Ergebnis berechnet, erst dann aufrufen, wenn auch alle Eingaben gemacht worden sind, nicht vorher 😉



  • Da hat er wohl recht.


Anmelden zum Antworten