Announcement

Collapse
No announcement yet.

Taschenrechner - öfter Plus drücken, nur wie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Taschenrechner - öfter Plus drücken, nur wie?

    Hallo zusammen!

    Ich habe ein Problem. Ich muss einen Taschenrechner in VB.NET programmieren.

    Jetzt mein Problem. Wie krieg ich es hin, dass ich öfter hinter einander plus rechnen kann, ohne dazwischen = zu drücken?

    Hier der Quelltext. Danke im voraus.

    Public Class Taschenrechner

    #Region "Variablen"

    Public bolNeueZahl As Boolean = False
    Public strOperation As String = ""
    Public dblSpeicher As Double = 0
    Public dblZwischenergebnis As Double = 0


    #End Region

    #Region "Buttons"

    ' Drücken Button 1
    Private Sub cmdEins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEins.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "1"
    txtRechnen.Text = txtRechnen.Text & "1"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "1"
    txtRechnen.Text = txtRechnen.Text & "1"
    End If


    End Sub
    ' Drücken Button 2
    Private Sub cmdZwei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdZwei.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "2"
    txtRechnen.Text = txtRechnen.Text & "2"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "2"
    txtRechnen.Text = txtRechnen.Text & "2"
    End If


    End Sub
    ' Drücken Button 3
    Private Sub cmdDrei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDrei.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "3"
    txtRechnen.Text = txtRechnen.Text & "3"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "3"
    txtRechnen.Text = txtRechnen.Text & "3"
    End If


    End Sub
    ' Drücken Button 4
    Private Sub cmdVier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVier.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "4"
    txtRechnen.Text = txtRechnen.Text & "4"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "4"
    txtRechnen.Text = txtRechnen.Text & "4"
    End If

    End Sub
    ' Drücken Button 5
    Private Sub cmdFünf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFünf.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "5"
    txtRechnen.Text = txtRechnen.Text & "5"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "5"
    txtRechnen.Text = txtRechnen.Text & "5"
    End If

    End Sub
    ' Drücken Button 6
    Private Sub cmdSechs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSechs.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "6"
    txtRechnen.Text = txtRechnen.Text & "6"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "6"
    txtRechnen.Text = txtRechnen.Text & "6"
    End If

    End Sub
    ' Drücken Button 7
    Private Sub cmdSieben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSieben.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "7"
    txtRechnen.Text = txtRechnen.Text & "7"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "7"
    txtRechnen.Text = txtRechnen.Text & "7"
    End If

    End Sub
    ' Drücken Button 8
    Private Sub cmdAcht_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAcht.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "8"
    txtRechnen.Text = txtRechnen.Text & "8"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "8"
    txtRechnen.Text = txtRechnen.Text & "8"
    End If

    End Sub
    ' Drücken Button 9
    Private Sub cmdNeun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNeun.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "9"
    txtRechnen.Text = txtRechnen.Text & "9"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "9"
    txtRechnen.Text = txtRechnen.Text & "9"
    End If

    End Sub
    ' Drücken Button 0
    Private Sub cmdNull_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNull.Click

    If bolNeueZahl = True Then
    txtErgebnisleiste.Text = "0"
    txtRechnen.Text = txtRechnen.Text & "0"
    bolNeueZahl = False
    Else
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & "0"
    txtRechnen.Text = txtRechnen.Text & "0"
    End If

    End Sub

    ' Komma Behandlung
    Private Sub cmdKomma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKomma.Click

    If txtErgebnisleiste.Text = "" Then Exit Sub
    If txtErgebnisleiste.Text.Contains(",") = True Then
    MsgBox("Nur ein Komma möglich!")
    Exit Sub
    End If
    txtErgebnisleiste.Text = txtErgebnisleiste.Text & ","

    End Sub

    #End Region

    #Region "Rechenbefehle"

    ' Plus-Befehl
    Private Sub cmdPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlus.Click

    If txtErgebnisleiste.Text = "" Then Exit Sub
    dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
    strOperation = "Plus"
    txtRechnen.Text = txtRechnen.Text & "+"
    bolNeueZahl = True

    End Sub

    ' Minus-Befehl
    Private Sub cmdMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinus.Click

    dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
    strOperation = "Minus"
    txtRechnen.Text = txtRechnen.Text & "-"
    bolNeueZahl = True

    End Sub

    ' Geteilt-Befehl
    Private Sub cmdGeteilt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGeteilt.Click

    dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
    strOperation = "Geteilt"
    txtRechnen.Text = txtRechnen.Text & "/"
    bolNeueZahl = True

    End Sub

    ' Mal-Befehl
    Private Sub cmdMal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMal.Click

    dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
    strOperation = "Mal"
    txtRechnen.Text = txtRechnen.Text & "*"
    bolNeueZahl = True

    End Sub

    ' IstGleich-Befehl
    Private Sub cmdIstGleich_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIstGleich.Click

    If txtErgebnisleiste.Text = "" Then Exit Sub
    If dblSpeicher = 0 Then Exit Sub
    If strOperation = "" Then Exit Sub
    Call berechnen(dblSpeicher, Convert.ToDouble(txtErgebnisleiste.Text), "=")
    txtRechnen.Text = txtRechnen.Text & "=" & txtErgebnisleiste.Text

    End Sub

    ' Berechnungsfunktion
    Function berechnen(ByVal dblZahl1 As Double, ByVal dblZahl2 As Double, ByVal strOp As String) As Boolean

    Select Case strOperation
    Case "Plus"
    txtErgebnisleiste.Text = dblZahl1 + dblZahl2
    Case "Minus"
    txtErgebnisleiste.Text = dblZahl1 - dblZahl2
    Case "Geteilt"
    txtErgebnisleiste.Text = dblZahl1 / dblZahl2
    Case "Mal"
    txtErgebnisleiste.Text = dblZahl1 * dblZahl2
    End Select



    End Function

    #End Region



    End Class

  • #2
    Hallo,

    glaubst du ernsthaft dass sich jemand deinen unformatierte Code durchliest. Bitte formatieren den Code wie im ersten (=obersten) Thema im Forum indem du gepostest hast beschrieben ist.

    Weiters beschränke die Frage auf das WESENTLICHSTE. Siehe hierzu auch: Wie man Fragen richtig stellt.


    Danke.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Auch hallo,

      dieses Beispiel könnte man sich näher betrachten.
      MfG
      Cheat-Sheets for Developers / Programming Quotes

      Comment

      Working...
      X