Hallo zusammen,
ich habe ein kleines Programm als Hilfe geschrieben. Fragt mich nicht wofür denn eigentlich ist der Aufwand größer als der nutzen.
Nur habe ich noch ein kleines Problem.
Eigentlich sollte nuur w, s oder g eingeben werden, um die Aufgaben zu lösen. Aber ich habe festgestellt das ich auch mehr als einen Buchstaben eingeben kann und sich das Programm dann aufhängt (while-Schleife als wirkliche Schleife....)
Wie kann ich es umgehen?
Definieren das ich nur genau die Buchstaben als zulässige EIngabe erkenne?
Einfach nur zulassen das er nur genau einen Buchstaben erkennt? Auch wenn mehr da stehen?
Was denkt dir ist die sauberste Lösung?
Und entschuldigt das Chaos im Programm.....
Danke im Vorraus für Tips.
LG Stefan
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
using namespace std;
void gwcalc (void) // 1. void-Container (Name: gwcalc)
{
float pwert; // "pwert" wird als float deklariert
float psatz; // "psatz" wird als float deklariert
cout<<"Sie haben die Berechnung des Grundwerts gewaehlt.\n\n\n";
cout<<"Bitte geben Sie den Prozentsatz ein.\n";
cin>>psatz; // die eingegebene Zahl wird als "psatz" eingelesen
cout<<endl; // Zeilenumbruch mit Pufferleerung
cout<<"Bitte geben Sie den Prozentwert ein.\n";
cin>>pwert; // die eingegebene Zahl wird als "pwert" eingelesen
cout<<endl;
cout<<"Grundwert: "<<pwert*100/psatz<<endl<<endl;
// ^^ Der berechnete Wert wird neben "Grundwert:" ausgegeben
}
void pwcalc (void) // 2. void-Container (Name: pwcalc)
{
float gwert;
float psatz;
cout<<"Sie haben die Berechnung des Prozentwerts gewaehlt.\n\n\n";
cout<<"Bitte geben Sie den Grundwert ein.\n";
cin>>gwert;
cout<<endl;
cout<<"Bitte geben Sie den Prozentsatz ein.\n";
cin>>psatz;
cout<<endl;
cout<<"Grundwert: "<<gwert*psatz/100<<endl<<endl;
}
void pscalc (void) // 3. void-Container (Name: pscalc)
{
float gwert;
float pwert;
cout<<"Sie haben die Berechnung des Prozentsatzes gewaehlt.\n\n\n";
cout<<"Bitte geben Sie den Grundwert ein.\n";
cin>>gwert;
cout<<endl;
cout<<"Bitte geben Sie den Prozentwert ein.\n";
cin>>pwert;
cout<<endl;
cout<<"Grundwert: "<<100*pwert/gwert<<endl<<endl;
}
int main(int argc, char *argv[])
{
system("color 6B");
char taste;
taste='j';
while(tolower(taste)=='j')
{
system("cls");
char erwert;
/* ^^
Die Leerstelle zwischen ' ' wird mit dem Variablenname "erwert" als "char"
deklariert.
*/ cout<<"Bitte geben Sie an, was Sie berechnen moechten:\n\n";
cout<<"Grundwert = g, Prozentwert = w oder Prozentsatz = s\n\n";
cin>>erwert;
cout<<endl;
if (erwert == 'g') // wenn die Eingabe = mit 'g' ist dann ...
gwcalc (); // ... fuehre den void-Container "gwcalc" aus
else if (erwert == 'w') // wenn aber die Eingabe = mit 'w' ist dann ...
pwcalc (); // ... fuehre den void-Container "pwcalc" aus
else if (erwert == 's') // wenn aber die Eingabe = mit 's' ist, dann ...
pscalc (); // ... fuehre den void-Container "pscalc" aus
else // anderenfalls schreibe ...
cout<<endl<<endl<<"Ihre Eingabe war nicht korrekt. Erneut versuchen?(j/n)";
cin>>taste;
cout<<endl;
}
return 0;
}