Nie jestem jakimś ekspertem, ale wydaje mi się, że lepiej zrobić do tego klasę.
#include<iostream>
using namespace std;
class Obliczenia
{
public:
void WybierzMenu(double &a, double &b, char wybor)
{
switch (wybor)
{
case 'K' : ObliczKwadrat(a); break;
case 'P' : ObliczProstokat(a,b); break;
case 'O' : ObliczKolo(a);
}
}
double ObliczKwadrat(double &a)
{
cout << "Podaj bok kwadratu: "; cin >> a;
cout << "Obwod kwadratu wynosi = " << a*4<<endl;
cout << "Pole kwadratu wynosi = " << a*a<<endl;
}
double ObliczProstokat(double &a, double &b)
{
cout << "Podaj 1 bok prostokata: "; cin >> a;
cout << "Podaj 2 bok prostokata: "; cin >> b;
cout << "Obwod prostokata wynosi = " << a*2+b*2<<endl;
cout << "Pole prostokata wynosi = " << a*b<<endl;
}
double ObliczKolo(double &a)
{
cout << "Podaj promien kola: "; cin >> a;
cout << "Obwod kola wynosi = " << 2*a*3.14<<endl;
cout << "Pole prostokata wynosi = " << 3.14*a*a<<endl;
}
};
int main()
{
Obliczenia o;
char wybor;
double a=0, b=0;
cout << "Wybierz figure ktorej chcesz policzyc obwod i pole" << endl;
cout << "K - kwadrat, P - prostokat, O - okrag. "; cin >> wybor;
o.WybierzMenu(a, b, wybor);
return 0;
}
Po skompilowaniu działa ;)
//EDIT
W codeblocks przechodzi, ale w visual studio wywala błędy, bo nie zwracasz wartości w funkcji double, zamień ją na void i po sprawie.