Visual Basic Grade生成器

时间:2013-05-02 03:27:37

标签: vb.net visual-studio-2010 visual-studio

对于我的项目,我们应该创建一个成绩计算器。到目前为止我一切都在工作。计算所有平均值和最终成绩。我遇到的问题是:如何将数字等级转换为字母等级。

这是计算最终成绩的代码。

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim result1 As Integer
        Dim result2 As Integer
        Dim result3 As Integer
        Dim attendance As Integer
        Dim project As Integer
        Dim result As Decimal

        result1 = Val(totalResultLabel.Text)
        result2 = Val(totalResultLabel.Text)
        result3 = Val(totalResultLabel.Text)
        attendance = Val(attendanceTextBox.Text)
        project = Val(projectTextBox.Text)

        result = (result1 * 0.3) + (result2 * 0.15) + (result3 * 0.2) + _
                 (attendance * 0.1) + (project * 0.25)

        finalResultLabel.Text = result
    End Sub

最终结果我想要:如果学生收到85,视觉应该说B.我知道我必须添加图像,但是我会添加一个按钮进行转换吗?我很困惑。

2 个答案:

答案 0 :(得分:2)

你必须做类似的事情:

    ....
    result = (result1 * .....
    Dim strResult as String

    Select Case result
        Case 0 To 10
            strResult = "F"
        Case y To z
            strResult = x
    End Select
    finalResultLabel.Text = strResult

答案 1 :(得分:1)

对我来说,声明一个等级(A,B,C等)的数组以及每个等级的最低分数。

E.g:

Dim GradeTable = New Dictionary(Of String, Decimal) From {{"A", 90D}, {"B", 80D}, {"C", 70D}, {"D", 60D}, {"F", 0D}}

以上表示对于“A”,积分必须至少为90,“B”至少为80,依此类推。请注意,上面的列表必须从最高到最低。

然后得到结果的等级(点):

Dim grade As String = GradeTable.First(Function(g) g.Value <= result).Key

其中result是上述问题中公式的十进制值。 grade将是“A”,“B”,“C”等等。