Fehler behebung im Taschnerechner ++ Tipps und Tricks
-
Moin moin,
ich benötige ein bissen Hilfe, zur Problemlösung meines Codes.
Undzwar zeig mir der Compiler n Fehler an, in Zeile 105.
Zu Anfang war es nur ne vergessene Geschweifteklammer, doch nun find ich den Fehler nicht mehr.
Desweitern wollte ich gernen n Tipp haben wie ich im Programm wieder zurück ins Hauptmenu navigieren kann.int main() { using namespace console; using namespace std; int i; int ival; int Objeckt; const double PI = 3.141592654; //MENU cout << fcolor(BLUE); cout << "***********************************************************" << endl; cout << " Hallo und Willkommen zum Pracktischen Taschenrechener ^^,\n\n" << endl; cout << fcolor(RED); cout << " (*_*)/ \\(*_*)" << endl; cout << " <) ) ( (>" << endl; cout << " / \\ / \\ "<< endl; cout << fcolor(BLUE); cout << "***********************************************************" << endl; cout << " Press 1, fuer berechnungen eines Kreises/ Kugel/ Zylinder/ Kegel." << endl; cout << " Press 2, fuer berechnungen von Quadraten/ Wuerfel." << endl; cout << " Press 3, fuer berechnungen von einem Dreieck/ Pytagoras.\n" << endl; cout << " Press 9, um das Program zu beenden." << endl; cout << fcolor(RED); cin >> Objeckt; if(Objeckt==1){ //KREIS, KUGEL, ZYLINDER, KEGEL int Kobjeckt; cout << fcolor(GREEN); cout << " Was moechtest du berechnen ?\n" << endl; cout << fcolor(BLUE); cout << " Press 1, fuer die Kreisberechnug." << endl; cout << " Press 2, fuer die das berechnen einer Kugel." << endl; cout << " Press 3, fuer die berchenung eines Zylinders. " << endl; cout << " Press 4 ,fuer das berechnen eines Kegels." << endl; cout << fcolor(RED); cin >> Kobjeckt; if(Kobjeckt==1){ //KREIS cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte einen Radius in cm eingebn ( Durchmesser / 2 = Radius )." << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Ok. Dein Radius ist " << i << " cm! \n Die flaeche betraegt genau " << i * i * PI << " cm2 !" << endl; } else if(Kobjeckt==2){ //KUGEL cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte den Durschmesser eingeben ( Radius * 2 = Durchmesser )." << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Ok. Dein Durchmesser ist " << i << " cm 1 \n Das Volumen der Kugel ist genau " << i * 4 * PI << " cm3 !" << endl; } else if(Kobjeckt==3){ //ZYLINDER cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte einen Radius in cm eingebn ( Durchmesser / 2 = Radius )." << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Und nun die Hoehe des Zylinders eingeben " << endl; cout << fcolor(RED); cin >> ival; cout << fcolor(GREEN); cout << " Der Radius ist " << i << " cm, und die Hoehe ist " << ival << " cm." << endl; cout << " Das volumen beraegt genau " << i * i * PI * ival << " cm3 !" << endl; } else if(Kobjeckt==4){ //KEGEL cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte den Radius der Grundflaech in cm eingeben. ( Durchmesser / 2 = Radius ) " << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Nun die Hoehe des Kegels, in cm eingeben." << endl; cout << fcolor(RED); cin >> ival; cout << fcolor(GREEN); cout << " Ok. Der Radius betraegt " << i << " cm, und die Hohe betraegt " << ival << " cm." << endl; cout << " Das volumen des Kegels betraegt genau " << i * i * PI / 3 * ival << " cm3 ! " << endl; } else if(Objeckt==2){ //QUADRAT, WUERFEL int Wobjeckt; cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Press 1, fuer die Quadrat berechnung." << endl; cout << " Press 2, fuer die Wuerfel berechnung." << endl; cout << fcolor(RED); cin >> Wobjeckt; cout << fcolor(GREEN); } if(Wobjeckt==1){ //QUADRAT int Qobjeckt; cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Press 1, fuer die berechnung des Umfangs" << endl; cout << " Press 2, fuer die Flaechen berechnung" << endl; cout << fcolor(RED); cin >> Qobjeckt; cout << fcolor(GREEN); } if(Qobjeckt==1){ //QUADRAT UMFANG cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte die Laegne a eingebn " << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Der Umfang betraegt genau " << i * 4 << " cm." << endl; } else if(Qobjeckt==2){ //QUADRAT FLAECHE cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte die Laegne a eingebn " << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Die Flaeche betraegt genau " << i * i << " cm2." << endl; } } else if(Wobjeckt==2){ //WUERFEL int DasObjeckt; cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Press 1, fuer die berechnung des Volumens" << endl; cout << " Press 2, fuer die Flaechen berechnung" << endl; cout << fcolor(RED); cin >> DasObjeckt; cout << fcolor(GREEN); if(DasObjeckt==1){ //WUERFEL VOLUMEN cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte die Laegen von a eingeben" << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Ok. die Laenge von a betraegt " << i << " cm." << endl; cout << " Das Volumen des Wuerfels bertaegt genau " << i * i * i << " cm3 !" << endl; } else if(DasObjeckt==2){ //WUERFLE FLAECHE cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Bitte die Laegen von a eingeben" << endl; cout << fcolor(RED); cin >> i; cout << fcolor(GREEN); cout << " Ok. die Laenge von a betraegt " << i << " cm." << endl; cout << " Die Flaeche betraegt genau " << i * i * 6 << " cm2 !" << endl; } } else if(Objeckt==3){ //DREIECK, PYTAGORAS int Drobjeckt; cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << fcolor(GREEN); cout << " Press 1, fuer Dreieck berechnung" << endl; cin >> Drobjeckt; } else if(Objeckt==9){ cout << fcolor(RED); cout << "*********************************************************************************" << endl; cout << " Danke das du den Pracktischen Taschenrechner genutzt hast ^^, \n" << endl; cout << " See ya later alegatoer" << endl; return 1; } cin.get(); return 0; }
-
Die genaue Fehlerbeschreibung fehlt. Und zwar per Copy&Paste.
Deine Einrückung passt nicht zur Klammerung.
Oder umgekehrt.Ist die Klammer in Zeile 104 richtig?
-
Funktionen sind dein Freund. Statt alles in der main Methode zum implementieren solltest du die Funktionalität in eigene Funktionen auslagern und im switch-case-Block nur noch die Funktionen aufrufen. Dann wird´s deutlich übersichtlicher.
PS:
Du solltest dir deine Ausgaben auch noch ein mal angucken. Das strotzt vor Rechtschreib- und Grammatikfehlern.
-
@DocShoe Ist es möglich die Funktionen in eine Switch-Case abfragung einzufügen, und das alles innerhalb einer Do-While Schleife durchlaufen zu lassen ? wenn ja, gibt es einen möglichkeit im Programm wieder zum Hauptmenü zu navigieren ?
Ps. Die Rechtschreibung wird zum Schluss noch mal Überflogen xD.
-
@DirkB Die Klammer aus Zeile 104 ist soweit korreckt und gehört zum else if(Objeckt==2) aus Zeile 92.
Der Fehler wurde mir erst nach der Fehlerbehebung der fehlender Klammer angezeit.
-
Die genaue Fehlerbeschreibung fehlt. Und zwar per Copy&Paste.
-
@Nitro-Zeus sagte in Fehler behebung im Taschnerechner ++ Tipps und Tricks:
@DirkB Die Klammer aus Zeile 104 ist soweit korreckt und gehört zum else if(Objeckt==2) aus Zeile 92.
Der Fehler wurde mir erst nach der Fehlerbehebung der fehlender Klammer angezeit.Dann ist aber Wobjeckt in Zeile 105 (aus Zeile 94) nicht mehr gültig.
Zudem sollte die Einrückung in Zeile 105 nicht mehr so tief sein, da es auf einer Ebene mit dem else aus Zeile 92 läuft.
-
@Nitro-Zeus sagte in Fehler behebung im Taschnerechner ++ Tipps und Tricks:
@DocShoe Ist es möglich die Funktionen in eine Switch-Case abfragung einzufügen, und das alles innerhalb einer Do-While Schleife durchlaufen zu lassen ? wenn ja, gibt es einen möglichkeit im Programm wieder zum Hauptmenü zu navigieren ?
Ps. Die Rechtschreibung wird zum Schluss noch mal Überflogen xD.
Ja, die gibts. Gar nicht mal so schwierig:
// Deklaration void func1(); void func2(); void func3(); int main() { .... int choice = ....; switch( choice ) { case 0: func1(); break; case 1: func2(); break; case 2: func3(); break; default: // Meldung mit Fehleingabe, etc } } void func1() { // Funktionskörper für zb. Dreieck } void func2() { // Funktionskörper für zb. Viereck } void func3() { // Funktionskörper für zb. Kreis }