[.NET] GUI Taschenrechner Ausgabe Problem - Visual C++

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von dr1nK, 9. Juni 2009 .

  1. 9. Juni 2009
    GUI Taschenrechner Ausgabe Problem - Visual C++

    Meine ersten Probleme hab ich schon gelöst, jetzt hab ich neue^^ Also editier ich mal den kompletten Thread.

    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

    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
     
  2. 9. Juni 2009
    AW: GUI "Taschenrechner" Problem

    Ich hab mal den Prefix geändert. Ist nämlich C++/CLI und kein reines C++.

    Ich würde das so machen:
    - Zahl1 und Zahl2 als private in die Klasse packen
    - Dann eine private Funktion schreiben, die zahl1 und zahl2 aus den Textboxen holt. Also das hier auslagern:
    Code:
    zahl1 = Convert::ToDouble(this->tb_erste_Zahl->Text);
    zahl2 = Convert::ToDouble(this->tb_zweite_Zahl->Text);
    - In die einzelnen Eventhandler der Rechenfunktionen nur noch das Ergebnis berechnen und ausgeben lassen. Das Ausgeben in ne eigene Funktion zu packen lohnt sich imo nicht, da das sowieso nur ein Befehl ist.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.