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

[C++] Menu w kalkulatorze źle działa

Ostatnio zmodyfikowano 2013-06-11 22:13
Autor Wiadomość
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:
C/C++
#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.
P-85331
pekfos
» 2013-06-10 21:59:20
Przenieś start1: kilka linii wyżej.
P-85333
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
P-85334
pekfos
» 2013-06-10 22:02:39
Dodaj to po wczytywaniu.
C/C++
cin.clear();
cin.sync()
P-85335
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ę.
P-85337
pekfos
» 2013-06-10 22:07:51
Po wczytywaniu (każdym). Chyba wiesz, kiedy oczekujesz jakichś danych od użytkownika?
P-85339
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.
P-85341
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
P-85355
« 1 » 2
  Strona 1 z 2 Następna strona