Som van cijfers in array (per row)

Status
Niet open voor verdere reacties.

JenPi

Gebruiker
Lid geworden
11 jan 2015
Berichten
16
Hallo,

Ik moet voor mijn les programmeren een programmatje schrijven, waarin ik bij het starten van een programma, een tekstvak heb met namen van studenten (in array), de namen van de vakken in labels (in array) en de punten in textvak (in meerdimensionale array). Dit is tot nu toe gelukt (geschreven bij de form_load)
Nu heb ik ook nog een 3de textvak, waar afhankelijk van de button; ofwel het totaal van de punten per student, ofwel het gemiddelde van de vakken komt.

Ik zou de totalen/gemiddelden in een nieuwe array willen steken en deze dan uitvoeren in txtUitvoer maar ik weet niet meteen hoe ik dit doe.
Kan iemand me opweg helpen?

TotalRow.jpg

Dit heb ik al als code:

Public Class frmMeerDimensies
'declaratie constanten (default in HOOFDLETTERS)
Const AANTALSTUD As Integer = 3
Const AANTALVAK As Integer = 2

'array met studenten en vakken
Dim strStudent() As String = {"Jan", "Piet", "Joris", "Korneel"}
Dim strVak() As String = {"Wiskunde", "Nederlands", "Frans"}

'meerdimensionale array met punten
Dim sngPunt(,) As Single = {{8, 7, 6}, {6, 7, 8}, {0, 9, 8}, {4, 5, 6}}

Private Sub btnTotaal_Click(sender As Object, e As EventArgs) Handles btnTotaal.Click

End Sub

Private Sub btnGemiddeld_Click(sender As Object, e As EventArgs) Handles btnGemiddeld.Click


End Sub

Private Sub btnSluit_Click(sender As Object, e As EventArgs) Handles btnSluit.Click
Me.Close()

End Sub

Private Sub frmMeerDimensies_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim strLaatsteTeken As String 'labelX
Dim intLaatsteTeken As Integer 'X omgezet naar integer

'zet de studenten in het txtvak txtStudent
'we declareren onze teller in de lus en tellen tot aan de constante
For intTelStud As Integer = 0 To AANTALSTUD
txtStudent.Text = txtStudent.Text & strStudent(intTelStud) & vbCrLf
'vorige zin kan korter
'txtStudent.text &= strStudent(intTelStud) & vbCrLf
Next

For Each ctl As Control In Me.Controls
If TypeOf (ctl) Is Label Then
strLaatsteTeken = ctl.Text.Substring(ctl.Text.Length - 1, 1)
intLaatsteTeken = CType(strLaatsteTeken, Integer)
ctl.Text = strVak(intLaatsteTeken - 1) '1 aftrekken label 1 = vak(0)
End If
Next

'hier gebruiken we 2 lussen, eerst van links naar rechts, omdat we met een tekst vak werken
'de traagst tellende lus is de vertikale lus, de studenten

For intTelStud = 0 To AANTALSTUD
For intTelVak As Integer = 0 To AANTALVAK
'om een vaste lengte te krijgen; zetten we 15 spaties voor de punten en nemen dan de meest rechtse 15 tekens
txtPunten.Text &= Microsoft.VisualBasic.Right(" " & sngPunt(intTelStud, intTelVak), 20)
Next
'ga naar een nieuwe regel wanneer je aan een nieuwe leerling begint
txtPunten.Text &= vbCrLf
Next

End Sub

Private Sub frmMeerDimensies_Shown(sender As Object, e As EventArgs) Handles Me.Shown
btnSluit.Focus()
End Sub
End Class
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan