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

Problem z tworzeniem kolejnego menu i powrotami do nich

Ostatnio zmodyfikowano 2016-12-02 18:16
Autor Wiadomość
Temat założony przez niniejszego użytkownika
Problem z tworzeniem kolejnego menu i powrotami do nich
» 2016-12-01 17:37:40
Mam taki oto kalkulatorek stworzony do liczenia pol, obwodow i objetosci figur:




#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <iomanip>
#include <math.h>

using namespace std;

int main()
{
    double a,b,c,d,h,r,hw,rw,rs,hs,ts,rk;
    double Vs,Vp,Vw,Vk;
    double Ps,Pp,Pw,Pk,Pt;
    double Ok,Op,Ot;
    int wybor,wybor2,wybor3;
    bool menustart = true;
    while (menustart != false){
            cout << " 1 - Figury plaskie\n";
            cout << " 2 - Bryly nieobrotowe\n";
            cout << " 3 - Bryly obrotowe\n";
            cout << " Wpisz liczbe chcianej opcji i zatwierdz enterem: ";
            cin >> wybor;

switch (wybor)
{
    case 1:
        bool menuplaskie = true;
        while (menuplaskie !=false){
            cout << " 1 - Pole i obwod kwadratu\n";
            cout << " 2 - Pole i obwod prostokata\n";
            cout << " 3 - Pole i obwod trojkata\n";
            cout << " 4 - Pole i obwod kola\n";
            cout << " 5 - Pole i obwod trapezu\n";
            cout << " 6 - Powrot\n\n";
            cout << " Wpisz liczbe chcianej opcji i zatwierdz enterem: ";
            cin >> wybor2;
            switch (wybor2)
            {
                case 1:
                cout<<"***POLE KWADRATU***"<<endl;
                cout<<"Wprowadz bok kwadratu: ";
                cin>>a;                                                           //Kwadrat
                Pk=a*a;
                if(a<0)
                {
                    cout<<" Nieprawdilowe dane (a<0)"<<endl<<endl;
                }
                else
                {
                    cout<<"Pole kwadratu: "<<Pk<<endl<<endl;
                }
                break;


                case 2:
                        cout<<"***POLE PROSTOKATA***"<<endl;
                        cout<<"Wprowadz 1. bok: ";
                        cin>>a;
                        cout<<"Wprowadz 2. bok: ";
                        cin>>b;                                                 //Prostokat
                        Pp=a*b;
                        if(a<0||b<0)
                        {
                            cout<<"Nieprawdilowe dane (a<0 lub b<0)"<<endl<<endl;
                        }
                        else
                        {
                            cout<<"Pole prostokata: "<<Pp<<endl<<endl;
                        }
                        break;


                case 3:
                   cout<<"***POLE TROJKATA***"<<endl;
                    cout<<"Wprowadz bok1: ";
                    cin>>a;
                    cout<<"Wprowadz wysokosc(jesli nie ma wstaw 0): ";
                    cin>>h;
                    cout<<"Wprowadz bok2(jesli nie ma wstaw 0): ";
                    cin>>b;
                    if(a<0||b<0||h<0)
                    {
                        cout<<"Nieprawdilowe dane (a<0)"<<endl<<endl;
                    }
                    else
                    {
                        if(h==0 && b==0)                                    //Trojkat Sprawdzenie jaki jest
                    {
                        Pk=(a*a*sqrt(3))/4;
                        cout<<"Pole trojkata rownobocznego: "<<Pk<<endl<<endl;
                    }
                    else
                    {
                        Pk=(a*b)/2;
                        cout<<"Pole trojkata prostokatnego: "<<Pk<<endl<<endl;
                    }
                    break;


                case 4:
                    cout<<"***POLE I OBWOD KOLA***\n";
                    cout<<"Wprowadz promien kola: ";
                    cin>>r;
                    if(r<0)
                    {
                        cout<<"Nieprawdilowe dane (r<0)\n\n";
                    }
                    else                                            //Kolo
                    {
                        Pk=M_PI*r*r;
                        Ok=2*M_PI*r;
                        cout<<"Obwod kola: "<<Ok<<endl;
                        cout<<"Pole kola: "<<Pk<<endl<<endl;
                    }
                    break;
                case 5:
                    cout<<"***POLE I OBWOD TRAPEZU***\n";
                    cout<<"Wprowadz bok a: ";
                    cin>>a;
                    cout<<"Wprowadz bok b: ";
                    cin>>b;
                    cout<<"Wprowadz bok c: ";                                               //Trapez
                    cin>>c;
                    cout<<"Wprowadz bok d: ";
                    cin>>d;
                    cout<<"Wprowadz wysokosc: ";
                    cin>>h;
                    if(a<0||b<0||c<0||d<0||h<0)
                    {
                        cout<<"Nieprawidlowe dane (bok<0 lub h<0) \n\n";
                    }
                    else
                    {
                        Pt=((a+b)*h)/2;
                        Ot=a+b+c+d;
                        cout<<"Pole trapezu: "<<Pt<<endl;
                        cout<<"Obwod trapezu: "<<Ot<<endl;
                    }
                    break;
                }


        }
        int (bryly);
        {
            bool menubrylynobrot = true;
            while (menubrylynobrot != false);{
                cout << " 1 - Ppc i objetosc szescianu\n";
                cout << " 2 - Ppc i objetosc prostopadloscianiu\n";
                cout << " 3 - Ppc i objetosc walca\n";                                                  //Proba nowego menu
                cout << " 4 - Ppc i objetosc stozka\n";
                cout << " 5 - Ppc i objetosc kuli\n";
                cout << " 6 - Powrot\n\n";
                cout << " Wpisz liczbe chcianej opcji i zatwierdz enterem: ";
                cin >> wybor3;
                switch (wybor3){


                }

            }

        }


I mam taki problem, iż kiedy kończę jakieś rozwiązanie np. Po wprowadzeniu danych program oblicza dane, ale zawiesza się na pustej linii, a chciałbym aby powróciło do poprzedniego menu (W przypadku kwadratu do wyboru figur płaskich)
Kolejnym problemem jest to, że nie mogę przejść kolejnego menu(Brył). Po wpisaniu "2" tak jakby zwraca return 0;
P-154371
» 2016-12-02 16:55:35
Kod spagetti.
Podziel go na funkcje:
» Kurs C++ » Poziom 2Funkcje - pierwsze starcie lekcja
» Kurs C++ » Poziom 2Funkcje, a słowo kluczowe return lekcja
Każdą funkcjonalność wydziel do osobnej funkcji.

Usprawnianie programów

Proponuję zaprzyjaźnić się z debuggerem.
P-154407
» 2016-12-02 18:16:00
To co kolega napisał oraz dodatkowo, nazywaj zmienne może nieco bardziej opisowo a nie Ok bo to nie jest Ok. Ok? :-)
Jak wydzielisz funkcje, o wiele łatwiej zrealizujesz menu. Pokaż wtedy kod a będzie łatwiej Ci pomóc.
P-154411
« 1 »
  Strona 1 z 1