Nastrix Temat założony przez niniejszego użytkownika |
Pomoc w goto. » 2009-12-22 19:28:32 Proszę o poświęcenie mi chwilki. Z góry dziękuję! Kod, który umieściłem poniżej to wstęp programu, który chce stworzyć. Potrzebuje pomocy. Wiem, że nadużywanie goto jest karygodne, lecz w moim przypadku jest on najlepszym rozwiązaniem. Chcę napisać program, który będzie zawierał wszystkie dotychczasowe moje programy oraz przejrzysty panel kontrolny. I tu ujawnia się mój problem. Mianowicie, proszę skompilować program wcisnąć t > 1 > c, i nic się nie dzieje! Co zrobiłem źle w zastosowaniu goto? Czy można kilku krotnie używać tych samych instrukcji w jednym programie? Proszę o szybką odpowiedź. #include <conio.h> #include <iostream> #include "ddtconsole.h" #include <cstdlib>
using namespace std; using namespace ddt::console;
int main() { int wybor; char wybor_char, wybor_char2; int kolorTekstu = 11; textattr( kolorTekstu ); cout << " Witaj!!!" << endl; cout << "Program stwozony po to aby zsyntezowac moja wiedze na temat programowania" << endl; cout << "Aby wybrac jaka kolwiek opcje naciskamy [1],[2],...,[n] i enter, aby wycofac do poprzedniego menu [c] (od cofac)" << endl; cout << "Jesli zapoznales sie z dzialaniem programu nacisnij [t], jezeli nie wcisnij [n]." << endl; cin >> wybor_char; system( "cls" ); if( wybor_char == 't' ) { panel_glowny: kolorTekstu = 11; ddt::console::textattr( kolorTekstu ); int wybor; cout << "Glowny panel:" << endl; cout << "[1] O mnie." << endl; cout << "[2] O programowanaiu" << endl; cout << "[3] Programy liczace" << endl; cout << "[4] Petle while, for" << endl; cout << "[5] Instrukcje warunkowe if, else" << endl; cout << "[6] Obsługa plikow" << endl; cin >> wybor; system( "cls" ); switch( wybor ) { case 1: cout << "O mnie:" << endl; cout << "Nazywam sie Krzysztof, mam 18 lat, chodze do LO Tyczyn(mam go serdecznie dosc)" << endl; cout << "Przygode z c++ rozpoczolem 5 miesiecy temu, teraz programowanie zajmuje mi 1/2 mojego czasu wolnego (czasem i calosc:P). Mam nadzieje ze spodoba Ci sie zestaw zrobionych przeze mnie programow" << endl; cout << "Przypominam [c] cofamy o jeden poziom panelu, [k] koniec programu, na pytania wylacznie [t] lub [n] chyba ze pisze cos innego." << endl; cout << "Pozdrawiam i zycze milej zabawy!" << endl; cout << "Co chcesz teraz zrobic?" << endl; cout << "[c] - cofniecie do panelu glownego" << endl; cout << "[k] - zakonczenie programu" << endl; cin >> wybor_char2; if( wybor_char == 'c' ) { goto panel_glowny; } if( wybor_char == 'k' ) { goto koniec; } break; default: { cout << "Mialo byc [c] lub [k]!" << endl; } break; } } koniec: cout << "Dziekuje za wyprObowanie mojego programu, zapraszam ponownie!!!" << endl; getch(); return 0; } |
|
Elaine |
» 2009-12-22 19:41:05 Czytasz do wybor_char2 a sprawdzasz wybor_char. Tak miało być?
I nie, goto nie jest tu najlepszym rozwiązaniem. Lepszym rozwiązaniem są funkcje. Try them! |
|
Nastrix Temat założony przez niniejszego użytkownika |
» 2009-12-22 19:47:32 A gdybym chciał jednak przystać przy goto, są jakieś rady? W nie odległym czasie zacznę studiować kolejną partię materiały z poradnika(uważam że jest świetny). Proszę o zrozumienie, moim jedynym narzędziem, którym mogę się w tej chwili posłużyć jest goto. Jeżeli jest nie realne to zrobić, proszę napisać, porzuce projekt, który pisałem przez tydzień...;/ |
|
Nastrix Temat założony przez niniejszego użytkownika |
» 2009-12-22 19:50:18 Chodzi mi o to, że przy wejściu do [1] O mnie przy wciśnięciu c program powinien się cofać do panelu głównego a on zakańcza swoje działanie;/ |
|
DejaVu |
» 2009-12-22 19:55:29 Przed cin >> wybor; dopisz: |
|
Elaine |
» 2009-12-22 19:56:48 Już ci napisałem, o co poszło. Czytasz do wybor_char2, a sprawdzasz wartość wybor_char. Tak na pewno miało być?
@ten wyżej: i co to zmieni? |
|
Nastrix Temat założony przez niniejszego użytkownika |
» 2009-12-22 20:00:31 Dziękuję za pomoc. Moja wina, pomyliłem zmienne. Przepraszam za bałagan;d
Zamykam temat i proszę o usunięcie tematu. Iname jednak miałeś rację.:P |
|
« 1 » |