Problem z tworzeniem kolejnego menu i powrotami do nich
Ostatnio zmodyfikowano 2016-12-02 18:16
Ruimis 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;
|
|
carlosmay |
» 2016-12-02 16:55:35 |
|
mokrowski |
» 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. |
|
« 1 » |