Хотите, чтобы мой калькулятор выполнял несколько процессов
это мой дизайн калькулятора:
https://www3.0zz0.com/2020/05/28/19/797035332.jpg[^]
верхнее текстовое поле предназначено для расчета, а нижнее-для результата
это очень просто для меня, чтобы написать калькулятор, который может сделать простой процесс, как:
1 + 1 или 2 -1
но я хочу калькулятор, как калькулятор windows
который может выполнять сразу несколько процессов, таких как:
https://www5.0zz0.com/2020/05/28/19/531418581.png[^]
например, если я пишу 1 + 2, а затем нажимаю=, то в Нижнем текстовом поле отображается результат 3
то же самое должно произойти, когда я нажимаю+, нижнее текстовое поле показывает 3, а верхнее текстовое поле добавляет
+ к расчету и так далее.
Что я уже пробовал:
мне удалось хорошо решить функцию сложения (+)
но остальные 3 процесса не работают
процесс вычитания (-) делает сложение с - перед числом
пример: 8 - 2 результат равен -10
процессы умножения и деления всегда приводят к 0
это мой код.:
Public Class Form1 Private Sub buttons(sender As Object, e As EventArgs) Handles Btn0.Click, Btn1.Click, Btn2.Click, Btn3.Click, Btn4.Click, Btn5.Click, Btn6.Click, Btn7.Click, Btn8.Click, Btn9.Click If CalculatorText.Text = "" Then CalculatorText.Text = sender.text Else CalculatorText.Text = CalculatorText.Text & sender.text End If End Sub Private Sub BtnPoint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPoint.Click CalculatorText.Text += BtnPoint.Text End Sub Private Sub BtnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClear.Click CalculatorText.Clear() CalculatorResult.Clear() End Sub Private Sub BtnDelete_Click(sender As Object, e As EventArgs) Handles BtnDelete.Click CalculatorText.Text = CalculatorText.Text.Remove(CalculatorText.Text.Length - 1, 1) End Sub Private Sub BtnPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPlus.Click Dim plus As String() Dim num As Long If CalculatorText.Text.Contains("+") Then plus = CalculatorText.Text.Split("+") For Each NumToPower As String In plus num += CStr(NumToPower) Next CalculatorResult.Text = "= " & num CalculatorText.Text += "+" Else CalculatorText.Text += "+" End If End Sub Private Sub BtnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMinus.Click CalculatorText.Text += "-" End Sub Private Sub BtnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDivide.Click CalculatorText.Text += "/" End Sub Private Sub BtnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMultiply.Click CalculatorText.Text += "*" End Sub Private Sub CalculatorText_TextChanged(sender As Object, e As EventArgs) Handles CalculatorText.TextChanged If CalculatorText.Text = "" Then BtnResult.Enabled = False BtnPlus.Enabled = False BtnMinus.Enabled = False BtnMultiply.Enabled = False BtnDivide.Enabled = False End If If CalculatorText.Text <> "" Then Dim s As String = CalculatorText.Text.Substring(Len(CalculatorText.Text) - 1, 1) If s = "+" Or s = "-" Or s = "/" Or s = "*" Then BtnResult.Enabled = False BtnPlus.Enabled = False BtnMinus.Enabled = False BtnMultiply.Enabled = False BtnDivide.Enabled = False End If If s <> "+" And s <> "-" And s <> "/" And s <> "*" Then BtnResult.Enabled = True BtnPlus.Enabled = True BtnMinus.Enabled = True BtnMultiply.Enabled = True BtnDivide.Enabled = True End If End If End Sub Private Sub BtnResult_Click(sender As Object, e As EventArgs) Handles BtnResult.Click Dim result As Double Dim plus As String() Dim Substract As String() Dim multiply As String() Dim divide As String() Dim num As Long If CalculatorText.Text.Contains("+") Then plus = CalculatorText.Text.Split("+") For Each NumToPower As String In plus num += CStr(NumToPower) Next End If If CalculatorText.Text.Contains("-") Then Substract = CalculatorText.Text.Split("-") For Each NumToPower As String In Substract num -= CStr(NumToPower) Next End If If CalculatorText.Text.Contains("/") Then divide = CalculatorText.Text.Split("/") For Each numbertodivide As String In divide If numbertodivide <> 0 Then num /= CStr(numbertodivide) result = num Else MessageBox.Show("Cannot Divide By 0") Exit Sub End If Next End If If CalculatorText.Text.Contains("*") Then multiply = CalculatorText.Text.Split("*") For Each NumToPower As String In multiply num *= CStr(NumToPower) Next End If CalculatorResult.Text = "= " & num End Sub End Class
CHill60
"не работает" не помогает нам помочь вам - что происходит или не происходит
Doctor GME
извините за это
вопрос был отредактирован...