[C++]kalkulator pozwalający na łączenie działań

Gosku
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 28 lis 2010, o 17:37
Płeć: Mężczyzna
Lokalizacja: Wołomin

[C++]kalkulator pozwalający na łączenie działań

Post autor: Gosku »

Witam!
Do wykonania mam nastepujące zadanie:

Napisz prosty kalkulator (dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie) pozwalający na łączenie działań i posiadający pamięć wykorzystując funkcje.

O ile pierwsza częśc(wykonanie samego kalkulatora) nie stanowi wiekszego problemu, tak nie moge dojsc do tego jak łączyc działania oraz zapamiętac wynik.

Poniżej mój kod:

Kod: Zaznacz cały

#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <math.h>
using namespace std;



int dodawanie(){
    int wynik,x,y;
    
    cout<<"podaj liczbe 
";
    cin>>x;
    cout<<"podaj liczbe 
";
    cin>>y;
    
    wynik=x+y;
    
    return wynik;
    
    }
    
    
    int odejmowanie(){
    int wynik,x,y;
    cout<<"podaj liczbe 
";
    cin>>x;
    cout<<"podaj liczbe 
";
    cin>>y;
    
    wynik=x-y;
    
   return wynik;
    
    }
    
    int mnozenie(){
    int wynik,x,y;
    cout<<"podaj liczbe 
";
    cin>>x;
    cout<<"podaj liczbe 
";
    cin>>y;
    
    wynik=x*y;
    
    return wynik;
    
    }
    int dzielenie(){
    int wynik,x,y;
    cout<<"podaj liczbe 
";
    cin>>x;
    cout<<"podaj liczbe 
";
    cin>>y;
    
    wynik=x/y;
    
    return wynik;
    
    }
    

int potega()
{
    int x,a;
    cout<<"podaj liczbe 
";
    cin>>x;
    cout<<"podaj liczbe 
";
    cin>>a;
    int i;
    int wynik=1;
    for (i=0;i<a;i++) {
        wynik=wynik*x;
        }
    
 
    return wynik;
}

main(){
       int wybor,a;
    char odpowiedz;
      
    
         
     

        while(wybor!=6){
      
       
       cout<<" 
 wybierz: 
 1 dodawanie 
 2 odejmowanie  
 3 mnozenie 
 4 dzielenie 
 5 potega 
 6 aby zakonczyc"<<endl;
      cin>>wybor;
       
      
       switch(wybor){
                     case 1: a=dodawanie();
                  cout<<"
"<<a;
                  break;
                     case 2: a=odejmowanie();
                   cout<<"
"<<a;
                     break;
                     case 3: a=mnozenie();
                    cout<<"
"<<a;
                     break;
                     case 4: a=dzielenie();
                     cout<<"
"<<a;
                     break;
                     case 5: a=potega();     
                    cout<<"
"<<a;
                     break;
              
                     default:
                             if(wybor!=6){
                             cout<<"poza zasiegiem"<<endl;
                             }
                     else{
                          cout<<"wybrales 6 wiec konczymy";
                          }
                     
                     }
       

}

       getch();
       
   
          return 0;
       }
Na forum znalazłem podobne zadanie, ale mój problem dotyczy zgoła czego innego.
Zaznaczam też, że mogę nie znac wszystkich słów kluczowych oraz funkcji c++.
Liczę na pomoc forumowiczów
xorgx3
Użytkownik
Użytkownik
Posty: 66
Rejestracja: 12 maja 2011, o 13:56
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 10 razy
Pomógł: 1 raz

[C++]kalkulator pozwalający na łączenie działań

Post autor: xorgx3 »

Zapamiętywać wynik możesz w plikach tekstowych - używając funkcji fstream


Co do łączenia działań to tak naprawdę sam nie wiem, może ktoś mądrzejszy tu zajrzy
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C++]kalkulator pozwalający na łączenie działań

Post autor: miki999 »

Zapamiętywać wynik, to nie problem, bo można ją przechowywać w kolejnej zmiennej.
Można podczas wczytywania znaków z klawiatury rozróżniać +, -, *, /, =. Oczywiście wtedy struktura programu typu:
"Jeśli chcesz obliczyć sumę naciśnij 1"
nie ma sensu.
Jeśli się chce taką formę (co jest bardzo niefajne z punktu widzenia użytkownika), to należałoby przechowywać ostatni wynik, dorobić label typu "menu" zrobić kolejnego case'a itp. co będzie rozległe w kodzie.
ODPOWIEDZ