R
ich habe das jetzt so aufgebaut und erneuert
aber bei der fehlerabfrage sobald man einen buchstaben eingibt spinnt das programm und hört nicht mehr auf anzuzeigen das eine falsche eingabe vorliegt ?!?!
#include <iostream>
using namespace std;
float fka1, fka2, fensch;
float fsole1, fsole2, fwele, fensole;
float fendnote;
char menue (void);
bool error = true;
int main(void)
{
float fka1, fka2, fensch;
float fsole1, fsole2, fwele, fensole;
float fendnote;
char menue (void);
bool error = true;
switch(menue())
{
case 'a':
system("CLS");
while(error)
{
cout<<"Geben sie die Prozente der ersten Klassenarbeit ein: "<< endl;
cin >>fka1;
if(!cin.fail ()) //buchstaben abfangen
{
if(fka1 >= 0 && fka1 < 101)
error = false; //while-schleifen abbruch
else
cout<<"Falsche Eingabe"<<endl;
}
else
{
cout<<"Falsche Eingabe"<<endl;
cin.clear(); //error bit löschen
}
}
cout<<"Geben sie die Prozente der zweiten Klassenarbeit ein: "<< endl;
cin >>fka2;
fensch = ((fka1+fka2) / 2);
fendnote = (fensch);
cout<<"endnote schriftlich: "<< fendnote<< endl;
getchar();
break;
case 'b':
system("CLS");
cout<<"Geben sie die Prozente der ersten Soleinote ein: "<< endl;
cin >>fsole1;
cout<<"Geben sie die Prozente der zweiten Soleinote ein: "<< endl;
cin >>fsole2;
cout<<"Geben sie die Prozente der weiteren Leistungen ein: "<< endl;
cin >>fwele;
fensole = fsole1*0.4 + fsole2*0.4 + fwele*0.2;
fendnote = (fensole);
cout<<"endnote Solei: " << fendnote << endl;
getchar();
break;
case 'c':
system("CLS");
cout<<"Geben sie die Prozente der ersten Klassenarbeit ein: "<< endl;
cin >>fka1;
cout<<"Geben sie die Prozente der zweiten Klassenarbeit ein: "<< endl;
cin >>fka2;
fensch = (fka1+fka2) / 2;
cout<<"Geben sie die Prozente der ersten Soleinote ein: "<< endl;
cin >>fsole1;
cout<<"Geben sie die Prozente der zweiten Soleinote ein: "<< endl;
cin >>fsole2;
cout<<"Geben sie die Prozente der weiteren Leistungen ein: "<< endl;
cin >>fwele;
fensch = (fka1+fka2) / 2;
fensole = fsole1*0.4 + fsole2*0.4 + fwele*0.2;
fendnote = (fensch+fensole) / 2;
cout<<"endnote: "<< fendnote<< endl;
getchar();
break;
default:
std::cout << "\n\nFehler - Für diese Eingabe gibt es keine Anweisung!\n" << std::endl;
getchar();
return 0;
break;
}
}
// Auswahlmenü
char menue (void)
{
char auswahl;
cout<<"Bitte geben Sie ein was Sie berechnen möchten!"<<endl;
cout<<" a = schriftliche Arbeiten"<<endl;
cout<<" b = sonstige Leistungen"<<endl;
cout<<" c = komplette fendnote"<<endl;
cin>>auswahl;
return auswahl;
}
// Berechnung schriftliche Arbeiten
float schriftliche (void)
{
fensch = (fka1 + fka2) / 2;
return fensch;
}
// Berechnung sonstige Leistungen
float sonstige (void)
{
fensole = fsole1*0.4 + fsole2*0.4 + fwele*0.2;
return fensole;
}
// Berechnung komplette fendnote
float endnote (void)
{
fendnote = (fensch + fensole) / 2;
return fendnote;
}