Taschenrechner - Prog. für Anfänger.



  • Hay, all.

    Ich wollte mal nen Taschenrechner unter Visual c# programmieren.

    Die Maske habe ich auch noch hin bekommen, sowie die Tasten.

    Jedoch wie mache ich nochmal eine Rechnung?

    Beschreibung:
    Ich würde gerne das Prog. wie einen Windows Taschenrechner benutzen.
    also, die Zahlen auf dem Tastenfeld mit der Maus anklicken und für eine Addition auf das plus zeichen und dann die zu addierende Zahl eingeben.
    Das Ergebnis sollte dann in einer extra textbox angezeigt werden.

    Bisher habe ich:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                // diese textbox umwandeln und mit der anderen verrechnen
            }
    
            private void button0_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "0";
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "1";
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "2";
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "3";
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "4";
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "5";
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "6";
            }
    
            private void button7_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "7";
            }
    
            private void button8_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "8";
            }
    
            private void button9_Click(object sender, EventArgs e)
            {
                textBox1.Text = textBox1.Text + "9";
            }
    
            private void Plus_Click(object sender, EventArgs e)
            {
                textBox2.Text = textBox2.Text + "addition";
            }
       }
    }
    

    Könnt ihr mir weiterhelfen?



  • Also du musst einfach den wert der eingegeben wurde global speichern um ihn dann später mit einen anderen wert zu addieren/sub und und und. Deswegen setzt du eine

    private flaot firstNumber; //Float deswegen weil es ja auch Komma zahlen haben kann  ;)
    

    innerhalb von

    public partial class Form1 : Form
        {
    

    sobalt add. Button gedrückt wird gibst du firstNumber den wert der textbox1 (Bennene bitte deine Controls mit einen Sinnvollen Namen damit du immer weißt was für eine TextBox du meinst ;)) das sieht dann so aus:

    firstNumber = firstNumber + float.Parse(textBox1.Text); //Falsche angaben hast du ja schon mit der Maske weggemacht
    //deswegen brauchen wir nicht prüfen ob es Buchstaben oder Sonderzeichen hat. firstNumber + falls der Benutzer mehrere Operationen durchführen möchte
    

    als nächstes textBox1 leeren damit die nächste eingabe kommen kann 😃

    textBox1.Text = "";
    

    so jetzt weißt du was er eingeben hat und musst nur noch auf den 2 wert warten deswegen brauchst du noch einen "=" Button um gegebenfalls das Ergebnis anzuzeigen, er könnte ja auch mehrere Zahlen mit einander addieren oder sub und und und...

    so und hier meine kleine Lösung, mit richtigen Namen für TextBoxen 😉

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            private float firstNumber;
    
            public Form1()
            {
                firstNumber = 0;
                InitializeComponent();
            }
    
            private void button0_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "0"; //enterTextBox deswegen , weil es die Text Box wo man was eingibt also enter
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "1";
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "2";
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "3";
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "4";
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "5";
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "6";
            }
    
            private void button7_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "7";
            }
    
            private void button8_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "8";
            }
    
            private void button9_Click(object sender, EventArgs e)
            {
                enterTextBox.Text = enterTextBox.Text + "9";
            }
    
            private void Plus_Click(object sender, EventArgs e)
            {
                firstNumber = firstNumber + float.Parse(enterTextBox.Text);
                enterTextBox.Text = firstNumber; //dann brauchst du keine 2. Textbox
                //jetzt musst du nur noch abfangen ob der benutzer eine neue  
    // rechnung will, also musst du da dann deine firstNumber wieder auf 0 setzen.        
    }
    }
    }
    


  • Hallo

    Du musst die Eingaben in Variablen speichern und dann an eine entsprechende Funktion übergeben. Bei Addition halt an eine Funktion, die addiert usw.

    chrische


Anmelden zum Antworten