Taschenrechner



  • Ich lerne momentan C++.
    Hab mir ein Buch gekauft, dass bei Ansi C++ beginnt und dann in die Objektorientierte Programmierung in C++ eingeht.

    So zum verstehen der Grundkentnisse habe ich einen taschenrechner programmiert, ich würde gerne wissen was ihr davon haltet.

    include <iostream>
    #include <vector>
    
    using namespace std;
    int main() 
    { 
    	int schluss;
    	char x;
    		cout << "			Dies ist ein Taschenrechner\n" << endl;
    	cout << "			Er kann +,-,/ und * rechnen\n" << endl;
    	cout << "			Geben sie das Zeichen ein um mit\n" << endl;
    	cout << "			der gewuenschen Rechenart zu rechnen!\n" << endl;
    
    	cout << "Wollen sie +,- ,/ oder * rechnen: ";
    
    	cin >> x;
    
    switch (x) 
      { 
        case '+': 
          { 
            vector<double> v;
      cout << "Wie viele Werte?:";
      int anz;
      cin >> anz;
      double addition=0;
    
      for(int i=1; i<=anz; i++) {
        cout << "Wert " << i << ":";
        double tmp;
        cin >> tmp;
        addition+=tmp;
      }
      // cout << "Ergebniss: " << addition << endl;
      cout << v.size();
    
            break; 
          } 
    
    	case '-': 
    
          { 
           double zahl1;
    		  cout << "Zahl 1 eingeben:";
    		  cin >> zahl1;
    		  double zahl2;
    		  cout << "Zahl 2 eingeben:";
    		  cin >> zahl2;
    		  double substraktion = zahl1-zahl2;
    		  cout << zahl1 << " - " << zahl2 << " = " << substraktion << endl; 
            break; 
          } 
    
    	case '/': 
          { 
           double zahl1;
    		  cout << "Zahl 1 eingeben:";
    		  cin >> zahl1;
    		  double zahl2;
    		  cout << "Zahl 2 eingeben:";
    		  cin >> zahl2;
    		  double division = zahl1/zahl2;
    		  cout << zahl1 << " / " << zahl2 << " = " << division << endl; 
            break; 
          } 
    
    	case '*': 
         { 
           double zahl1;
    		  cout << "Zahl 1 eingeben:";
    		  cin >> zahl1;
    		  double zahl2;
    		  cout << "Zahl 2 eingeben:";
    		  cin >> zahl2;
    		  double multi = zahl1*zahl2;
    		  cout << zahl1 << " * " << zahl2 << " = " << multi << endl; 
            break; 
          } 
    
    	default: 
          { 
            std::cout << "Kannst du net +,-,/,* eintippen???" << std::endl; 
            break; 
          } 
      } 
    cout << "Beliebige Zahl eingeben, dann enter zum Beenden druecken!";
    cin >> schluss; 
    return 0;
    
    }
    


  • Falsches Unterforum! Inm C++-Forum nochmal posten.



  • Hey xxSeppexx,
    ansich ganz nett aber versuch doch mal einen Taschenrechner zuschreiben der beliebig viele Zahlen mit ein ander verrechnen kann. In etwa so:

    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    long double ergebnis=0,zahl=0;
    char rechenzeichen;
    
    int main()
    {
        cout << " Taschenrecher \n ------------------------------- \n\n Term > ";
        cin >> ergebnis;
        while (true)
        {
            cin >> rechenzeichen;
            if (rechenzeichen == '=')
            {
                cout << " Ergebnis = "<<ergebnis<<endl;
                break;
            }
            cin >> zahl;
            if (rechenzeichen == '+')
            {
                ergebnis = ergebnis + zahl;
            }
            if (rechenzeichen == '-')
            {
                ergebnis = ergebnis - zahl;
            }
            if (rechenzeichen == '*')
            {
                ergebnis = ergebnis * zahl;
            }
            if (rechenzeichen == '/')
            {
                ergebnis = ergebnis / zahl;
            }
        }
        getch();
        return 0;
    }
    

    PS :
    Ich denke das du oben das Raute zeichen vergessen hast war ein kopier Fehler, aber bei "std::cout << "Kannst du net +,-,/,* eintippen???" << std::endl;"
    da kannst du std:: weg lassen.

    mfg



  • Ich habe in BASIC mal so etwas gemacht, da kann man immerhin nach jedem Resultat mit einer weiteren Zahl "weitermachen":

    dim as double A, B
    
    100:input "Eingabe Zahl 1 "; A
    
    200:print "1 fuer addieren +, 2 fuer multiplizieren *," 
    210: input "3 fuer dividieren /, 4 fuer subtrahieren -"; D
    300:input "Zahl 2 "; B
    dim C as double
    
    asm
        mov eax, [D]
        cmp eax, 1
        je M2
        cmp eax, 2
        je M10
        cmp eax, 3
        je M20
        cmp eax, 4
        je M30
    
        M2: fld qword ptr [_A] 
        fadd qword ptr [_B] 
        fstp qword ptr [_C] 
    
        jmp M40
    
        M10: fld qword ptr [_A] 
        fmul qword ptr [_B] 
        fstp qword ptr [_C] 
    
        jmp M40
    
        M20: fld qword ptr [_A] 
        fdiv qword ptr [_B] 
        fstp qword ptr [_C] 
    
        jmp M40
    
        M30:fld qword ptr [_A] 
        fsub qword ptr [_B] 
        fstp qword ptr [_C] 
    
        jmp M40
        M40: nop
    end asm
    
    print C
    sleep 1000
    input "Noch eine Berechnung (mit diesem Resultat oder neuen Zahlen)? j/n"; H$
    
    If H$="j" goto 2000
    if H$="n" goto 5000
    
    2000: Dim Erg2 As Integer
    
    input "Dieses Resultat (oder neue Zahlen) verwenden ? j/n"; I$
    
    If I$ = "j" goto 2500 
    if I$= "n" goto 100
    
    2500: 
    
    A=C
    
    goto 200
    
    5000:Declare Function MessageBox Lib "user32" Alias "MessageBoxA" _
       (ByVal hWnd As Integer, ByVal lpText As String, _
       ByVal lpCaption As String, ByVal wType As Integer) As Integer
    
    Const fbOkOnly = 0            'Nur die Schaltfläche OK anzeigen
    Const fbOkCancel = 1          'Schaltflächen OK und Abbrechen anzeigen
    Const fbAbortRetryIgnore = 2  'Abbruch, Wiederholen und Ignorieren
    Const fbYesNoCancel = 3       'Ja, Nein und Abbrechen
    Const fbYesNo = 4             'Schaltflächen Ja und Nein
    Const fbRetryCancel = 5       'Schaltflächen Wiederholen und Abbrechen
    Const fbCritical = 16         'Stop-Symbol
    Const fbQuestion = 32         'Fragezeichen-Symbol
    Const fbExclamation = 48      'Ausrufezeichen-Symbol
    Const fbInformation = 64      'Information-Symbol
    
    Dim s As Integer
    
    s = MessageBox (me.hWnd, "Dieses Programm wurde grösstenteils in Assemblersprache geschrieben! © C. M . Obrecht, 2006", "I n f o r m a t i o n ",fbExclamation)
    s = MessageBox (me.hWnd, "Auf Wiedersehen", "    :-)   ",fbInformation)
    
    End
    

    und für DOS mit VB: www.homepage.hispeed.ch/reben/Rechner.exe


Anmelden zum Antworten