Da hier ja nur Taschenrechner sind hab ich gedacht poste ich meinen auch mal rein(Sorry fürs Ausgraben des Threads ^^)
Habe noch einige Probleme drinne die nicht funktionieren, z.B. kommt bei jeder Rechenoperation nun 0 oder eine wirre Zahl raus =/.
Für Hilfe bin ich immer dankbar.
Hier der Code:
Alles anzeigen
Habe noch einige Probleme drinne die nicht funktionieren, z.B. kommt bei jeder Rechenoperation nun 0 oder eine wirre Zahl raus =/.
Für Hilfe bin ich immer dankbar.
Hier der Code:
Quellcode
- #include <iostream>
- #include <conio.h>
- #include <stdlib.h>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- long double calculate(int ausw, long double x, long double y); //deklaration der funktion 'calculate'
- long double prozent(int ausw, long double x, long double y); //deklaration der funktion 'prozent'
- float winkel(int ausw, float x); //deklaration der funktion 'winkel'
- int main()
- {
- int auswahl; //deklaration der Variablen für die Funktion 'main'
- long double a = 0.0;
- long double b = 0.0;
- long double ergebnis = 0.0;
- char antwort;
- do //Schleife fürs Auswahl-Menü die nur solange gilt
- { //wie die Antwort gleich 'j' ist
- cout << "Calculator v0.9_RC_1\n" << endl;
- cout << "|==============|\n\n";
- cout << "[1]Addition\n"<<
- "[2]Subtraktion\n"<< //Auswahl-Menü
- "[3]Multiplikation\n"<<
- "[4]Division\n"<<
- "[5]Quadrieren\n"<<
- "[6]Wurzel ziehen\n"<<
- "[7]Prozentrechnung\n"<<
- "[8]Sinus\n"<<
- "[9]Cosinus\n"<<
- "[10]Tangens\n"<<
- "[0]Beenden\n\n";
- cout << "Waehlen sie eine Option aus: ";
- cin >> auswahl; //Einlesen der Menü-Auswahl
- if( auswahl == 0 ) //Programm beenden wenn 0 gewählt wird
- return 0;
- while (!(cin >> auswahl))
- {
- cout << "Falsche Eingabe du Heinz!";
- cin.clear();
- cin.ignore(10000, '\n');
- cout << "\n\nNeuer Versuch: ";
- cin >> auswahl;
- }
- system("cls"); //Bildschirminhalt löschen
- cout << "Kommazahlen muessen mit einem Punkt statt eines Kommas eingegeben werden!\n\n";
- if ( auswahl >= 1 && auswahl <= 4 )
- {
- cout << "\n1.Zahl: "; //Erste Zahl einlesen
- cin >> a;
- cout << "\n2.Zahl: ";
- cin >> b; //Zweite Zahl einlesen
- }
- else if( auswahl >= 5 && auswahl <= 6 )
- {
- cout << "\nBasis: "; //Basis einlesen
- cin >> a;
- cout << "\nExponent: "; //Exponent einlesen
- cin >> b;
- }
- else if( auswahl == 7 ) //Werte für Prozentrechnung einlesen
- {
- cout << "Geben sie den Grundwert G an: ";
- cin >> a;
- cout << "\n\nGeben sie den Prozentsatz an: ";
- cin >> b;
- }
- else if ( auswahl >=8 && auswahl <=10 )
- {
- cout << "Geben sie den Winkel ohne Grad an: ";
- cin >> a;
- }
- ergebnis = calculate(auswahl, a, b);
- ergebnis = prozent(auswahl, a, b);
- ergebnis = winkel(auswahl, a);
- cout << "\nDas Ergebnis lautet: " << setprecision(3) << fixed << ergebnis;
- cout << "\n\nWollen sie eine weitere Berechnung durchfuehren?\n";
- cout << "<J/N>"; //Abfrage ob weitergerechnet werden soll oder nicht
- cin >> antwort;
- while( antwort != 'j' && antwort != 'n' )
- {
- cout << "Falsche Eingabe, wiederholen: "; //Fehlerabfang falls Zahl anstatt Buchstabe eingegeben wird
- cin >> antwort;
- }
- system("cls"); //Bildschirminhalt löschen
- }while (antwort == 'j' ); //Bedingung der Do-While-Schleife
- return 0;
- }
- long double calculate (int ausw,long double x,long double y) //Funktion zum berechnen der einzelnen Werte
- {
- long double res = 0.0; //Definition des Ergebnis-Wertes
- switch(ausw) //Switch-Anweisung für Menü-Auswahl
- {
- case 1 : //Berechnung zur Addition
- {
- res = x + y;
- break;
- }
- case 2 : //Berechnung zur Subatraktion
- {
- res = x - y;
- break;
- }
- case 3 : //Berechnung zur Multiplikation
- {
- res = x * y;
- break;
- }
- case 4 : //Berechnung zur Division
- {
- res = x / y;
- if (y == 0) //Fehlerabfang falls durch 0 dividiert wird
- {
- cout << "\nDivision durch 0 nicht moeglich!";
- }
- break;
- }
- case 5 :
- {
- res = pow (x, y); //Berechnung zu Potenzierung
- break;
- }
- case 6 :
- {
- res = pow(x, 1.0 / y); //Berechnung zur Wurzelziehung
- break;
- }
- }
- return res;
- }
- long double prozent(int ausw, long double x, long double y) //Funktion zur Prozentrechnung
- {
- long double res = 0.0;
- switch(ausw)
- {
- case 7 :
- {
- res = x * y / 100;
- break;
- }
- }
- return res;
- }
- float winkel(int ausw, float x)
- {
- float res = 0.0;
- switch(ausw)
- {
- case 8 :
- {
- res = sin(x * M_PI / 180);
- cout << "Der Sinus von " << x << " lautet: " << setprecision(3) << fixed << res;
- break;
- }
- case 9 :
- {
- res = cos(x * M_PI / 180);
- cout << "Der Cosinus von " << x << " lautet: " << setprecision(3) << fixed << res;
- break;
- }
- case 10 :
- {
- res = tan(x * M_PI / 180);
- cout << "Der Tangens von " << x << " lautet: " << setprecision(3) << fixed << res;
- break;
- }
- }
- }