Я начал работу и все работает по назначению, за исключением 2 накопленных итогов, расчет не работает так, как мне это нужно. Вместо того, чтобы добавлять предыдущие продажи к сумме, он накладывает новую продажу на конец ...VB.NET - Накопительные числа и вычисляющие средние
например: I input 1 Snowboard and 1 Snowboard with Boots, это работает, 1 показано в сводке для сноубордов и сноубордов с сапогами. Однако, когда я пытаюсь ввести снова, чтобы сохранить текущее количество продаж, у меня есть проблема, я ввожу 1 сноуборд и 1 сноуборд с сапогами, а в итогах показаны 11, а не 2. Почему это происходит?
' Declare module-level variables and constants.
Private SnowBoardsSold, BootsSold, SaleCount As Integer
Private ItemsSold As Integer
Private TotalSales As Decimal
Const SNOWBOARD_RATE As Decimal = 20D
Const BOOTS_RATE As Decimal = 30D
Private Sub CalculateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalculateButton.Click
' Calculate the prices
Dim SnowBoards, Boots As Integer
Dim SnowBoardSale, BootsSale, ThisSale, AverageSalesEver As Decimal
Try
' Convert the Snowboard input to numeric variable.
SnowBoards = Integer.Parse(SnowboardsTextBox.Text)
Try
' Convert Boots if Snowboard was successful.
Boots = Integer.Parse(WithBootsTextBox.Text)
' Calculate values for sale.
SnowBoardSale = SnowBoards * SNOWBOARD_RATE
BootsSale = Boots * BOOTS_RATE
ThisSale = SnowBoardSale + BootsSale
' Calculate summary values.
TotalSales += ThisSale
BootsSold += BootsSale
SnowBoardsSold += SnowBoardSale
SaleCount += 1
AverageSalesEver = TotalSales/SaleCount
' Format and display prices for the sale.
SnowBoardsPriceTextBox.Text = SnowBoardSale.ToString("c")
BootsPriceTextBox.Text = BootsSale.ToString("c")
TotalPriceTextBox.Text = ThisSale.ToString("c")
' Format and display values for the summary.
SnowBoardRentalTextBox.Text += SnowBoards.ToString()
BootsRentalTextBox.Text += Boots.ToString()
TotalChargesTextBox.Text = TotalSales.ToString("c")
AverageChargeTextBox.Text = AverageSalesEver.ToString("c")
Catch BootsException As FormatException
' Handle a Boots exception.
MessageBox.Show("Please enter numbers.", "Data Entry Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
With WithBootsTextBox
.Focus()
.SelectAll()
End With
End Try
Catch SnowBoardsException As FormatException
' Handle a SnowBoard exception.
MessageBox.Show("Please enter numbers.", "Data Entry Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
With SnowboardsTextBox
.Focus()
.SelectAll()
End With
Catch AnException As Exception
'Handle any other exception.
MessageBox.Show("Error: " & AnException.Message)
End Try
End Sub
какие переменные являются неправильными, поэтому мы можем сузить то, на чем мы фокусируемся. – Plutonix
Переменная MediumChargeInteger неверна, а SnowboardSaleCountInteger и WithBootsSaleCountInteger не суммируются, как ожидалось. –
Я бы создал функцию для каждого вычисления. Фактически разбивайте каждую абстракцию на отдельный суб или лямбду. Это упростит чтение кода. Мое другое предложение - пример того, какие результаты вы получаете и какими должны быть. – jcwrequests