Я начну с этого, да, это домашнее задание, нет, я не хочу, чтобы вы делали это для меня, я просто пытаюсь понять, почему я получаю эту ошибку. Уже поздно, и я, скорее всего, получу ноль, но меня это не беспокоит. If lstGrades(J) = Grade(I) Then
где я получаю ошибку. Я не получаю его, пока не запущу программу и не нажму кнопку Дисплей. То, что он должен сделать, это перечислить всех учеников с выбранной оценкой, а затем перечислить количество учеников с этой оценкой.
Обычно я просто беру 0 (это будет первым в этом классе), но мне это кажется правильным, и это буквально досаждает мне до бесконечности, чтобы не найти проблему.
' Name: Professor Juarez Project
' Purpose: Display the names and number of students earning a specific grade.
' Programmer: <Chuck Lloyd> on <11/03/18>
Option Explicit On
Option Strict On
Option Infer Off
Public Class frmMain
Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'fill the lstGrades
lstGrades.Items.Add("A")
lstGrades.Items.Add("B")
lstGrades.Items.Add("C")
lstGrades.Items.Add("D")
lstGrades.Items.Add("F")
'the first grade in the list box is selected by default
lstGrades.SelectedIndex = 0
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
' Display the names and number of students earning a specific grade.
Dim count As Integer = 0
Dim counter As Integer = 0
Dim lstNames() As String = {"Helen", "Peter", "Yolanda", "Carl", "Jennifer", "Charles", "Addison", "Aiden", "Treyson", "Sydney", "Jacob", "Nancy", "George", "Ursula", "Jack"}
Dim lstGrades() As String = {"A", "B", "B", "A", "D", "F", "A", "B", "A", "B", "F", "C", "C", "B", "D"}
Dim Grade_by_Name(5, 15) As String 'multi-dimensional array sized for 5 letter grades by 15 students
' this allows for the possibility that all students could get one grade
Dim Grade() As String = {"A", "B", "C", "D", "F"}
Dim I As Integer
Dim J As Integer
For I = 0 To 5
count = 0
For J = 0 To 15
If lstGrades(J) = Grade(I) Then 'this is where the error is
Grade_by_Name(I, count) = lstNames(J)
count = count + 1
End If
Next
Next
Dim selectedGrade As String = lstGrades.ToString
counter = 0
If (lstGrades(I) = selectedGrade) Then
counter = counter + 1
End If
'display the count
lblNumber.Text = count.ToString
End Sub
Private Sub lstGrades_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles lstGrades.SelectedIndexChanged
'Clear the student list box and count label
lstNames.Items.Clear()
lblNumber.Text = "Number of Students: "
End Sub
Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
End Class