Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C/C++ Switch w switchu

Ostatnio zmodyfikowano 2014-04-06 18:11
Autor Wiadomość
davids1994ss
Temat założony przez niniejszego użytkownika
C/C++ Switch w switchu
» 2014-04-05 15:03:30
Witam. Mam taki problem, otóż napisałem program ( baza danych) w języku C i dołączyłem tam switcha który służy mi uruchamiania opcji w menu. Jednak w tym menu mam opcje wyszukiwania danej pozyci w bazie . A ,że dana pozycja ma kilka parametrów, to chce dać użytkownikowi możliwość wybrania po jakim elemencie chce wyszukiwać (tzn czy po tytule, czy po roku wydanie itp bo to jest baza danych książek) I teraz pojawia się moje pytanie. Jak umieścic switcha w switchu,żeby po wybraniu np opcji nr 2 czyli to jest to wyszukiwanie informacji pojawiło sie kolejne menu tym razem z opcjami po jakim elemencie chce się wyszukiwać. Z góry dziękuje za pomoc i podaje kod źródłowy.



C/C++
int g;
g = 1;
while( g != 0 )
{
    printf( "Opcje programu\n" );
    printf( "1 - Dodaj nowa ksiazke\n" );
    printf( "2 - Pokaz liste ksiazek z bazy\n" );
    printf( "3 - Wyszukaj ksiazke w bazie\n" );
    printf( "4 - Wczytaj baze z pliku \n" );
    printf( "5 - Zapisz baze do pliku \n" );
    printf( "0 - Wyjscie z programu\n" );
    scanf( "%d", & g );
    printf( "\n" );
    switch( g )
    {
    case 1: wstaw(); break;
    case 2: wypisz(); break;
    case 3: szukaj_ksiazki(); break;
    case 4: czytaj_plik(); break;
    case 5: zapisz(); break;
    }
}
}

z góry dziekuje za pomoc.Pozdrawiam.
P-107739
colorgreen19
» 2014-04-05 15:31:55
no normalnie ;D
C/C++
switch( g )
{
case 1:
    int h;
    cin >> h;
    //printf(costam)
    switch( h )
    {
        case...
        //i jedziesz
    }
case 2:
    //...
}
albo lepiej dla przejzystosci kodu
funkcjami, np;
C/C++
void menudalej()
{
    int h;
    cin >> h;
    //printf(costam)
    switch( h )
    {
        case...
        //...
    }
i potem tylko
C/C++
switch( g )
{
    case...
    menudalej()
    break;
    //....
}
P-107740
davids1994ss
Temat założony przez niniejszego użytkownika
» 2014-04-05 21:39:19
zrobiłem tak jak mówisz i działa tylko,że jak włączy mi sie to podmenu i wybiorę jakąś opcje to znowu mi się włącza menu, jakiś pomysł by tak nie było?
P-107764
anonim
» 2014-04-05 22:24:47
switche to nie najlepszy pomysł na menu

możesz zrobić np tak(pseudokod):
while(wybor!=0){
 cout << "opcja nr 1: 1 \n";
 cout << "opcja nr 2: 2 \n";
 cout << "wyjscie: 0 \n";
 cin>>wybor;
 if(wybor==1){
  kolejny while...)
 
  }
}
P-107765
davids1994ss
Temat założony przez niniejszego użytkownika
» 2014-04-05 22:26:33
musze to napisac w czystym C niestety.
P-107766
colorgreen19
» 2014-04-05 22:47:38
nie powinno sie tak dziac, daj kod jak to napisales
P-107767
anonim
» 2014-04-06 09:53:12
po wyjsciu ze switcha wchodzisz w nowy obieg pętli while(g!=0)
P-107770
davids1994ss
Temat założony przez niniejszego użytkownika
» 2014-04-06 10:02:25
C/C++
void menu()
{
    int g;
    g = 1;
    while( g != 0 )
    {
        printf( "Opcje programu\n" );
        printf( "1 - Dodaj nowa ksiazke\n" );
        printf( "2 - Pokaz liste ksiazek z bazy\n" );
        printf( "3 - Wyszukaj ksiazke w bazie\n" );
        printf( "4 - Wczytaj baze z pliku \n" );
        printf( "5 - Zapisz baze do pliku \n" );
        printf( "0 - Wyjscie z programu\n" );
        scanf( "%d", & g );
        printf( "\n" );
        switch( g )
        {
        case 1: wstaw(); break;
        case 2: wypisz(); break;
        case 3: menudalej(); break;
        case 4: czytaj_plik(); break;
        case 5: zapisz(); break;
        }
    }
}

to co wyzej to jest menu a to jest funkcja menudalej () :
C/C++
void menudalej()
{
    int a;
    a = 1;
    while( a != 0 )
    {
        printf( "Opcje programu\n" );
        printf( "1 - Dodggaj nowa ksiazke\n" );
        printf( "2 - Pokaz liste ksiazek z bazy\n" );
        printf( "3 - Wyszukaj ksiazke w bazie\n" );
        printf( "4 - Wczytaj baze z pliku \n" );
        printf( "5 - Zapisz baze do pliku \n" );
        printf( "0 - Wyjscie z programu\n" );
        scanf( "%d", & a );
        printf( "\n" );
        switch( a )
        {
        case 1: szukaj_ksiazki(); break;
        case 2:; break;
        case 3:; break;
        case 4:; break;
        case 5:; break;
        }
    }
}
P-107771
« 1 » 2 3
  Strona 1 z 3 Następna strona