每次输入新数据时,我都无法让我的总数累积。该练习适用于汽车经销商,其中每个销售人员都有一个由 4 个字符组成的 ID 号。第一个字符是数字 1 或 2。数字 1 表示此人出售新车,而 2 表示二手车。中间的两个字符是人名的首字母。最后一个字符是 F 或 P。F 代表 Full-Time,P 代表 Part-Time。该应用程序应允许您输入 ID 和为所需的销售人员销售的汽车总数。它应该计算并显示以下 4 个类别的汽车总销量:全职员工、兼职员工、新车员工和二手车员工。我对 Visual Basic 还是很陌生,并且无法理解如何处理所有事情。当必须编写任何累积或有计数器的代码时,我似乎总是遇到问题。非常感谢任何正确方向的帮助或指导。
Option Explicit On
Option Strict On
Option Infer Off
Public Class frmMain
Dim intTotalPart As Integer = 0
Dim intTotalNew As Integer = 0
Dim intTotalUsed As Integer = 0
Dim intTotalFull As Integer = 0
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub txtId_Enter(sender As Object, e As EventArgs) Handles txtId.Enter
txtId.SelectAll()
End Sub
Private Sub txtNumSold_Enter(sender As Object, e As EventArgs) Handles txtNumSold.Enter
txtNumSold.SelectAll()
End Sub
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
'declare variables
Dim strId As String
Dim intNumSold As Integer
Dim intTotalFullTime As Integer
Dim intTotalPartTime As Integer
Dim intTotalNewCar As Integer
Dim intTotalUsedCar As Integer
'store input entered by user
strId = txtId.Text
'convert input to a number
Integer.TryParse(txtNumSold.Text, intNumSold)
'add NumSold to Total
intTotalFull = intTotalFull + intTotalFullTime
intTotalPart = intTotalPart + intTotalPartTime
intTotalNew = intTotalNew + intTotalNewCar
intTotalUsed = intTotalUsed + intTotalUsedCar
'check for length of 4 characters
'check for starting with 1 or 2
'check for ending in F or P
'if not display message, invalid ID
'otherwise calculate totals sold
Dim blnValidLength As Boolean = strId.Length.Equals(4)
Dim blnId As Boolean = strId.ToUpper Like "[12][A-Z][A-Z][FP]"
If Not blnValidLength OrElse Not blnId Then
MessageBox.Show("Invalid ID. Must be 4 characters long, begin with 1 or 2 and end in F or P")
Return
Else
'calculate number cars sold
If strId.StartsWith("1") Then
intTotalNewCar = CInt(txtNumSold.Text)
End If
If strId.StartsWith("2") Then
intTotalUsedCar = CInt(txtNumSold.Text)
End If
If strId.EndsWith("F") Then
intTotalFullTime = CInt(txtNumSold.Text)
End If
If strId.EndsWith("P") Then
intTotalPartTime = CInt(txtNumSold.Text)
End If
'display number of cars sold
lblTotalFullTime.Text = intTotalFullTime.ToString
lblTotalPartTime.Text = intTotalPartTime.ToString
lblTotalNew.Text = intTotalNewCar.ToString
lblTotalUsed.Text = intTotalUsedCar.ToString
End If
End Sub
End Class