2013-05-02 63 views
1

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

这是获得最终成绩的代码。

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

你不得不做这样的事情:

.... 
    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

对于我来说,申报的等级(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”等。