C++ Taschenrechner



  • Hallo,

    ich muss morgen in der Schule eine in C programmierten Taschenrechner vorstellen.
    Leider verstehe ich den Quellcode noch nicht ganz.

    Könnt ihr mir die Befehle erläutern (using namespace std, string exit, system("pause"), system("cls"), cin>>exit;)

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <conio.h>
    using namespace std;
    double func (double *zahl1, double *zahl2);
    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) 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':
                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 func (double *zahl1,double *zahl2)
    {
     system("cls");
     cout<<"Bitte Geben Sie die erste Zahl ein :";
     cin>>*zahl1;
     cout<<"Bitte Geben Sie die zweite Zahl ein :";
     cin>>*zahl2;
    }
    ////////////////////////////////////////
    

    Danke,

    Matrox



  • using namespace std ist kein C, sondern C++. 😉



  • @ Matrox : C programm, mit dem threadtitel "C++ ..." und das im R u d P - Board, Glückwunsch ! mehr kann man fast nicht falsch machen 😉

    zum eigentlichen problem: using namespace xyz macht alle variablen, klassen, funktionen etc., die innerhalb dieser namespace liegen für dich "sichtbar"; im klartext heißt das für dich du musst nicht schreiben

    xyz::var3 //bzw
    std::cout
    

    wenns allerdings noch eine variable mit dem namen cout gibt dann könnts probleme geben...
    cout ist übrigens für die ausgabe von zeichen/zeichenketten/wasauchimmer zuständig und cin für die eingabe. du ließt also einen wert (zeichenkette) in den string (C++ datentyp, der zeichenketten komfortabel speichern kann) exit ein mit

    cin>>exit
    

    naja und die system befehle sollten eigentlich vermieden werden, da langsam, z.T. systemabhängig, gefährlich etc., sollte bei dem kleinen proggy aber egal sein. es handelt sich dabei einfach um konsolenbefehle, die das programm unterbrechen und auf eine benutzereingabe warten (system("pause")) bzw. den bildschirm löschen, also eigentlich eher die von der konsole ausgegebenen zeichen.


Log in to reply