Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16
  1. #1
    Anfänger Avatar von V4|n4r
    Registriert seit
    30.07.2007
    Beiträge
    24

    Standard Mein erstes C++ Programm (Taschenrechner)

    Hallo liebe F-H Community,
    habe Heute mein erstes Programm mit C++ geschrieben.
    Möchte eure Beurteilung / Meinung hören.
    Konstruktive Kritik ist sicherlich erlaubt ^^...
    Den Quellcode habe ich mit DEV C++ compiled

    Zu erst der Quellcode (GNU GPL Lizenz )
    Code:
    /****************************
    *    Copyright by V4|n4r    *
    *    Lizenz : GNU GPL       *
    ****************************/
    
    #include <iostream>
    
    using namespace std;
    
    int rechnung();
    
    int main(void)
      {
        Anfang:
        cout<< "Willkommen beim Testtaschenrechner,\n";
        rechnung();
        goto Anfang;
        return 0;
      }
    
    int rechnung()
      { 
            
        int Zahl1;
        int Zahl2;
        char Operator;
        int Tun;
        cout<< "bitte tippen Sie Ihre erste Zahl ein ... \n";
        cin>> Zahl1;
        cout<< "Nun die zweite Zahl ...\n";
        cin>> Zahl2;
        cout<< "Wähle jetzt bitte die Rechenoperation aus:\n";
        cout<< " +\n -\n *\n :\n";
        cin>> Operator;
    
        switch(Operator)
          {
        case '+':
            cout<< "\nDas Ergebnis der Plusrechnung: ";
            cout<< Zahl1 <<" + "<< Zahl2 <<" = "<< Zahl1 + Zahl2<<"\n";
            cout<< "Was möchten Sie jetzt tun?\n 1 = Weiter...\n 2, 3, 4, ect = Beenden\n";
            cin>> Tun; 
            break;
        case '-':
            cout<< "\nDas Ergebnis der Minusrechnung: ";
            cout<< Zahl1 <<" - "<< Zahl2 <<" = "<< Zahl1 - Zahl2<<"\n";
            cout<< "Was möchten Sie jetzt tun?\n 1 = Weiter...\n 2, 3, 4, ect = Beenden\n";
            cin>> Tun;
            break;
        case '*':
            cout<< "\nDas Ergebnis der Malrechnung: ";
            cout<< Zahl1 <<" * "<< Zahl2 <<" = "<< Zahl1 * Zahl2<<"\n";
            cout<< "Was möchten Sie jetzt tun?\n 1 = Weiter...\n 2, 3, 4, ect = Beenden\n";
            cin>> Tun;
            break;
        case ':':
            cout<< "\nDas Ergebnis der Geteiltrechnung: ";
            cout<< Zahl1 <<" : "<< Zahl2 <<" = "<< Zahl1 / Zahl2<<"\n";
            cout<< "Was möchten Sie jetzt tun?\n 1 = Weiter...\n 2, 3, 4, ect = Beenden\n";
            cin>> Tun;
            break;
        case '/':
            cout<< "\nDas Ergebnis der Geteiltrechnung: ";
            cout<< Zahl1 <<" / "<< Zahl2 <<" = "<< Zahl1 / Zahl2<<"\n";
            cout<< "Was möchten Sie jetzt tun?\n 1 = Weiter...\n 2, 3, 4, ect = Beenden\n";
            cin>> Tun;
            break;
        default:
          cout<<"\nBerechnung nicht möglich.\nGeben sie bitte eine gültige Operation ein\n";
          Tun = 1;
          break;
          };
          
        if (Tun != 1)
          {
             exit(0);
          }
      
      return 0;
      }
    und das Compilerte Programm :
    http://rapidshare.com/files/49187071/Taschenrechner.exe
    (nicht gepackt, wie man an der Addy sieht)

    Freue mich über jeden Beitrag

    MfG
    V4|n4r

    P.S.: Ich hafte ausdrücklich nicht für Rechtschreibfehler ;D

  2. #2
    W32.Klez
    Registriert seit
    10.07.2007
    Beiträge
    378

    Standard

    fürs erste programm schön^^
    und vorallem objekt orientiert

  3. #3
    Anfänger Avatar von V4|n4r
    Registriert seit
    30.07.2007
    Beiträge
    24

    Standard

    Danke, hatte kein anderer Weg vorbeigeführt, da der Quellcode sonst zu groß wär ;D

    Ne Frage : sind die Header überflüssig, bzw ein Teil der Header ...
    Kommt mir nämlich so vor :?

  4. #4
    Michelangelo Virus
    Registriert seit
    14.06.2007
    Beiträge
    282

    Standard

    hi
    1.du brauchst nur iostream
    2. könntest du eine char anlegen für die operatoren also

    char operator;

    ein char kann nämlich auch ein + fassen das heisst man muss nicht mehr 1 für + schreiben oder 2 für -
    ansonsten ganz gut für erste

    mfg

    zao
    Write the code correctly and it will compile

  5. #5
    Anfänger Avatar von V4|n4r
    Registriert seit
    30.07.2007
    Beiträge
    24

    Standard

    Zitat Zitat von zao
    hi
    1.du brauchst nur iostream
    2. könntest du eine char anlegen für die operatoren also

    char operator;

    ein char kann nämlich auch ein + fassen das heisst man muss nicht mehr 1 für + schreiben oder 2 für -
    ansonsten ganz gut für erste

    mfg

    zao
    Werd ich machen ^^
    Das mit dem char wird wohl nichts, der Compiler spukt fehler meldungen beim vergleich ob "+" eingetippt wurde...

  6. #6
    W32.Klez
    Registriert seit
    23.05.2007
    Beiträge
    401

    Standard

    Obwohl ich von C++ wenig halte, ist es schön für das erste Programm.

    Auch wenn das mit der GPL Lizenz nur ein Witz war, solltest du wissen dass es in diesem Fall ungültig wäre. Da fehlt mindestens die Lizenz im Header Bereich des Sources

    Außerdem könntest du noch kurz was einbauen, so als Programmierübung gedacht:
    Man soll per Argument (also, dass was man dem Programm aufruf hinten dranhängen kann, in der cmd z.B.) etwas berechnen lassen können. Das ist besser als später im Programm alles tippen zu müssen.
    Dann wäre ein Aufruf des Programmes z.B. so:
    "programm.exe argument1 argument2 argument3"
    ein Beispiel Aufruf wäre so:
    "programm.exe plus 1 2" und es würde dann sowas ausgeben "Das Ergebnis ist: 3"

    Ein paar Tipps wie du es realisieren könntest: argc, argv
    Dein Programm kann aber so noch bleiben, man könnte diese Ursprungsform dann z.B. mit
    "programm.exe" starten ... nur wenn ein Argument hinten drangehängt wird, dann wird mein oben erwähntes gestartet.

    Kp, ob du Lust drauf hast. Aber wenn ja, dann mal ran an den Speck
    Micah joined #CS
    0meg4: kA mehr wo das war, musst mal gucken
    0meg4: Hi Micah
    Micah: Welche von euch Fotzen möchte mal geleckt werden?!
    Jacks^2: o_O
    Micah: ja komm gibs mir... erzähl was!
    Micah: hab schon die ganze Zeit einen richtig harten
    0meg4: Ich glaub du hast da was verwechselt. Du bist hier im #CS was für "Counter-Strike" steht, nicht für "Cyber-Sex" :-O
    Micah: Verdammt.
    Micah left #CS
    Jacks^2: lol xD
    0meg4: xD

  7. #7
    Anfänger Avatar von V4|n4r
    Registriert seit
    30.07.2007
    Beiträge
    24

    Standard

    Zitat Zitat von Nemo
    Obwohl ich von C++ wenig halte, ist es schön für das erste Programm.

    Auch wenn das mit der GPL Lizenz nur ein Witz war, solltest du wissen dass es in diesem Fall ungültig wäre. Da fehlt mindestens die Lizenz im Header Bereich des Sources

    Außerdem könntest du noch kurz was einbauen, so als Programmierübung gedacht:
    Man soll per Argument (also, dass was man dem Programm aufruf hinten dranhängen kann, in der cmd z.B.) etwas berechnen lassen können. Das ist besser als später im Programm alles tippen zu müssen.
    Dann wäre ein Aufruf des Programmes z.B. so:
    "programm.exe argument1 argument2 argument3"
    ein Beispiel Aufruf wäre so:
    "programm.exe plus 1 2" und es würde dann sowas ausgeben "Das Ergebnis ist: 3"

    Ein paar Tipps wie du es realisieren könntest: argc, argv
    Dein Programm kann aber so noch bleiben, man könnte diese Ursprungsform dann z.B. mit
    "programm.exe" starten ... nur wenn ein Argument hinten drangehängt wird, dann wird mein oben erwähntes gestartet.

    Kp, ob du Lust drauf hast. Aber wenn ja, dann mal ran an den Speck
    Wenn ich soweit bin, werde ich mich da rann machen ^^.

    P.S.: Das mit der Lizenz war kein Witz ^^

  8. #8
    CIH-Virus Avatar von -[RiDER]-
    Registriert seit
    05.01.2007
    Beiträge
    496

    Standard

    @V4|n4r: Niemals den gesamten post von deinem vorposter quoten!!! NEVER!!! :evil: :evil: :evil:

    Das mit dem char als operator klappt schon. du musst statt
    Code:
    switch(operator)
    {
      case "+":
        ...
    }
    einfache anführungszeichen verwenden:
    Code:
    switch(operator)
    {
      case '+':
        ...
    }
    Und eigentlich sollte man wegen evtl. Stacküberlauf rekursive Funktionen vermeiden (Funktionen, die sich selbst bzw. gegenseitig aufrufen. verwende in dem fall lieber das allseits verpönte "goto")

    Is das echt dein allerersten Programm?

    MfG RiDER

  9. #9
    Anfänger Avatar von V4|n4r
    Registriert seit
    30.07.2007
    Beiträge
    24

    Standard

    @V4|n4r: Niemals den gesamten post von deinem vorposter quoten!!! NEVER!!! Böse Böse Böse
    Sry :twisted:

    Joa werd ich versuchen, und ja das ist mein erstes Programm mit C++.
    Habe aber auch PHP gelernt von daher kenne ich mich "etwas" aus ^^


    Updated

  10. #10
    CIH-Virus Avatar von -[RiDER]-
    Registriert seit
    05.01.2007
    Beiträge
    496

    Standard

    joa. bei dem goto würde ich die funktion rechnung() garnicht erst wieder verlassen.
    Code:
    int rechnung(void)
    {
      Anfang:
      ...
      if(tun)
        goto Anfang;
      else
        return 0;
    }
    Auch intressant fände ich eine binäre verschiebung bei multiplikationen mit einer potenz von zwei. geht ca. 300% schneller als eine normale muiltiplikation.

    MfG RiDER

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •