使用结构、数组、循环和DataGridView写的分数统计小程序

学习VB的课程中,老师布置了一个小程序,录入学生成绩,然后统计出学生成绩总分数。

界面如下:

 image 

代码如下:

Public Class Form1

    Const sMax As Integer = 100

    Structure StudentType

        Dim strID As String

        Dim strName As String

        Dim sngScore As Single

    End Structure

    Dim udtStudent(sMax) As StudentType

    Dim intCount As Integer = 0

    Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click

        dgvScore.Rows.Add(txtID.Text, txtName.Text, txtScore.Text)

        txtID.Focus()

        udtStudent(intCount).strID = txtID.Text

        udtStudent(intCount).strName = txtName.Text

        udtStudent(intCount).sngScore = CSng(txtScore.Text)

        intCount = intCount + 1

        txtID.Text = ""

        txtName.Text = ""

        txtScore.Text = ""

    End Sub

    Private Sub btnSum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSum.Click

        Dim intPos As Integer

        Dim intSum As Integer

        Dim dgvAvg As Double

        intSum = 0

        For intPos = 0 To intCount - 1

            intSum = intSum + udtStudent(intPos).sngScore

        Next

        If intCount > 0 Then dgvAvg = intSum / intCount

        MsgBox("平均分数:" + dgvAvg.ToString)

        txtID.Focus()

    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click

        End

    End Sub

    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click

        If Me.dgvScore.SelectedRows.Count > 0 AndAlso _

        Not Me.dgvScore.SelectedRows(0).Index = _

        Me.dgvScore.Rows.Count - 1 Then _

        Me.dgvScore.Rows.RemoveAt(Me.dgvScore.SelectedRows(0).Index)

    End Sub

End Class

 ps:2017/2/5 更新一下代码格式,系统提示错误信息:少于150字的随笔不允许发布到首页候选区。这个博客是之前写的,现在编辑了,发布至首页候选区这个选项应该作废呀,现在这个功能阻止我重新编辑这边博客。

提示:在删除操作之后再统计时会发生不正确,希望大家能指正。谢谢!

 

本文基于 知识共享许可协议 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议发布,欢迎转载,演绎,但是必须保留本文的署名liminjun88(包含链接http://www.cnblogs.com/liminjun88/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

原文地址:https://www.cnblogs.com/liminjun88/p/1572129.html