C/C++ Switch w switchu
Ostatnio zmodyfikowano 2014-04-06 18:11
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. 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. |
|
colorgreen19 |
» 2014-04-05 15:31:55 no normalnie ;D switch( g ) { case 1: int h; cin >> h; switch( h ) { case... } case 2: }
albo lepiej dla przejzystosci kodu funkcjami, np; void menudalej() { int h; cin >> h; switch( h ) { case... }
i potem tylko switch( g ) { case... menudalej() break; }
|
|
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? |
|
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...) } }
|
|
davids1994ss Temat założony przez niniejszego użytkownika |
» 2014-04-05 22:26:33 musze to napisac w czystym C niestety. |
|
colorgreen19 |
» 2014-04-05 22:47:38 nie powinno sie tak dziac, daj kod jak to napisales
|
|
anonim |
» 2014-04-06 09:53:12 po wyjsciu ze switcha wchodzisz w nowy obieg pętli while(g!=0) |
|
davids1994ss Temat założony przez niniejszego użytkownika |
» 2014-04-06 10:02:25 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 () : 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; } } }
|
|
« 1 » 2 3 |