Brauche Hilfe bei einem Taschenrechner!



  • hi,
    mein Problem is das bei meinen Taschenrechner die einzelnen rechen funktionen nicht richtig funktieonieren:

    #include <conio.h>
    #include <iostream>
    using namespace std;
    main()
    {
     	  char rech;
    
    	do{
    	   	  system("cls");
    
    		      long zahl=0, summe =0 ,eingabe;
    		      char fra,g;
    		      long lotto[99];
    		      char rechnung[99] ;
    		      int i=0,j=0,f;
    
    	      cout << "   ...:::Moin:::...   " <<endl;
    	      cout << "======================" <<endl;
    
    	      do{
    
                  if(i==97)
        	          {
       	   			  cout << "------------------------------------------" <<endl;
          		   	  cout << "Achtung, dies ist deine letzte Rechnung!!!" <<endl;
          		   	  cout << "------------------------------------------" <<endl;
         			       }
    
    	          if(i==0)
    	          {
                          cout << "Bitte zahl eingeben:" ;
    	                  cin  >> zahl ;
                          summe=zahl;
                                 }
    
                  else
                  {
    	   	  			 zahl=0;
                         cout << "Bitte eine weitere Zahl eingeben:" ;
                         cin  >> zahl ;
                         cout << endl;
                         }
    
                        do
                        {            
                        cout<<endl;
                        cout<<"Moechtest du:" <<endl;
                        cout<<"-------------" <<endl;
                        cout<<"Addieren              <+>" <<endl;
                        cout<<"Subtrahieren          <->" <<endl;
                        cout<<"Multiplizieren        <*>" <<endl;
                        cout<<"Dividieren            </>" <<endl;
    
    					if(i!=0)
        	            {
                        cout<<"Das Ergebnis sehen    <e>" <<endl;
                                   }
    
                        cout<< endl << "Und was moechtest du: " ;          
                        cin >> fra ;
                      	cout << endl  ;
                        rechnung[i]= fra ;
    
                        switch(fra)
                        {
                                   case '+':
                                        summe = summe + zahl ;
    
                                        f=0;
                                        break;
                                   case '-':
                                        summe = summe - zahl ;
    
                                        f=0;
                                        break;
                                   case '*':
                                        summe = summe * zahl ;
    
                                        f=0;
                                        break;
                                   case '/':
                                        summe = summe / zahl ;
    
                                        f=0;
                                        break;
                                   case 'e':
                                        f=0;
                                        break;
                                   default:
                                           cout<<"Deine Eingabe konnte nicht erkannt werden!" <<endl;
                                           f=1;
                                           break;
                                   }
                                   }while(f==1); 
    
    			  lotto[i]= zahl ;
    			  i++;
    			  j=i ;
    
    			  }while(fra != 'e'  );
    
    	          if(f==0)
    	          {
        		      cout << endl << "Die Summe deiner Rechnung ist: " << summe <<endl;
        		      cout << "=====================================" <<endl<<endl;
    
        		      cout << "Deine Rechnung ist:" <<endl<<endl;
        			      for ( i=0; i<j; i++)
        				    {
        				        cout << lotto[i];
        				        if(i<=j-2)
        				        {
                                          cout << rechnung[i];
                                          }
        				        else
        				        {
                                    cout<<"="<<summe<<endl;
                                    }
        				    }
                  }	    
    				cout<< endl << "==========================================================";	
    				cout<<endl<<endl;
    				cout<<"Moechtest du noch eine rechnung durchfuehren?" <<endl;
    				cout<<"Ja <j> , Nein <n> :" ;
    				cin >> rech ;
    
    	}while(rech == 'j');
    
          system("pause");
          exit(-1);
          }
    

    Würde mich über antworten freuen!!!



  • Suche doch mal hier im Forum nach Taschenrechner.

    im Übrigen führst Du die Rechenoperation bereits aus, wenn Du nur eine Zahl hast. Füge hinter Zeile 69 mal ein

    cout << "Summe=" << summe << endl;
    

    hinzu und addiere dann zwei Zahlen.

    Gruß
    Werner



  • Aber ich habe es ja schon ausprobiert, in einer schleife kann man so rechnen.
    Das Problem ist das er es hier nicht macht!
    (Hier ein quelltext kannste ja ma ausprobieren!)

    #include <conio.h>
    #include <iostream>
    using namespace std;
    main()
    {
          double zahl, summe =0 ;
    
          cout << "   ...:::Moin:::...   " <<endl;
          cout << "======================" <<endl;
    
              for(int i=0; i<5 ; i++)
              {
              cout << "Bitte zahl eingeben:" ;
              cin  >> zahl ;
              summe = summe + zahl ;
              }
    
          cout << endl << "Die Summe deiner Rechnung ist: " << summe <<endl<<endl;
    
          system("pause");
          exit(-1);
          }
    

  • Mod

    Welche Ausgabe erwartest du und welche Ausgabe kommt stattdessen? "Funktioniert nicht" und "macht nicht" sind keine brauchbaren Fehlerbeschreibungen um dir zu helfen.

    P.S.: 1. Das heißt "int main"
    2. exit(-1); WTF?



  • Kalle1992 schrieb:

    Aber ich habe es ja schon ausprobiert, in einer schleife kann man so rechnen.
    Das Problem ist das er es hier nicht macht!
    (Hier ein quelltext kannste ja ma ausprobieren!)

    #include <conio.h>
    #include <iostream>
    using namespace std;
    main()
    {
          double zahl, summe =0 ;
          
          cout << "   ...:::Moin:::...   " <<endl;
          cout << "======================" <<endl;
          
              for(int i=0; i<5 ; i++)
              {
              cout << "Bitte zahl eingeben:" ;
              cin  >> zahl ;
              summe = summe + zahl ;
              }
              
          cout << endl << "Die Summe deiner Rechnung ist: " << summe <<endl<<endl;
          
          system("pause");
          exit(-1);
          }
    

    .. Du hast Recht, es funktioniert, aber nur für die Addition und nicht für die Multiplikation. Im Unterschied dazu steht in Deinem ersten Listing (ab Zeile 31) noch ein

    Kalle1992 schrieb:

    if(i==0)
            {
                ...
                summe=zahl;
            }
    

    innerhalb der Schleife. Somit hat die Variable summe beim ersten Mal nicht den Wert 0, sonder den Wert von zahl.

    Gruß
    Werner


Log in to reply