jacekplacek Temat założony przez niniejszego użytkownika |
[C++] Menu w kalkulatorze źle działa » 2013-06-10 21:48:10 Witam. Proszę o pomoc, ponieważ mój kalkulator po obliczeniu nie wraca do menu. Tu jest jego kod: #include <iostream> #include <conio.h> using namespace std; int main() { int wybor; cout << "Witam w programie, ktory pomoze ci obliczyc pola i objetosci figur." << endl; cout << "Wybierz czy chcesz obliczyc pole czy obejtosc." << endl; cout << "1. Objetosci" << endl; cout << "2. Pola" << endl; start1: cin >> wybor; switch( wybor ) { case 1: int fig; cout << "Wybierz numer figury, ktorej objetosc chcesz obliczyc" << endl; cout << "**********MENU**********" << endl; cout << "1. Graniastoslup" << endl; cout << "2. Stozek" << endl; cout << "3. Kula" << endl; cout << "4. asd" << endl; cout << "5. Romb" << endl; cout << "6. Trapez" << endl; cout << endl << "Podaj opcje, ktora chcesz wybrac" << endl; cin >> fig; switch( fig ) { case 1: float pp, h, pi; cout << "Podaj pole tego graniastoslupa" << endl; cin >> pp; cout << "Teraz podaj wysokosc tego graniastoslupa" << endl; cin >> h; cout << "Objetosc tego graniastoslupa to: " << pp * h << endl; break; case 2: cout << "Podaj pole tego stozka przyjmujac, ze pi=3,14" << endl; cin >> pp; cout << "Teraz podaj wysokosc tego stozka" << endl; cin >> h; cout << "Objetosc tego stozka to" <<( pp * h ) / 3 << endl; break; } case 2: int opcja; cout << "Wybierz numer figury, ktorej pole chcesz obliczyc." << endl; cout << "**********MENU**********" << endl; cout << "1. Kwadrat" << endl; cout << "2. Trojkat" << endl; cout << "3. Prostokat" << endl; cout << "4. Rownoleglobok" << endl; cout << "5. Romb" << endl; cout << "6. Trapez" << endl; cout << "7. Kolo"; cout << endl << "Podaj opcje, ktora chcesz wybrac" << endl; cin >> opcja; switch( opcja ) { case 1: float a, b, c; cout << "Podaj dlugosc boku" << endl; cin >> a; cout << "Pole kwadratu to " << a * a << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; case 2: cout << "Podaj dlugosc podstawy" << endl; cin >> a; cout << "A teraz podaj wysokosc" << endl; cin >> b; cout << "Pole to " << a * b / 2 << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; case 3: cout << "Podaj dlugosc jednego boku" << endl; cin >> a; cout << "A teraz drugiego" << endl; cin >> b; cout << "Pole wynosi " << a * b << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; case 4: cout << "Podaj dlugosc podstawy" << endl; cin >> a; cout << "Podaj dlugosc wysokosci" << endl; cin >> b; cout << "Pole wynosi " << a * b << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; case 5: cout << "Podaj dlugosc jednej przekatnej" << endl; cin >> a; cout << "A teraz podaj dlugosc drugiej przekatnej" << endl; cin >> b; cout << "Pole wynosi " << a * b / 2 << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; case 6: cout << "Podaj dlugosc jednej podstawy" << endl; cin >> a; cout << "Podaj dlugosc drugiej podstawy" << endl; cin >> b; cout << "A teraz podaj dlugosc wysokosci" << endl; cin >> c; cout << "Pole wynosi " <<( a + b ) * c / 2 << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; case 7: cout << "Podaj promien kola" << endl; cin >> a; cout << "Pole tego kola to: " << a * a * 3.14 << endl; cout << "Teraz wpisz dowolny znak i zatwierdz, by przejsc do menu" << endl; break; } } goto start1; getch(); } Wiem, że nie powinienem używać goto, ale chcę go dokończyć takim jakim jest. Z góry dziękuję i pozdrawiam. |
|
pekfos |
» 2013-06-10 21:59:20 Przenieś start1: kilka linii wyżej. |
|
jacekplacek Temat założony przez niniejszego użytkownika |
wywalanie » 2013-06-10 22:01:01 ciągle wywala do menu z obliczania pól |
|
pekfos |
» 2013-06-10 22:02:39 |
|
jacekplacek Temat założony przez niniejszego użytkownika |
» 2013-06-10 22:05:30 mógłbyś podać, w których liniach? z góry dziękuję. |
|
pekfos |
» 2013-06-10 22:07:51 Po wczytywaniu (każdym). Chyba wiesz, kiedy oczekujesz jakichś danych od użytkownika? |
|
jacekplacek Temat założony przez niniejszego użytkownika |
» 2013-06-10 22:16:16 cin >> h; cout << "Objetosc tego graniastoslupa to: " << pp * h << endl; cin.clear(); cin.sync(); break;
wstawiłem tak i po w kazdym innym i dalej wyrzuca do tamtego menu. |
|
cichociemny |
» 2013-06-10 22:56:50 Dlugi ten Twoj kod, za dlugi..... zmiesc go w jednym switch, to moze zacznie dzialac prawidlowo ps. Pamietaj, ze program to nie przechowalnia danych, program 'przetwarza dane' , a zapisuje wynik gdzies tam |
|
« 1 » 2 |