Il mio codice sta producendo errore "Errore di tipo" Average.Module1.student "non può essere convertito in" matrice 1 dimensionale di Average.Module1.student. "Sulla riga 15. Cosa sto trascurando?
Modulo Modulo 1 Sistema di importazione
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
Fine modulo
risposte:
0 per risposta № 1Dim objstudent() As student = New student()
Questa non è una dichiarazione di array corretta. Dichiari di volere una schiera di studenti ma usi il costruttore Student. Quindi in realtà dici:
new array = new object
Ecco la dichiarazione corretta. Si noti che le matrici sono basate su 0. Così:
Dim objstudent As student() = New student(14) {}
è un array di 15 studenti.
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