发布网友 发布时间:2022-09-19 16:45
共6个回答
热心网友 时间:2023-10-29 11:14
不是从表里抓的话,可以直接输入。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtAll.Text = ""
lblAvg.Text = 0
lblCount.Text = 0
lblSum.Text = 0
'MsgBox("请输入各位同学的分数,以"",""隔开,如 89,78,92")
txtAll.Select() '这里focus聚焦点有时候不行,可以用select代替,会聚焦到此处
End Sub
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
Dim strAll As String = String.Empty
Dim arrAll() As String
Dim intCount As Integer = 0
Dim intAll As Integer = 0
Dim DecAvg As Decimal = 0
If txtAll.Text.Trim = "" Then
MsgBox("请先输入各位同学的分数!")
Else
strAll = txtAll.Text.Trim
If InStr(strAll, ",") > 0 AndAlso InStr(strAll, ",") > 0 Then 'InStr(String1,String2)返回在String1找到String2的位置,找不到返回0
MsgBox("请先将隔开符统一!")
Exit Sub
ElseIf InStr(strAll, ",") > 0 Then '如果隔开符统一是","
arrAll = strAll.Split(",")
ElseIf InStr(strAll, ",") > 0 Then '如果隔开符统一是","
arrAll = strAll.Split(",")
End If
For i As Integer = 0 To arrAll.Length - 1
arrAll(i) = Trim(arrAll(i))
If Not arrAll(i) = "" Then
'确保是数字,且取值范围在0~100 (范围根据需要设置)
If Not IsNumeric(arrAll(i)) OrElse Not CInt(arrAll(i)) >= 0 OrElse Not CInt(arrAll(i)) <= 100 Then
MsgBox("您输入的分数有误!请重新输入!")
Exit Sub
Else
intCount += 1
intAll += CInt(arrAll(i))
End If
End If
Next
'这里如果除不尽的话,可能会出现多位小数。10/4只等于2.5,但10/3会得0.33333333333.....
DecAvg = intAll / intCount
lblSum.Text = intAll
lblCount.Text = intCount
If DecAvg.ToString.Length > 6 Then
'可以先把平均数变为string类型,在对它进行处理,只取所需要的长度
'比如我这里的平均数应该会变成:两位整数+小数点+三位小数 ,也就一共6位长
lblAvg.Text = DecAvg.ToString.Substring(0, 6)
Else
lblAvg.Text = DecAvg
End If
End If
End Sub
从表里抓的话,其实也差不多,还可以分成不同科目同时处理。
就是取数据的方式不同,都是一样简单的处理,想做成什么样就什么样。
热心网友 时间:2023-10-29 11:14
下面的程序可以运行,添加一个文本框用来显示一个按钮。热心网友 时间:2023-10-29 11:15
' StuNum 学生个数热心网友 时间:2023-10-29 11:15
一个文本框+一个按钮 按钮代码 str(总分数)/str(人数)=text1.text 里面填数字!热心网友 时间:2023-10-29 11:16
应该好做吧! 有时间做做看了!热心网友 时间:2023-10-29 11:17
具体点?有数据库吗?