Kalkulator C++ OPP Problem

0

Witam

Mam na zaliczenie napisać program...Obiektowo...wybrałem temat kalkulatora no i prawie go wykonałem ... Z tym, że mam problem ze "złapaniem' wartości z buttonów...

KOnkretnie nie wiem, jak mam zrealizować pobieranie wartości naciśniętego buttona do zmiennych a i b...
Mniej więcej chodzi mi o taki algorytm...naciskam cyfrę, do pamięci, następna, następna...aż dostanie znak...jak jest znak, to czeka na następną cyfrę, następna, następna, aż do = , kiedy = to wyrzuca wynik na Edit...

Mam nadzieję, że jasno napisałem :D

W każdym zdarzeniu buttona mam

this->Edit1->Text=StrToInt(this->Edit1->Text)*10+a;//zamiast a  cyfra za ktora odpowiada dany przycisk

Co pozwala mi na wyrzucenie wartości klawisza na Edit

Ten fragment kodu działa jak C, w kalkulatorze...Wyczyść i wpisz 0;

Edit1->Clear();
Edit1->Text = "0"

Sam kod wyglada tak:

class Kalkulator
{
   int wynik;

public:

   Kalkulator();

   void Dodaj(int,int);
   void Odejmij(int,int);
   void Podziel(int,int);
   void Pomnoz(int,int);
   void Kwadrat(int);
   void Pierwiastek(int);
   void DoPotegi(int,int);

   int Wynik();

};

Kalkulator::Kalkulator()                {  wynik = 0;          }
void Kalkulator::Dodaj(int l1, int l2)  {  wynik = l1 + l2;    }
void Kalkulator::Odejmij(int l1, int l2){  wynik = l1 - l2;    }
void Kalkulator::Podziel(int l1, int l2){  wynik = l1 / l2;    }
void Kalkulator::Pomnoz(int l1, int l2) {  wynik = l1 * l2;    }
void Kalkulator::Kwadrat(int l)         {  wynik = l * l;      }
void Kalkulator::Pierwiastek(int l)     {  wynik = (int)sqrt(l);  }
void Kalkulator::DoPotegi(int l, int potega)
{
  wynik=l;
    for(int i=1; i<potega; i++)
    {
       wynik*=l;
    }
}

int Kalkulator::Wynik()
{
   return wynik;
}

Odwołuję sie do tego :

int a, b;
kalkulator.Dodaj(a, b);
Edit1->Text = kalkulator.Wynik;

I otrzymuję wartości podane dla a i b :)

Problem jest taki, że jak kliknę na button, to wartości wpisują się dla tego a i b :)

Mam nadzieję, ze ktoś zrozumie o co mi chodziło ...

Pozdrawiam i liczę na pomoc ...

0
gizmo1985 napisał(a)

Problem jest taki, że jak kliknę na button, to wartości wpisują się dla tego a i b :)

wszytko by bylo zrozumiale gdyby nie to jedno zdanie.. wtf?

0

no właśnie...zdanie z rozpędu...właśnie się nie wpisują,....jakby się wpisywały to by nie było problemu :D

0

Chyba o nawiasach zapomniałeś

Edit1->Text = kalkulator.Wynik();

Mam nadzieję, ze ktoś zrozumie o co mi chodziło ...

Chyba nie :> Ale zgadnę, nie wiesz jak przypisać wartości dla a i b?

0

O nawiasie faktycznie zapomniałem, ale w kodzie go miałem...
Dokłądnie...nie wiem, jak pzypisywać wartości do a i b...
w sensie , że :

Klikam 1, idzie do tablicy, klikam 2 idzie do tablicy na wyświetlaczu 12...klikam +, do tablicy, liczba kolejna do tablicy i tak dalej....naciskam = wyrzuca wynik na wyświetlaczu...

nie wiem jak to zrobić w prakctyce...mógłby mi ktoś pomóc ? zalczenie niedaleko...

0

A tak nie może być?

this->Edit1->Text=this->Edit1->Text+"0";

to "0" jest przykładowo, zmienia się w zależności od naciśniętego buttona. Później cały string musisz rozbijać na liczby i operacje. Problem w tym, że pojawi się kłopot z kolejnością wykonywania działań... no chyba, że piszesz coś w stylu kalkulatora windowsowego.

0

No własnie.....to jest dobre porównanie...Coś w tym stylu mi chodzi po głowie...
Generalnie to co podałeś wyświetli mi chyba tylko na Edit cyfrę...To już umiem...tylko nie umiem tego tak zapisać, żeby nad tym uruchamiać działania....

{pzdrawiam

0

W sumie to proste. Jak użytkownik naciśnie np. '+', ściągasz z edita wartość, konwertujesz i przypisujesz do a. Zapisujesz też rodzaj działania matematycznego i to, że a zawiera wartość. Teraz użytkownik wpisuje drugą liczbę i naciska '=' lub inne działanie. Ściągasz z edita wartość, konwertujesz i przypisujesz do b. Robisz obliczenia, wynik wypisujesz i resetujesz a.

0

a może jakoś w postaci kodu ? słaby z tego jestem :)

0

Rusz głową, to nie jest skomplikowane zagadnienie!

Moj kalkulator w C - mozesz sobie zajrzec w zrodla: http://gosc.mine.nu/index.php?strona=projekty&nazwa=Kalkulator%20GTK

W ramach cwiczen mozesz przepisac to na VCL/C++

0

No własnie nie za bardzo to kumam, zaliczenie coraz bliżej ...:(

1 użytkowników online, w tym zalogowanych: 0, gości: 1