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.


  • Mod

    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
    }
    

Anmelden zum Antworten