Visual C++ GUI Taschenrechner Ausgabe Problem

dr1nK

New member
13 Juni 2009
1
0
Huhu,
ich versuche mich grade an grafischer Oberfläche in Visual C++ 2008 (Windows Forms). Ich möchte jetzt einen kleinen "Taschenrechner" programmieren, der 2 Zahlen addiert/subtrahiert/multipliziert/dividiert. Ich hab aber ein Problem bei der Ausgabe des Ergebnisses.

Das ist meine Klasse:
Code:
#ifndef C_KONVERTIEREN_H
#define C_KONVERTIEREN_H

class C_Konvertieren
{
private:
	double zahl1;
	double zahl2;
	double ergebnis;
public:
	C_Konvertieren();
	~C_Konvertieren();
	void addiere(System::String^,System::String^,System::String^);
	void subtrahiere(System::String^,System::String^,System::String^);
	void multipliziere(System::String^,System::String^,System::String^);
	void dividiere(System::String^,System::String^,System::String^);
	void convert_eingabe(System::String^,System::String^);
	void convert_ausgabe(System::String^);
};

#endif

Das ist mein Eventhandler (Nur einer, weil die anderen 3 genauso sind);
Code:
private: System::Void bt_addiere_Click(System::Object^  sender, System::EventArgs^  e)
{
rechnen.addiere(this->tb_erste_Zahl->Text, this->tb_zweite_Zahl->Text, this->lb_Ergebnis_Anzeige->Text);
}

Das sind die dazugehörigen Methoden:
Code:
void C_Konvertieren::addiere(System::String^ z1, System::String^ z2, System::String^ z3)
{
	convert_eingabe(z1,z2);

	ergebnis = zahl1 + zahl2;

	convert_ausgabe(z3);
}


//Das sind die Konvertier-Methoden

void C_Konvertieren::convert_eingabe(System::String^ z1, System::String^ z2)
{
zahl1 = Convert::ToDouble(z1);
zahl2 = Convert::ToDouble(z2);
}

void C_Konvertieren::convert_ausgabe(System::String^ z3)
{
z3 = Convert::ToString(ergebnis);
}

Die Eingaben erfolgen über TextBoxen und die Ausgabe ist in einem Label.

Das Programm läuft, nur es wird kein Ergebnis angezeigt. Hat evtl. einer von euch eine Idee woran das liegen könnte?
Und ich hab so viele volle Parameterlisten - Gibt es da vielleicht schönere Lösungen?

Ich möchte nicht, dass irgendeiner meine "Hausaufgaben" macht, ich verzweifel nur so langsam an dem Programm :D

Ich bin für jede Antwort, die mich ein bisschen weiter bringt, sehr dankbar.

Ich hab auch nochmal den ganzen Projektordner hochgeladen, falls es besser hilft:
Datei Upload, Bilder hochladen, Datei Hosting auf Materialordner.de
 
Hi,

also das Problem liegt meines Erachtens darin, dass du das Label an keiner Stelle änderst. Du gibst es zwar als Objektreferenz mit, allerdings erstellst du an der entscheidenden Stelle bei der Ausgabe ein neues Objekt, anstatt das alte Objekt Text zu verändern (was sowieso ein schlechter Weg aus meiner Sicht wäre).

Gebe doch einfach bei allen Methoden das zurück, was man erwarten würde, bei addiere also z.B. das Ergebnis (indem du statt void z.B. einen String oder ein Double zurückgibst). Anschließend kannst du das Label explizit im Handler setzen.