/ / заплутаний кодом помилки у VB.Net - vb.net

плутати код помилки у VB.Net - vb.net

Мій код видає помилку "Помилка типу" Average.Module1.student "не може бути перетворена в" 1-мірний масив Average.Module1.student. "У рядку 15. Що я пропускаю?

Модуль Модуль1 Система імпорту

Class student
Public id As Integer
Public name As String
Public M1 As Integer
Public M2 As Integer
Public objStudent As String
Public Function average() As Double
Return (M1 + M2) / 2
End Function
End Class
Class Program
Private Shared Sub Main(args As String())
Dim objstudent() As student = New student()

Dim s As student
For i As Integer = 0 To 14
s = New student()
Console.WriteLine("Enter the Student id")
s.id = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the Student Name")
s.name = Console.ReadLine()
Console.WriteLine("Enter the first mark")
s.M1 = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the second mark")
s.M2 = Convert.ToInt32(Console.ReadLine())
objstudent(i) = s
Next
For Each ss As student In objstudent
Dim a As Double = ss.average()
If a >= 90 Then
Console.WriteLine(ss.name + "Your grade is A")
ElseIf (a >= 80) AndAlso (a < 90) Then
Console.WriteLine(ss.name + "Your grade is B")
ElseIf (a >= 70) AndAlso (a < 80) Then
Console.WriteLine(ss.name + "Your grade is C")
ElseIf (a >= 60) AndAlso (a < 70) Then
Console.WriteLine(ss.name + "Your grade is D")
Else
Console.WriteLine(ss.name + "Sorry, You failed")
End If

Next

End Sub
End Class

Кінцевий модуль

Відповіді:

0 для відповіді № 1
Dim objstudent() As student = New student()

Це неправильне оголошення масиву. Ви заявляєте, що хочете масив студентів, але використовуєте конструктор Student. Отже, ви насправді скажете:

new array = new object

Ось правильна декларація. Зверніть увагу, що масиви базуються на 0. Тому:

Dim objstudent As student() = New student(14) {}

- це масив з 15 студентів.

Class student
Public id As Integer
Public name As String
Public M1 As Integer
Public M2 As Integer
Public objStudent As String
Public Function average() As Double
Return (M1 + M2) / 2
End Function
End Class
Class Program
Private Shared Sub Main(args As String())
Dim objstudent As student() = New student(14) {}

Dim s As student
For i As Integer = 0 To 14
s = New student()
Console.WriteLine("Enter the Student id")
s.id = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the Student Name")
s.name = Console.ReadLine()
Console.WriteLine("Enter the first mark")
s.M1 = Convert.ToInt32(Console.ReadLine())
Console.WriteLine("Enter the second mark")
s.M2 = Convert.ToInt32(Console.ReadLine())
objstudent(i) = s
Next
For Each ss As student In objstudent
Dim a As Double = ss.average()
If a >= 90 Then
Console.WriteLine(ss.name + "Your grade is A")
ElseIf (a >= 80) AndAlso (a < 90) Then
Console.WriteLine(ss.name + "Your grade is B")
ElseIf (a >= 70) AndAlso (a < 80) Then
Console.WriteLine(ss.name + "Your grade is C")
ElseIf (a >= 60) AndAlso (a < 70) Then
Console.WriteLine(ss.name + "Your grade is D")
Else
Console.WriteLine(ss.name + "Sorry, You failed")
End If

Next

End Sub
End Class