[C++] Prosty kalkulator

314wojti314
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 sty 2011, o 11:24
Płeć: Mężczyzna
Lokalizacja: St-ce
Podziękował: 9 razy

[C++] Prosty kalkulator

Post autor: 314wojti314 »

Mam za zadanie wykonać prosty kalkulator, który może dodawać, odejmować, mnożyć, dzielić i potęgować. Niestety, nie jest on sprawny. Za każdym razem kiedy wpisuję liczby i znak działania, wynik to pierwsza z liczb, np. 5+5 daje 5; 9-2 daje 9 itp. Każde działanie zdefiniowałem jako funkcję i użyłem wyrażenia switch do rozróżniania ich. Proszę o wyrozumiałość, jestem bardzo przeciętnym programistą. Moje pytanie brzmi: gdzie jest błąd?

Kod: Zaznacz cały

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int potega(int a, int b)
{
int i, suma=1;
for (i=1; i<=b; ++i) 
{
suma=suma*a;
}
return suma;
}

int dod (int a, int b)
{
    return a+b;
}

int ode (int a, int b)
{
    return a-b;
}

int mno (int a, int b)
{
    return a*b;
}

int dzie (int a, int b)
{
    return a/b;
}

int main()
{
    int a;
    int b;
    char znak;
    cout << "Kalkulator v. 1.0     4.01.2012\n    Podaj pierwsza liczbe: " ;
    cin >> a;
    cout << "Podaj znak dzialana (+, -, *, /, ^): ";
    cin >> znak;
    cout << "Podaj druga liczbe: ";
    cin >> b;
    switch (znak)
    {
    case '+': cout << a,b,dod(a,b);break;
    case '-': cout << a,b,ode(a,b);break;
    case '*': cout << a,b,mno(a,b);break;
    case '/':
         if (b==0) cout << "Pamietaj cholero nie dziel przez zero!";
         else cout << a,b,dzie(a,b);break;
    case '^': cout << a,b,potega(a,b);break;
         }
         cin.ignore();
         getchar();
         return 0;
         }
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C++] Prosty kalkulator

Post autor: Zordon »

Kod: Zaznacz cały

case '+': cout << dod(a,b);break;
nie wiem co tam wcześniej robiło a,b,dod(a,b)
314wojti314
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 sty 2011, o 11:24
Płeć: Mężczyzna
Lokalizacja: St-ce
Podziękował: 9 razy

[C++] Prosty kalkulator

Post autor: 314wojti314 »

Wcześniej była zdefiniowana funkcja dodawania (nazwałem ją dod, 16 linijka)
mikkuexc
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 19 maja 2011, o 20:33
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz
Pomógł: 5 razy

[C++] Prosty kalkulator

Post autor: mikkuexc »

Kod: Zaznacz cały

case '+': cout << a,b,dod(a,b);break;
Powinno być:

Kod: Zaznacz cały

case '+': cout << a << "+" << b << "=" << dod(a,b) << endl;
314wojti314
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 30 sty 2011, o 11:24
Płeć: Mężczyzna
Lokalizacja: St-ce
Podziękował: 9 razy

[C++] Prosty kalkulator

Post autor: 314wojti314 »

Dziękuję bardzo. Wszystko teraz ładnie śmiga.
ODPOWIEDZ