Boobie
Użytkownik
- Dołączył
- Lipiec 25, 2008
- Posty
- 195
Witam.
Powoli przerabiam sobie Symfonie C++. Naszło mnie ostatnio na stworzenie takiego małego programu. Nie działa mi w nim jedna opcja tzn. jest 6 opcji do wyboru i 0 jako wyjście. Gdy się wciśnie opcje do np 7 lub inną, która nie jest dostępna z możliwych program działa i liczy nie wiadomo co i skąd, a powinien wyskoczyć napis: Wybrana opcja nieprawidłowa !
Podaję poniżej kod. Proszę o ewentualną poprawę lub wytłumaczenie, gdzie zrobiłem błąd.
Pozdrawiam.
Powoli przerabiam sobie Symfonie C++. Naszło mnie ostatnio na stworzenie takiego małego programu. Nie działa mi w nim jedna opcja tzn. jest 6 opcji do wyboru i 0 jako wyjście. Gdy się wciśnie opcje do np 7 lub inną, która nie jest dostępna z możliwych program działa i liczy nie wiadomo co i skąd, a powinien wyskoczyć napis: Wybrana opcja nieprawidłowa !
Podaję poniżej kod. Proszę o ewentualną poprawę lub wytłumaczenie, gdzie zrobiłem błąd.
Pozdrawiam.
PHP:
/* Program do obliczania pola i obwodu kwadratu, prostokąta i trójkąta
*/
#include <iostream>
int main ()
{
poczatek:
std::cout << "Wybierz opcje ktora Cie interesuje. \n"
<< "Oblicz: \nnr 1 - pole kwadratu \nnr 2 - obwod kwadratu "
<< "\nnr 3 - pole prostokata \nnr 4 - obwod prostokata "
<< "\nnr 5 - pole trojkata \nnr 6 - obwod trojkata \nnr 0 - zakoncz "
<< "\nPodaj opcje: ";
int opcja;
std::cin>>opcja;
switch(opcja)
{
case 1:
std::cout<< "Pole kwadratu \n";
{
int a;
double pole;
std::cout<< "Podaj bok a: ";
std::cin>> a;
pole = a*a;
std::cout<<std::endl;
std::cout<< "Pole kwadratu wynosi: " << a*a << "\n";
system("pause");
goto poczatek;
}
break;
case 2:
std::cout<< "Obwod kwadratu \n";
{
int a;
double obwod;
std::cout<< "Podaj bok a: ";
std::cin>> a;
obwod=4*a;
std::cout<<std::endl;
std::cout<< "Obwod kwadratu wynosi: " << 4*a << "\n";
system("pause");
goto poczatek;
}
break;
case 3:
std::cout<< "Pole prostokata \n";
{
int a;
int b;
double pole;
std::cout<< "Podaj bok a: ";
std::cin>> a;
std::cout<< "Podaj bok b: ";
std::cin>> b;
pole = a*b;
std::cout<<std::endl;
std::cout<< "Pole prostokata wynosi: " << a*b << "\n\n";
system("pause"); // zrobić opcje ktora pozwoli na
// zakonczenie typu goto do opcji 0
goto poczatek;
}
break;
case 4:
std::cout<< "Obwod prostokata \n";
{
int a;
int b;
double obwod;
std::cout<< "Podaj bok a prostokata: ";
std::cin>> a;
std::cout<< "Podaj bok b prostokąta: ";
std::cin>> b;
obwod = 2*a + 2*b;
std::cout<<std::endl;
std::cout<< "Obwod prostokata wynoski: " << 2*a + 2*b << "\n\n";
system("pause");
goto poczatek;
}
break;
case 5:
std::cout<< "Pole trojkata \n";
{
int a;
int h;
double pole;
std::cout<< "Podaj bok trojkata: ";
std::cin>> a;
std::cout<< "Podaj wysokosc trojkata: ";
std::cin>> h;
pole = (a*h)/2;
std::cout<<std::endl;
std::cout<< "Pole trojkata wynosi: " << (a*h)/2 << "\n\n";
system("pause");
goto poczatek;
}
break;
case 6:
std::cout<< "Obwod trojkata \n";
{
int a;
int h;
double obwod;
std::cout<< "Podaj bok trojkata :";
std::cin>> a;
std::cout<< "Podaj wysokosc trojkata :";
std::cin>> h;
obwod = (a*h)/2;
std::cout<<std::endl;
std::cout<< "Obwod trojkata wynosi: " << (a*h)/2 << "\n";
system("pause");
goto poczatek;
}
break;
case 0:
std::cout<< "Zakoncz \n";
break;
default: //dlaczego nie działa
std::cout<< "Wybrana opcja" <<opcja<< "nieprawidłowa !"; //opcja default?
break;
}
}