Switch-Anweisung



  • Hallo Leute,

    ich habe 3 Dateien eine Header, ein Hauptprogramm und ein Progamm mit den Funktionen.

    Im Hauptprog ist eine Switch-Anweisung:

    switch ( menuAuswahl )
     {
     case 'e': 
     case 'E':
     cout<< "Werte eingeben"<< endl;
     werteVorhanden = WerteEingeben( daten, anzahl, maxAnzahl );
     break;
    
     case 'a': // Werte ausgeben
     case 'A':
    	 cout<< "Werte ausgeben"<< endl;
    		 if (werteVorhanden==true)
    	 {
    		 WerteAusgeben( daten, anzahl );
    	 }
    	 else
    	 {
    		 FehlermeldungAusgeben( "Falsche Eingabe Werte ausgeben" );
     }
     break;
    

    Wenn ich jetzt 'a' wähle, dann geht er in die Funktion (separates Prog)"werteAusgeben". Diese beinhaltet wieder ein Switch-Menu

    bool WerteEingeben(baum daten[], int& anzahl, const int maxAnzahl)
    {
        int temp_Baumart;
        int i=0;
        bool retWert=false;
    
            cout << "Anzahl der Baeume eingeben:";
            cin >> anzahl;
    
        for(i=0; i<anzahl; i++)
        {
            cout << "Daten zum Baum Nummer " << i << " eingeben." << endl;
            cout << "Baumart eingeben (1=Kiefer, 2=Fichte, 2=Buche, 4=Eiche):";
            cin >> temp_Baumart;
    
            switch (temp_Baumart)
            {
            case (1):
                daten[i].bauminfo.baumart = Kiefer;
                break;
            case (2):
                daten[i].bauminfo.baumart = Fichte;
                break;
            case (3):
                daten[i].bauminfo.baumart = Buche;
                break;
            case (4):
                daten[i].bauminfo.baumart = Eiche;
                break;
            default:
    
                break;
                }
    
            cout <<endl<< "Hoehe eingeben:";
            cin >> daten[i].bauminfo.hoehe;
    
            cout << "Umfang eingeben:";
            cin >> daten[i].bauminfo.umfang;
    
            cout << "Bitte die Strasse des Baumes eingeben:";
            cin.ignore();
            getline(cin, daten[i].baumAdresse.strasse);
    
            cout << "Postleitzahl:";
            cin >> daten[i].baumAdresse.plz;
    
            cout << "Ort:";
            cin.ignore();
            getline(cin, daten[i].baumAdresse.ort);
    	}
        retWert=true;
        return retWert;
    
    }
    

    Meine Frage ist jetzt, wie ich es hinbekomme, dass er nach der Eingabe der Daten und der Ausführung der Funktion "werteEingeben" wieder in das Menu() des Hauptprogrammms springt. Der bricht automatisch nach Eingabe ab.

    Help?


  • Mod

    Um die Frage konkret zu beantworten, müssten wir mehr von deinem Programm wissen. Wahrscheinlich ist es ein Fehler durch Mischen von formatierter Eingabe und unformatierter Eingabe.

    Postleitzahlen sind übrigens - trotz des Namens - keine Zahlen sondern Ziffernfolgen! Wenn du mal einen Baum in 01067 Dresden pflanzt, merkst du das*.

    *: Als Dresdener muss man doch verzweifeln, oder? Das muss doch in unzähligen Programmen und Webanwendungen falsch sein, die der Neffe vom Chef geschrieben hat.



  • Indem du den Vorgang wiederholst. Das C++ Konstrukt dazu ist eine Schleife.


Anmelden zum Antworten