Frage als "gelernt" markieren

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von picoflop.

    Frage als "gelernt" markieren

    Hallo Leute!

    Habe das gleiche Problem bereits in der Rubrik "Datenbanken" beschrieben, leider habe ich bisher keine Antwort erhalten.

    Folgendes Problem:

    Es soll ein Vokabeltrainer programmiert werden, der zwei Buttons hat.
    Der eine Button ist für "nächste Frage anzeigen", der andere für "die Frage als 'gelernt' markieren", sodass diese nicht mehr im Fragenpool erscheint.

    Ich habe nun folgenden Code programmiert:

    Der relevante Codeausschnitt für die Schaltfläche "nächste Frage anzeigen":

    VB.NET-Quellcode

    1. 'globale Variablen:
    2. Dim zufallszahl As Integer
    3. Dim gelernt(5) As Boolean 'Array, ob jeweilige Frage bereits als gelernt markiert wurde
    4. Dim Vokabeln(5) as String ' darin stehen alle Vokabeln.
    5. 'Funktion "Naechste_Frage_Click":
    6. y = 0
    7. While y <= 5
    8. If gelernt(y) = True Then ' zeige nur eine Vokabel, die bisher noch nicht als gelernt markiert wurde
    9. zufallszahl = r.Next(0, i) ' ansonsten generiere eine neue Zufallszahl
    10. End If
    11. y = y + 1
    12. End While
    13. lblFrage.text = Vokabeln(zufallszahl)



    Hier noch der Code des Buttons "als 'gelernt' markieren":

    VB.NET-Quellcode

    1. gelernt(y) = zufallszahl




    Ich weiß leider nicht weiter, wo liegt mein Problem?


    Gruß

    logic88 schrieb:

    Ich weiß leider nicht weiter, wo liegt mein Problem?

    Du erzeugst eine Zufallszahl und wählst damit die Frage aus. Dein ganze "if gelernt bla bla" ist nur Snakeoil und hat deswegen keinerlei Funktion.

    Besser:
    Frage -> Objekt!
    Public Class Frage
    Public Property Text as string
    Public Property Gelernt as boolean
    end class

    und dann zb per LINQ

    NeueFrage = from f in Fragen where not f.gelernt order by rnd.next select f take 1