Visual basic help
CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums
Results 1 to 2 of 2

Thread: Visual basic help

Threaded View

  1. #1
    Join Date
    Jan 2014

    Visual basic help

    hi everyone,
    i really need some help with a VB project im doing, im sure its something simple but i just cant find the problem.

    Attachment 32313
    whats happening here is im clicking the display student grade button which should be displaying the students name, their grade and mark which id read in from a text file. but all that is happening is the rest of the text boxes are displaying the average, highest and lowest based on the students marks, which means the student list box must be there but its just not displaying itself

    Attachment 32315
    this is what happens after i click the placement button which works perfectly. this list box also needs to take into account the student list box data i.e mark, grade etc in order to display correctly. no matter what i try i just cant get the student list box to populate with the data.

    heres a list of the code i have but once again there are no errors shown so im pretty stumped
    Public Class StudentGrade
        Dim answerkey() As String = IO.File.ReadAllLines("answerkey.txt")
        Structure Student
            Dim student As String
            Dim answer As String
            Dim mark As String
            Dim grade As String
            Dim order As String
        End Structure 'creates a structure to hold variables
        Dim Test() As Student
        Dim stanswers() As String
        Private Sub rbtTest1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtTest1.CheckedChanged
            If rbtTest2.Checked = True Then
                answerkey = IO.File.ReadAllLines("answerkey2.txt") ' reads in the answerkey2.txt into answerkey text box
                answerkey = IO.File.ReadAllLines("answerkey.txt") ' reads in answerkey.txt into answerkey text box if not checked
            End If
            txtAverage.Text = Nothing
            txthighestMark.Text = Nothing
            txtLowestMark.Text = Nothing
            txtAnswerKey.Text = answerkey(0)
            ' This instructs the program to read the student answers text file into the 'stanswers' array
            stanswers = IO.File.ReadAllLines("stanswers.txt")
            'Changes the contents of the answerkey text file to upper case
            '  txtanswer.Text = answerkey(0).ToUpper
            If rbtTest1.Checked = True Then
                stanswers = IO.File.ReadAllLines("stanswers.txt") 'compares the answerkey to student answers 
                stanswers = IO.File.ReadAllLines("stanswers2.txt")
            End If
        End Sub
        Private Sub btnStudentGrades_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStudentGrades.Click
            'Array1 is declared to read in the text file's contents
            Dim Array1() As String = stanswers
            'counts the number of boxes within the 'array1' array containing the student answers text file
            Dim n As Integer = Array1.Count - 1
            'redimensions the students structure array with the same number of boxes as 'array1'
            ReDim Test(n)
            'data is an array that will hold two data packets from text file (student name and answer)
            Dim packet() As String
            For i As Integer = 0 To n  ' 
                packet = Array1(i).Split(","c)
                Test(i).student = packet(0)
                Test(i).answer = packet(1)
            'Setup to hold student marks
            Dim mark(n) As Integer
            Dim strSub1 As String
            Dim strSub2 As String = answerkey(0)
            ' This next  section compares the students answers with the answer key and increases
            ' the count by 1 everytime a correct answer is found.
            For i As Integer = 0 To n 'length of the arrays 
                Dim counter As Integer = 0
                strSub1 = Test(i).answer.ToUpper
                For j As Integer = 0 To strSub1.Length - 1
                    If strSub1.Substring(j, 1) = strSub2.Substring(j, 1) Then
                        counter += 1
                    End If
                ' parameters put in place to decide both grade and placement
                'The total score achieved by the student will be relative to their average placement
                mark(i) = counter
                Test(i).mark = CStr(mark(i))
                If CDbl(Test(i).mark) <= 5 Then
                    Test(i).grade = "F"
                    Test(i).order = "Below Average"
                ElseIf CDbl(Test(i).mark) = 6 Then
                    Test(i).grade = "D"
                    Test(i).order = "Below Average"
                ElseIf CDbl(Test(i).mark) = 7 Then
                    Test(i).grade = "C"
                    Test(i).order = "Average"
                ElseIf CDbl(Test(i).mark) = 8 Then
                    Test(i).grade = "B"
                    Test(i).order = "Above Average"
                    Test(i).grade = "A"
                    Test(i).order = "Above Average"
                End If
            ' calculates the low, high and average scores and places in corresponding text box
            txtAverage.Text = CStr(mark.Average)
            txthighestMark.Text = CStr(mark.Max)
            txtLowestMark.Text = CStr(mark.Min)
            For i As Integer = 0 To n
                lstPlacement.Items.Add(Test(i).student & vbTab & Test(i).mark & vbTab & Test(i).grade)
        End Sub
        Private Sub btnPlacement_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlacement.Click
            For i As Integer = 0 To Test.Length - 1
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
            rbtTest1.Checked = Nothing
            rbtTest2.Checked = Nothing
            lstPlacement.Items.Clear() 'wipes all remaining data from the form 
        End Sub
        Private Sub StudentGrade_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        End Sub
    End Class

    any help would be greatly appreciated. thanks everyone
    Last edited by DataMiser; February 1st, 2014 at 11:19 AM. Reason: added code tags

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Windows Mobile Development Center

Click Here to Expand Forum to Full Width

On-Demand Webinars (sponsored)