#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
double prozent1 (double w,double p);
double prozent2 (double g,double p);
double prozent3 (double w,double g);
double func (double *zahl1, double *pzahl2);
double potenz(double a,double b);
int main()
{   string exit;
    double zahl1,zahl2;
    do
    {
    cout<<"-------------------\n";
    cout<<"Mein Taschenrechner\n";
    cout<<"-------------------\n";
    cout<<"\nWaehlen Sie aus : \n";
    cout<<"(1) Addition\n";
    cout<<"(2) Multiplikation\n";
    cout<<"(3) Division\n";
    cout<<"(4) Subtraktion\n";
    cout<<"(5) Potenzrechnung\n";
    cout<<"(6) Prozentrechnung\n";
    cout<<"(7) Exit\n";
    switch (getch())
       {
       case '1':
            {
            func(&zahl1,&zahl2);
            cout<<zahl1<<" + "<<zahl2<<" = "<<zahl1 + zahl2<<endl;
            break;
            }      
       case '2':
            {
            func(&zahl1,&zahl2);
            cout<<zahl1<<" * "<<zahl2<<" = "<<zahl1 * zahl2<<endl;
            break;
            }      
       case '3':
            {
            func(&zahl1,&zahl2);
            if (zahl1>0 ,zahl2>0)
                {
                cout<<zahl1<<" / "<<zahl2<<" = "<<zahl1 / zahl2<<endl;
                }
            else
                {
                if(zahl1>0,zahl2==0)
                {
                cout<<"Teilen durch 0 unmoeglich!";
                }
                else
                cout<<zahl1<<" / "<<zahl2<<" =  0"<<endl;
                }
            break;
            }      
       case '4':
            {
            func(&zahl1,&zahl2);
            cout<<zahl1<<" - "<<zahl2<<" = "<<zahl1 - zahl2<<endl;
            break;
            }      
       case '5':
            {
            system("cls");
            double a,b;
            cout<<"Bitte geben Sie eine Zahl ein :";
            cin>>a;
            cout<<"Geben Sie die Potenz an :";
            cin>>b;
            cout<<"Das Ergebniss betraegt : "<<potenz(a,b)<<endl;
            break;
            }
       case '6':
            {
            system("cls");
            cout<<"Was moechten Sie Berechnen?\nWaehlen Sie aus:\n";
            cout<<"(1) Grundwert [G]\n";
            cout<<"(2) Prozentwert [W]\n";
            cout<<"(3) Prozentsatz [p]\n";
            switch (getch())
                 {
                 case '1':
                         {
                         system("cls");
                         double w,p;
                         cout<<"bitte geben Sie den Prozentwert W ein: ";
                         cin>>w;
                         cout<<"bitte geben Sie den Prozentsatz p ein: ";
                         cin>>p;
                         cout<<"G = 100*p/W = "<<prozent1(w,p)<<"\n";
                         break;
                         }
                 case '2':
                         {
                         system("cls");     
                         double p,g;
                         cout<<"bitte geben Sie den Grundwert G ein: ";
                         cin>>g;
                         cout<<"bitte geben Sie den Prozentsatz p ein: ";
                         cin>>p;
                         cout<<"W= G*p/100 = "<<prozent2(p,g)<<"\n";
                         break;
                         }
                 case '3':
                         {
                         system("cls");
                         double w,g;
                         cout<<"bitte geben Sie den Grundwert G ein: ";
                         cin>>g;
                         cout<<"bitte geben Sie den Prozentwert W ein: ";
                         cin>>w;
                         cout<<"p= 100*W/G = "<<prozent3(w,g)<<" %\n";
                         break;
                         }
                  }
                                   
            break;
            }
       case '7':
            return 0; 
       default:
               cout<<"Falsche Eingabe!\n";     
       }
    system("pause");
    system("cls");
    cout<<"Moechten Sie das Programm beenden j/n ? :";
    cin>>exit;
    system("cls");
    }
  while (exit=="n");     
}
//////////////////////////////
double potenz (double a,double b)
{
if (b==0)
    return 1;
else
    return a * potenz(a,b-1);
}
//////////////////////////////////
double func (double *pzahl1,double *pzahl2)
{
 system("cls");
 cout<<"Bitte Geben Sie die erste Zahl ein :";
 cin>>*pzahl1;
 cout<<"Bitte Geben Sie die zweite Zahl ein :";
 cin>>*pzahl2;
}
////////////////////////////////////////
double prozent1 (double w,double p)
{
       return 100*p/w;
}


////////////////////////////////////////
double prozent2 (double g,double p)
{
       return g*p/100;
}
////////////////////////////////////////
double prozent3 (double w,double g)
{
       return 100*w/g;
}
////////////////////////////////////////
