Podwójne menu (switch,case) w C++

0

Dobry, mam pytanko. Pisze program i mam problem odnośnie menu. Okej, switch, case i do przodu, lecz sytuacja wygląda tak, że muszę uporządkować program tak, aby było 1 menu tzw. wejściowe: info, obliczenia, itd. a następnie po kliknięciu w 1 menu "obliczenia", przeniesienie do drugiego menu, gdzie będą zawarte funkcje.

1

Wydziel drugie menu do osobnej funkcji, z pierwszej funkcji odpal tę drugą; bez kodu trochę ciężko powiedzieć co tutaj może stanowić problem :-P

0
Patryk27 napisał(a):

Wydziel drugie menu do osobnej funkcji, z pierwszej funkcji odpal tę drugą; bez kodu trochę ciężko powiedzieć co tutaj może stanowić problem :-P

void menu ()
{
    cout<<endl<<endl;
    cout<<"    Menu główne "<<endl;
    cout<<"1. Informacje. "<<endl;
    cout<<"2. Obliczenia. "<<endl;
    cout<<"0. Koniec."<<endl;

    cout<<endl<<endl;
}

int main()
{
    int i, n, x;
    char wybor;
    float x0, y0, xn, h, yn, nachyl;
    setlocale(LC_CTYPE, "Polish");
    poczatek();
    dane( x0, y0, xn, n);
    for(;;)
    {
        menu();
        wybor=getch();
        switch (wybor)
        {
        case '1':
            info();
            break;
        case '2':
            menu2();
            break;
        case '0':
            exit(0);
            break;
        default:
            def();
        }

Mniej więcej w ten sposób? Menu2 w case'ie 2 to jakby to drugie menu.

4

Tak, coś takiego.

Idealnie byłoby zamiast funkcji mieć rekurencyjną strukturę opisującą wygląd tego menu-drzewa - ale jeśli dopiero uczysz się języka, to jest to prawdopodobnie za dużo na start i takie podejście z funkcjami wystarczy :-)

1

może jeszcze w ramach szkolenia spróbuj sobie zrobić podobny kod jak tu
https://github.com/evanstoddard/CPP-Menu
dosyć proste wywołania

    Menu defaultMenu;
    defaultMenu.addItem("Option 0", &option0);
    defaultMenu.addItem("Option 1", &option1);
    defaultMenu.addItem("Option 2", &option2);
    
    defaultMenu.printMenu();

Od razu zastrzegam że jak rzuciłem okiem w kod to są rzeczy które mi się nie podobają jak callback w starym stylu ale pomysł możesz z tego sobie dopasować do siebie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1