我是VB
的新手,我需要为溜冰场创建一个程序。评委的数量每周都不同,每个评委在每名裁判员的比赛结束时,每名裁判都给予选手 0-10 。该应用程序需要允许溜冰场的管理员输入特定滑冰者的每个评分。它还应计算并显示skater's average
,the number of scores entered
和total score
。您从List box
中选择每个分数,然后点击Record Score button
。
我不知道下一步该往哪里去。当您从list box
中选择第一个分数并且还将分数重新添加到list box
的底部时,一切都不正确。以下是代码,感谢任何帮助。
谢谢!
Option Explicit On
Option Strict On
Option Infer Off
Public Class frmMain
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
'Fill list box with values
For intScore As Integer = 0 To 10 Step 1
lstScore.Items.Add(intScore.ToString)
Next intScore
lstScore.SelectedItem = "0"
End Sub
Private Sub btnRecordScore_Click(sender As Object, e As EventArgs) Handles btnRecordScore.Click
'accumulates the scores for each skater
Dim intScore As Integer
Dim intNumScores As Integer
Dim intTotalScore As Integer
Dim decAvgScore As Decimal
Integer.TryParse(lstScore.SelectedItem.ToString, intScore)
'add score to score
lstScore.Items.Add(lstScore.SelectedItem)
'update average
intNumScores = 0
intTotalScore = 0
For Each selScore As Object In lstScore.Items
If Integer.TryParse(selScore.ToString, intScore) Then
intNumScores = intNumScores + intScore
intTotalScore = intTotalScore + 1
End If
Next
decAvgScore = intNumScores \ intTotalScore
lblTotalScore.Text = intNumScores.ToString
lblNumScores.Text = intTotalScore.ToString
lblAvgScore.Text = decAvgScore.ToString("N1")
End Sub
Private Sub btnNextSkater_Click(sender As Object, e As EventArgs) Handles btnNextSkater.Click
'clears screen, sets focus
lblTotalScore.Text = String.Empty
lblNumScores.Text = String.Empty
lblAvgScore.Text = String.Empty
lstScore.Focus()
End Sub
End Class
答案 0 :(得分:0)
试试这个。
Public Class Form1
'Declare TotalScore and NumScore here so they're values stay constant
Dim intTotalScore As Integer = 0
Dim intNumScores As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Populate list box with scores
For intScore As Integer = 0 To 10 Step 1
lstScore.Items.Add(intScore.ToString)
Next intScore
lstScore.SelectedItem = "0"
End Sub
Private Sub btnRecordScore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRecordScore.Click
Dim intScore As Integer
Dim AvgScore As Decimal
'add score to score
intScore = lstScore.SelectedIndex
intTotalScore = intTotalScore + lstScore.SelectedIndex
'update average
intNumScores = intNumScores + 1
AvgScore = intTotalScore / intNumScores
'Populate labels
lblTotalScore.Text = intTotalScore.ToString
lblNumScores.Text = intNumScores.ToString
lblAvgScore.Text = AvgScore.ToString
End Sub
Private Sub btnNextSkater_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNextSkater.Click
'clears screen, sets focus
intTotalScore = 0
intNumScores = 0
lblTotalScore.Text = String.Empty
lblNumScores.Text = String.Empty
lblAvgScore.Text = String.Empty
lstScore.SelectedItem = "0"
lstScore.Focus()
End Sub
End Class
请记住,lstScore.Items.Add(lstScore.SelectedItem)
只会在列表框中添加其他项目。
希望这有帮助。