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.