Taschenrechner



  • Hallo !

    Wie baue ich eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen ?
    Danke !

    LG

    #include <iostream>
      #include <cmath>   //header für mathe ops
    
      using namespace std;
    
      int menu () {  //modul für übersichtlichkeit
    
          int i;
    
    /*-------------------------------------------------------------------------------*/ 
    
          // Begrüßung 
          cout << "\n"
                  "\n\tHerzlich Willkommen!"
                  "\n"   ;
    
          system ("Pause");  //pause
    
          system ("cls") ;   //conolsentext löschen
    
    /*-------------------------------------------------------------------------------*/   
    
        // Funktionen in einem übersichtlichen Menü
    
    cout << "\n\t<----------Taschenrechner------------>"
            "\n"
            "\n\t[1] Addition"
            "\n\t[2] Subtraktion"
            "\n\t[3] Multiplikation"
            "\n\t[4] Division"
            "\n\t[5] Potenz"
            "\n\t[6] Wurzel"
            "\n\t[7] Programm beenden"
            "\n"
            "\n\t<------------------------------------>"
            "\n"
            "\nBitte waehlen sie eine Funktion und druecken sie enter" 
            "\n"
            "\n"
            "\n"
            "\n" 
            "\n"
            "\n"
            "\n" ;
    
    cin >> i;  //eingabe der auswahl ist oben deklariert worden
    return i;  //damit wir i in hauptfunktioen benutzen können
    
            }
    /*-------------------------------------------------------------------------------*/ 
    
    int main () {    //hauptmenü
    
    bool quit=false;                    //variable j/n
    int schluss;                        //beenden
    long double a, b;                  //variable
    int aus=menu();                        //auswahl
    do {                            //do schleife damit bestimmte dinge wiederhollt werden
    switch (aus) {                        //bedingungsschleife
    
    /*-------------------------------------------------------------------------------*/
    
        case 1:                    
        case 2:
        case 3:                        
        case 4:
    
            cout << "\n\n\tBitte ersten Operanden eingeben : ";
            cin >> a;
            cout << "\n\n\tBitte zweite Operanden eingeben : ";
            cin >> b;
            switch(aus) {                            //nochmal das selbe nur jetz einzeln
    
                      case 1: cout << "\n\t" << a << " + " << b << " = " << a + b << endl; break;          //plus
                      case 2: cout << "\n\t" << a << " - " << b << " = " << a - b << endl; break;    //minus
                      case 3: cout << "\n\t" << a << " * " << b << " = " << a * b << endl; break;    //mal
                      case 4: cout << "\n\t" << a << " / " << b << " = " << a / b << endl; break;    //geteilt
            }
        quit=true;                                //beenden--> wahr
        break;                        //break --> endlich
    
    /*-------------------------------------------------------------------------------*/
    
        case 5:
        case 6:
            cout << "\n\n\tBitte Operanden eingeben : ";
            cin >> a;
            switch (aus) {                       
    
                case 5: cout << "\n\t" << a << " zum Quadrat ist = " << a*a << endl; break;    //hochrechnen
                        cout << "\n"
                                "\n"
                                "\n";    
    
                case 6:    cout << "\n\tDie Wurzel von " << a <<  "=" << sqrt(a) << endl; break; //wurzel dafür cmath
                           cout << "\n"
                                   "\n"
                                   "\n";
    
            }                   
        quit=true;                    //beenden --> wahr
        break;                        //break --> endlich
    
    /*-------------------------------------------------------------------------------*/    
    
        case 7:  exit(0) ; //programm beenden
    
    /*-------------------------------------------------------------------------------*/    
    
       default:
              cout << "\n\tFalsche eingabe";            //wenn falsche eingabe
        break;
    
    }                            
    
    }while (!quit);                        //do schleife schliesen mit bedingung das quit nicht wahr sein darf                    
    
    system ("Pause");
    system ("cls");   
    
    /*-------------------------------------------------------------------------------*/
    
    cout << "\n"
            "\n"
            "\nIch hoffe sie hatten viel Spass mit diesem kleinen Taschenrechner!"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n\tBitte beliebige Taste und dann enter druecken zum beenden";
    cin >> schluss;
    
    return 0;
    
    }
    


  • Überleg dir doch mal ob du system("Pause") und system("cls") nicht ändern willst.
    Das ist dermaßen hässlich 😉



  • Meinungsvertreter schrieb:

    Überleg dir doch mal ob du system("Pause") und system("cls") nicht ändern willst.
    Das ist dermaßen hässlich 😉

    Das mag sein. Aber wie baut er eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen? Welchen Befehl soll er statt system("cls"); nehmen? Welchen Befehl soll er statt system("pause"); nehmen?



  • volkard schrieb:

    Meinungsvertreter schrieb:

    Überleg dir doch mal ob du system("Pause") und system("cls") nicht ändern willst.
    Das ist dermaßen hässlich 😉

    Das mag sein. Aber wie baut er eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen? Welchen Befehl soll er statt system("cls"); nehmen? Welchen Befehl soll er statt system("pause"); nehmen?

    Wozu die beiden Befehle? Unter Linux gibts das nicht und ich kann mir nicht vorstellen wozu das gut wäre. Und um das ganze ding de while schleife zu packen bin ich zu faul, da er so merkwürdige Kommentar linien gemacht hat. 😃

    Für pause gibts sleep(unsigned int seconds) und dieses komische cls ist wohl windoof only 🙄



  • Meinungsvertreter schrieb:

    Wozu die beiden Befehle?

    zum bildschirmlöschen und auf-tastendruck-warten.

    Unter Linux gibts das nicht

    klar. system("clear") und system("read"). was bist denn du für ein linuxer?

    und ich kann mir nicht vorstellen wozu das gut wäre.

    das ist auch nicht deine aufgabe. es reicht, wenn nepu sich das vorstellen kann.

    Und um das ganze ding de while schleife zu packen bin ich zu faul, da er so merkwürdige Kommentar linien gemacht hat. 😃

    das läßt sich beheben:

    #include <iostream>
    #include <cmath>   //header für mathe ops
    
    using namespace std;
    
    int menu ()    //modul für übersichtlichkeit
    {
    
        int i;
    
        // Begrüßung
        cout << "\n"
             "\n\tHerzlich Willkommen!"
             "\n"   ;
    
        system ("Pause");  //pause
    
        system ("cls") ;   //conolsentext löschen
    
        // Funktionen in einem übersichtlichen Menü
    
        cout << "\n\t<----------Taschenrechner------------>"
             "\n"
             "\n\t[1] Addition"
             "\n\t[2] Subtraktion"
             "\n\t[3] Multiplikation"
             "\n\t[4] Division"
             "\n\t[5] Potenz"
             "\n\t[6] Wurzel"
             "\n\t[7] Programm beenden"
             "\n"
             "\n\t<------------------------------------>"
             "\n"
             "\nBitte waehlen sie eine Funktion und druecken sie enter"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n" ;
    
        cin >> i;  //eingabe der auswahl ist oben deklariert worden
        return i;  //damit wir i in hauptfunktioen benutzen können
    
    }
    
    int main ()      //hauptmenü
    {
    
        bool quit=false;                    //variable j/n
        int schluss;                        //beenden
        long double a, b;                  //variable
        int aus=menu();                        //auswahl
        do                              //do schleife damit bestimmte dinge wiederhollt werden
        {
            switch (aus)                          //bedingungsschleife
            {
    
            case 1:
            case 2:
            case 3:
            case 4:
    
                cout << "\n\n\tBitte ersten Operanden eingeben : ";
                cin >> a;
                cout << "\n\n\tBitte zweite Operanden eingeben : ";
                cin >> b;
                switch (aus)                             //nochmal das selbe nur jetz einzeln
                {
    
                case 1:
                    cout << "\n\t" << a << " + " << b << " = " << a + b << endl;
                    break;          //plus
                case 2:
                    cout << "\n\t" << a << " - " << b << " = " << a - b << endl;
                    break;    //minus
                case 3:
                    cout << "\n\t" << a << " * " << b << " = " << a * b << endl;
                    break;    //mal
                case 4:
                    cout << "\n\t" << a << " / " << b << " = " << a / b << endl;
                    break;    //geteilt
                }
                quit=true;                                //beenden--> wahr
                break;                        //break --> endlich
    
            case 5:
            case 6:
                cout << "\n\n\tBitte Operanden eingeben : ";
                cin >> a;
                switch (aus)
                {
    
                case 5:
                    cout << "\n\t" << a << " zum Quadrat ist = " << a*a << endl;
                    break;    //hochrechnen
                    cout << "\n"
                         "\n"
                         "\n";
    
                case 6:
                    cout << "\n\tDie Wurzel von " << a <<  "=" << sqrt(a) << endl;
                    break; //wurzel dafür cmath
                    cout << "\n"
                         "\n"
                         "\n";
    
                }
                quit=true;                    //beenden --> wahr
                break;                        //break --> endlich
    
            case 7:
                exit(0) ; //programm beenden
    
                /*-------------------------------------------------------------------------------*/
    
            default:
                cout << "\n\tFalsche eingabe";            //wenn falsche eingabe
                break;
    
            }
    
        }
        while (!quit);                        //do schleife schliesen mit bedingung das quit nicht wahr sein darf
    
        system ("Pause");
        system ("cls");
    
        cout << "\n"
             "\n"
             "\nIch hoffe sie hatten viel Spass mit diesem kleinen Taschenrechner!"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n\tBitte beliebige Taste und dann enter druecken zum beenden";
        cin >> schluss;
    
        return 0;
    
    }
    

    Für pause gibts sleep(unsigned int seconds) und dieses komische cls ist wohl windows only 🙄

    pause wartet auf einen tastendruck. es reicht, stattdessen auf enter zu warten.



  • nepu schrieb:

    Wie baue ich eine Schleife ein,welche fragt ob weitere Rechnungen durchgeführt werden sollen ?

    eigentlich hast du diese schleife schon. setzt halt nur dann quit=true, wenn der benutzer wirklich beenden will.

    #include <iostream>
    #include <cstdlib>
    #include <cmath>   //header für mathe ops
    
    using namespace std;
    
    int menu ()    //modul für übersichtlichkeit
    {
    
        int i;
    
        // Begrüßung
        cout << "\n"
             "\n\tHerzlich Willkommen!"
             "\n"   ;
    
        system ("Pause");  //pause
    
        system ("cls") ;   //conolsentext löschen
    
        // Funktionen in einem übersichtlichen Menü
    
        cout << "\n\t<----------Taschenrechner------------>"
             "\n"
             "\n\t[1] Addition"
             "\n\t[2] Subtraktion"
             "\n\t[3] Multiplikation"
             "\n\t[4] Division"
             "\n\t[5] Potenz"
             "\n\t[6] Wurzel"
             "\n\t[7] Programm beenden"
             "\n"
             "\n\t<------------------------------------>"
             "\n"
             "\nBitte waehlen sie eine Funktion und druecken sie enter"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n" ;
    
        cin >> i;  //eingabe der auswahl ist oben deklariert worden
        return i;  //damit wir i in hauptfunktioen benutzen können
    
    }
    
    int main ()      //hauptmenü
    {
    
        bool quit=false;                    //variable j/n
        long double a, b;                  //variable
        do                              //do schleife damit bestimmte dinge wiederhollt werden
        {
    		int aus=menu();                        //auswahl
            switch (aus)                          //bedingungsschleife
            {
    
            case 1:
            case 2:
            case 3:
            case 4:
    
                cout << "\n\n\tBitte ersten Operanden eingeben : ";
                cin >> a;
                cout << "\n\n\tBitte zweite Operanden eingeben : ";
                cin >> b;
                switch (aus)                             //nochmal das selbe nur jetz einzeln
                {
    
                case 1:
                    cout << "\n\t" << a << " + " << b << " = " << a + b << endl;
                    break;          //plus
                case 2:
                    cout << "\n\t" << a << " - " << b << " = " << a - b << endl;
                    break;    //minus
                case 3:
                    cout << "\n\t" << a << " * " << b << " = " << a * b << endl;
                    break;    //mal
                case 4:
                    cout << "\n\t" << a << " / " << b << " = " << a / b << endl;
                    break;    //geteilt
                }
                break;                        //break --> endlich
    
            case 5:
            case 6:
                cout << "\n\n\tBitte Operanden eingeben : ";
                cin >> a;
                switch (aus)
                {
    
                case 5:
                    cout << "\n\t" << a << " zum Quadrat ist = " << a*a << endl;
                    break;    //hochrechnen
                    cout << "\n"
                         "\n"
                         "\n";
    
                case 6:
                    cout << "\n\tDie Wurzel von " << a <<  "=" << sqrt(a) << endl;
                    break; //wurzel dafür cmath
                    cout << "\n"
                         "\n"
                         "\n";
    
                }
                break;
    
            case 7:
                quit=true;                    //beenden --> wahr
                break;
    
                /*-------------------------------------------------------------------------------*/
    
            default:
                cout << "\n\tFalsche eingabe";            //wenn falsche eingabe
                break;
    
            }
    
        }
        while (!quit);                        //do schleife schliesen mit bedingung das quit nicht wahr sein darf
    
        system ("Pause");
        system ("cls");
    
        cout << "\n"
             "\n"
             "\nIch hoffe sie hatten viel Spass mit diesem kleinen Taschenrechner!"
             "\n"
             "\n"
             "\n"
             "\n"
             "\n\tBitte beliebige Taste und dann enter druecken zum beenden";
        system ("Pause");
    
        return 0;
    
    }
    

Anmelden zum Antworten