StartMenue soll nach Auswahl wieder in Console erscheinen.



  • Ich habe ein kleines Programm geschrieben, indem ich in einem Menue verschiedene Auswhlmöglichkeiten habe. Wenn ich jetzt allerdings eine Auswahl getroffen habe und die entsprechende Unterfunktion ausgeführt wurde(z.B. eingabe) dann springt das Programm ja wieder in die Mainfunktion. Allerdings kann ich dann nichts mehr auswaehlen. (z.b. loeschen) sobald ich dann einen Buchstaben eingebe und return druecke wird mein Konsolenprogramm beendet.
    Am liebsten waere es mir wenn ich in das Menue noch den Buchstabe e einbauen könnte um das Programm dann komplett zu beenden. Aber auch wirklich nur dann.

    Hier mein Programm:

    #include <iostream.h>

    struct eintraege{
    char Vorname[50];
    char Nachname[50];
    int Telefonnummer;

    };
    eintraege Telefonbuch[100];

    eintraege eingabe (){
    static int a;
    cout<<"Bitte geben Sie den Vornamen ein: ";
    cin>>Telefonbuch[a].Vorname;
    cout<<"Bitte geben Sie den Nachnamen ein: ";
    cin>>Telefonbuch[a].Nachname;
    cout<<"Bitte geben Sie die Telefonnummer ein: ";
    cin>>Telefonbuch[a].Telefonnummer;
    a++;
    //return (Telefonbuch[a]);
    }

    void Nummereingabe (eintraege);

    void loeschen (eintraege);

    void anzeigen (eintraege);

    void main(){
    char Auswahl;
    cout <<"Telefonbuch" <<endl;
    cout <<"neuer Eintrag: a" <<endl;
    cout <<"Suche nach Eintragnummer: b" <<endl;
    cout <<"Eintrag loeschen: c" <<endl;
    cout <<"Eintrag anzeigen: d" <<endl;
    cin >> Auswahl;
    switch(Auswahl){
    case 'a':
    eingabe();
    break;
    case 'b':
    Nummereingabe;
    break;
    case 'c':
    loeschen;
    break;
    case 'd':
    anzeigen;
    break;
    default:
    cout<< "Bitte treffen Sie eine Auswahl die das Menue ermoeglicht" <<endl;
    }
    char p[50];
    cin.getline(p,50);
    cin.getline(p,50);
    }

    Wäre super wenn ihr mir ein bissl helfen könntet.



  • Wie wäre es mit einer while schleife mit einer Abbruchbedinnung die bei case e gesetzt wird ?



  • Das sah dann im Programm so aus:

    #include <iostream.h>

    struct eintraege{
    char Vorname[50];
    char Nachname[50];
    int Telefonnummer;

    };
    eintraege Telefonbuch[100];

    eintraege eingabe (){
    static int a;
    cout<<"Bitte geben Sie den Vornamen ein: ";
    cin>>Telefonbuch[a].Vorname;
    cout<<"Bitte geben Sie den Nachnamen ein: ";
    cin>>Telefonbuch[a].Nachname;
    cout<<"Bitte geben Sie die Telefonnummer ein: ";
    cin>>Telefonbuch[a].Telefonnummer;
    a++;
    //return (Telefonbuch[a]);
    }

    void Nummereingabe (eintraege);

    void loeschen (eintraege);

    void anzeigen (eintraege);

    void main(){
    char Auswahl;

    while(Auswahl!='e'){ //Beginn von while Schleife

    cout <<"Telefonbuch" <<endl;
    cout <<"neuer Eintrag: a" <<endl;
    cout <<"Suche nach Eintragnummer: b" <<endl;
    cout <<"Eintrag loeschen: c" <<endl;
    cout <<"Eintrag anzeigen: d" <<endl;
    cin >> Auswahl;
    switch(Auswahl){
    case 'a':
    eingabe();
    break;
    case 'b':
    Nummereingabe;
    break;
    case 'c':
    loeschen;
    break;
    case 'd':
    anzeigen;
    break;
    default:
    cout<< "Bitte treffen Sie eine Auswahl die das Menue ermoeglicht" <<endl;
    } //Ende von Switch-Case
    } //Ende von While Schleife
    char p[50];
    cin.getline(p,50);
    cin.getline(p,50);
    }

    Wahrscheinlich ist daran igendwas nicht OK. Vielleicht hast du ne Idee was ich da falsch mache.



  • ich würde ein bool nehmen und das bei case 'e': setzen.

    btw. Verwende mal codetags beim posten von Quellcode.
    Den C/C++ Button klicken unter dem grinsesmilie , code rein kopieren und diesen Button noch ma klicken.



  • Springt der denn dann nach aufruf der ausgewählten Funktion wieder auf das Hauptmenue oder beendet der dann die Konsole. Das Programm soll ja nach aufruf der Unterfunktion das Auswahlmenue anzeigen. Und nur bei drücken von 'e' das Programm ganz verlassen. Wie meinst du das eigentlich mit 'e' als Bool?




Anmelden zum Antworten