//Taschenrechnerprogramm 0.4
//Autor: Thomas Bee
//Kontakt thomasbee@web.de

# include <iostream.h>

void main ( )
{
float a;
float b;
char auswahl;
char auswahlb;
char rechenart;
char hilferechnen;
cout <<"\n\n";
cout <<"   HERZLICH WILLKOMMEN!!!\n\n";
cout <<"   Sie haben das Taschenrechner-\n";
cout <<"   programm 0.4 aufgerufen.\n";
cout <<"   Wie wollen Sie fortfahren?\n\n";
cout <<"   Wenn Sie rechnen möchten drücken Sie r.\n\n";
cout <<"   Wenn Sie Hilfe brauchen drücken Sie h.\n\n";
cout <<"   Wenn Sie abrechen wollen drücken Sie a.\n\n";

cin >> auswahl;
switch (auswahl)
	{
	case 'a':
	cout << "Selbst Schuld!!!\n\n";//Abbruchbefehl
	return 0;
	break;
	case 'h':
	cout <<"   Folgende Operationen sind möglich:\n\n";
	cout <<"   Multiplizieren Drücken Sie m,x,X oder *!\n";
	cout <<"   Dividieren Drücken Sie :, d oder /!\n";
	cout <<"   Addieren Drücken sie a oder +! \n";
	cout <<"   Subtrahieren Drücken Sie s oder -! \n";
	cout <<"   Quadrieren Drücken Sie q! \n\n";
	cout <<"   Die Eingabe Reihenfolge ist:\n\n";
	cout <<"   1. Zahl, Operator, 2. Zahl (nicht beim quadrieren)\n\n";
	cout <<"   Wie wollen Sie fortfahren?\n\n";
	cout <<"   Wenn Sie rechnen möchten drücken Sie r.\n";
	cout <<"   Wenn Sie abrechen wollen drücken Sie a.\n\n";
	cin >> hilferechnen;

		switch (hilferechnen)
		{
		case 'a':
		cout << "Selbst Schuld!!!\n\n";
		return 0;
		break;
			case 'r':
			cout << "\n\n";
			cout << " Bitte geben Sie die 1. Zahl ein:\n\n";
			cin >> a;
			cout << " Bitte geben Sie den Operator ein:\n\n";
			cin >> rechenart;

				switch (rechenart)
				{
				case 'q':
				cout << "\n\n";
				cout << " Das Ergebnis lautet: " << a * a << endl;
				break;
				case 's':
				case '-':
				cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
				cin >> b;
				cout << "\n\n";
				cout << " Das Ergebnis lautet: " << a - b << endl;
				break;
				case 'a':
				case '+':
				cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
				cin >> b;
				cout << "\n\n";
				cout << " Das Ergebnis lautet: " << a + b << endl;
				break;
				case 'd':
				case '/':
				cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
				cin >> b;
				cout << "\n\n";
				cout << " Das Ergebnis lautet: " << a / b << endl;
				break;
				case 'm':
				case '*':
				case 'x':
				case 'X':
				cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
				cin >> b;
				cout << "\n\n";
				cout << " Das Ergebnis lautet: " << a * b << endl;
				break;
				default:
				cout << "Ungültiger Operator!!!\n";
				cout << "Nochmal!!!!!!!!!!!!!!!\n\n";
				return 0;
				}
			break;
			default:
			cout << "Sie müssen sich schon richtig entscheiden!!!\n";
		}
	break;

	case 'r':
	cout << "\n\n";
	cout << " Bitte geben Sie die 1. Zahl ein:\n\n";
	cin >> a;
	cout << " Bitte geben Sie den Operator ein:\n\n";
	cin >> rechenart;
	switch (rechenart){
	case 'q':
	cout << "\n\n";
	cout << " Das Ergebnis lautet: " << a * a << endl;
	break;
	case 's':
	case '-':
	cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
	cin >> b;
	cout << "\n\n";
	cout << " Das Ergebnis lautet: " << a - b << endl;
	break;
	case 'a':
	case '+':
	cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
	cin >> b;
	cout << "\n\n";
	cout << " Das Ergebnis lautet: " << a + b << endl;
	break;
	case 'd':
	case '/':
	cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
	cin >> b;
	cout << "\n\n";
	cout << " Das Ergebnis lautet: " << a / b << endl;
	break;
	case 'm':
	case '*':
	case 'x':
	case 'X':
	cout << " Bitte geben Sie die 2. Zahl ein:\n\n";
	cin >> b;
	cout << "\n\n";
	cout << " Das Ergebnis lautet: " << a * b << endl;
	break;
	default:
	cout << "Ungültiger Operator!!!\n";
	cout << "Nochmal!!!!!!!!!!!!!!!\n\n";
	return 0;
	}
	break;

	default:
	cout << "Sie müssen sich schon richtig entscheiden!!!\n";
	return 0;
	}
}
//Der Autor übernimmt keine Garantie für
//die Funktionsfähigkeit des Programms;-)
