Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

High and Low Test Scores

$
0
0
I am programming an application in VB that allows the user to input test scores and then it automatically calculates the average, high score, low score, and a grade distribution (A, B, C, D, F) for the entire class. I have the average, high score, and the distribution working for the most part. However, I am struggling with the low score. The high score works perfectly fine but by using the same logic to get the low score, it usually will leave the low score text box either blank or as "0" once I convert it back from an integer to a string. Also, my grade distribution label is a bit wacky. My instructor requested that we create one label for all letter grades and use concatenation to tie multiple strings together. For the most part, it works, but the problem I'm having is it's delayed. For instance, the first time I enter a number, it doesn't assign the grade to any letter grade value, but when I input a second score, it tracks it perfectly fine. The same applies to entering another score that would fall within a different letter grade category (e.g. 88 is counted as a "B" but then if I enter 70, for instance, immediately afterwards, it still tracks it as a B and will only be corrected after I enter another score.) Sorry for typing so much, I hope this is somewhat coherent. Thanks in advance for any advice, I'm new to VB.
 Dim highInteger As Integer
    Dim lowInteger As Integer
    Dim enteredInteger As Integer
    Dim countA As Integer
    Dim countB As Integer
    Dim countC As Integer
    Dim countD As Integer
    Dim countF As Integer

'High and Low Score Code

        If enteredInteger > highInteger Then
            highInteger = enteredInteger
            highTextBox.Text = highInteger.ToString()
        End If

        If enteredInteger <= 100 Then
            lowInteger = enteredInteger
            lowTextBox.Text = lowInteger.ToString()

        End If


        'Grade Distribution Label Code


        gradesLabel.Text = "A's" & " " & countA.ToString() & " " & " " & "B's" & " " & countB.ToString() & " " & " " & "C's" & " " & countC.ToString() & " " & " " & "D's" & " " & countD.ToString() & " " & " " & "F's" & countF.ToString()

        If enterButton.Enabled = True Then
        End If
        If enteredInteger >= 90 Then
            countA = countA + 1
        Else
            If enteredInteger >= 80 And enteredInteger < 90 Then
                countB = countB + 1
            Else
                If enteredInteger >= 70 And enteredInteger < 80 Then
                    countC = countC + 1
                Else
                    If enteredInteger >= 60 And enteredInteger < 70 Then
                        countD = countD + 1
                    Else
                        countF = countF + 1
                    End If
                End If
            End If
        End If


By the way, just noticed that my low score code is completely off. I know, I know. It's essentially stating that any number less than or equal to 100 is the low score, which is obviously not what I am looking for. I just put that there temporarily because I was tired of seeing "0" or nothing. My original low score code looked like this:
 
If enteredInteger < lowInteger Then
lowInteger = enteredInteger
lowTextBox.Text = lowInteger.ToString()


Viewing all articles
Browse latest Browse all 51036

Trending Articles