// using namespace std;
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
/*
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
*/
class kreisring
{
public:
float A;
float r;
float R;
};
class kreis
{
public:
float A;
float r;
};
class kreissegment
{
public:
float A;
float r;
float alpha;
};
class myCircle
{
private:
void area(kreis a);
void area(kreissegment a);
void area(kreisring a);
public:
void input(void);
};
int main (void)
{
myCircle Calc;
Calc.input();
return 0;
}
void myCircle::area(kreis a)
{
float pi=3.14159;
a.A=a.r*a.r*pi;
printf("Kreis-Flaeche:%f cm2\n",a.A);
}
void myCircle::area(kreissegment a)
{
float pi=3.14159;
a.A=a.alpha*a.r*a.r*pi/360;
printf("Kreissegment-Flaeche:%f cm2\n",a.A);
}
void myCircle::area(kreisring a)
{
float pi=3.14159;
a.A=pi*(a.R*a.R-a.r*a.r);
printf("Kreisring-Flaeche:%f cm2\n",a.A);
}
void myCircle::input(void)
{
char buffer[100];
kreis k;
kreisring kr;
kreissegment ks;
while(1)
{
// printf("Flaechenberechnung: Kreis [a] Kreissegment [b] Kreisring [c] Programmende [e]: ");
cout << "Flaechenberechnung: Kreis [a] Kreissegment [b] Kreisring [c] Programmende [e]: " << endl;
//scanf("%s",buffer);
cin >> buffer;
if (strlen(buffer) != 1) continue;
if (buffer[0] == 'a')
{
while(1)
{
// printf("Radius r des Kreises in cm: ");
cout << "Radius r des Kreises in cm: " << endl;
//scanf("%s",buffer);
cin >> buffer;
k.r=atof(buffer);
if ((k.r)==0) continue;
break;
}
area(k);
break;
}
else if (buffer[0] == 'b')
{
while(1)
{
printf("Radius r des Kreissegments in cm: ");
scanf("%s",buffer);
ks.r=atof(buffer);
if (ks.r==0) continue;
break;
}
while(1)
{
printf("Winkel alpha des Kreissegments in Grad: ");
scanf("%s",buffer);
ks.alpha=atof(buffer);
if ((ks.alpha==0) || (ks.alpha > 360)) continue;
break;
}
area(ks);
break;
}
else if (buffer[0] == 'c')
{
while(1)
{
printf("Kleiner Radius r des Kreisringes in cm: ");
scanf("%s",buffer);
kr.r=atof(buffer);
if (kr.r==0) continue;
break;
}
while(1)
{
printf("Grosser Radius R des Kreisringes in cm: ");
scanf("%s",buffer);
kr.R=atof(buffer);
if (kr.R==0) continue;
break;
}
area(kr);
break;
}
else if (buffer[0] == 'e')
{
exit(0);
}
}
}