Schulprogramm Random erstellen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von xX-Nick-Xx.

    Schulprogramm Random erstellen

    Moin zusammen, ich schreibe grad ein Programm Welches (Wort A) Anzeigt, und (Wort B) soll in der Textbox in English angezeigt werden.

    Beispiel:

    (Label: Hallo) Dann soll man in die Textbox: Hello oder Hi eingeben können.

    Mein Derzeitiger Code (Ignoriert leider nicht die Groß und Kleinschreibung)

    VB.NET-Quellcode

    1. Dim p8 As New List(Of String) From {"Betula pendula", "Sand-Birke"}
    2. Label10.Text = oneRndmOfList(p8)
    3. p8v = Label10.Text


    Und nimmt leider nur 2 Variablen

    Hat jemand evtl eine bessere idee wie ich das ganze umsetzen kann? oder Vorschläge?

    (Nochmal ein Beispiel siehe Screenshot)

    Ps: es wirk grad etwas durcheinander :D aber ich suche nach Ideen / Lösungen für die Umsetzung (Mein projekt hat ca 200x Hello/Hallo (Übersetzungen)

    Danke im Vorraus
    Bilder
    • Overwolf_LKwKu41hyp.png

      2,59 kB, 615×117, 112 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „xX-Nick-Xx“ ()

    Hab es jetzt kurz auf der Konsole geschrieben

    Versuch es irgendwie so

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ​Option Strict On
    2. Option Explicit On
    3. Public Module Module1
    4. Dim Data As Dictionary(Of String, String())
    5. Public Sub Main()
    6. Data = GetData()
    7. 'gib dein Wort ein
    8. Dim searchword1 = "hallo"
    9. 'gib deine Übersetzung ein
    10. Dim translation1 = "hi"
    11. If CheckResult(searchword1, translation1) Then
    12. Stop
    13. End If
    14. End Sub
    15. Private Function CheckResult(key As String, trans As String) As Boolean
    16. If Not String.IsNullOrEmpty(key) Then
    17. If Not String.IsNullOrEmpty(trans) Then
    18. Dim idx = IndexOf(key)
    19. If idx >= 0 Then
    20. If CheckTrans(trans, idx) Then
    21. Return True
    22. End If
    23. End If
    24. End If
    25. End If
    26. Return False
    27. End Function
    28. Private Function IndexOf(key As String) As Int32
    29. For i As Int32 = 0 To Data.Count - 1
    30. If Data.Keys(i).Trim.ToLower = key.Trim.ToLower Then
    31. Return i
    32. End If
    33. Next
    34. Return -1
    35. End Function
    36. Private Function CheckTrans(trans As String, idx As Int32) As Boolean
    37. Dim valu = Data.Values(idx)
    38. For Each v In valu
    39. If v.Trim.ToLower = trans.Trim.ToLower Then
    40. Return True
    41. End If
    42. Next
    43. Return False
    44. End Function
    45. Private Function GetData() As Dictionary(Of String, String())
    46. Return New Dictionary(Of String, String()) From {{"Hallo", {"Hello", "Hi"}},
    47. {"kühl", {"cool", "chilly", "distant"}},
    48. {"geil", {"awesome", "wicked", "horny"}},
    49. {"besoffen", {"plastered", "blitzed", "pissed"}}
    50. }
    51. End Function
    52. End Module


    Freundliche Grüsse

    exc-jdbi
    Mir klingt das wie ein Vokabeltrainer.
    Da würd ich ohne typDataset nicht drangehen.
    Ist ja absehbar, dass man Vokabeln zufügen und abspeichern werden wird, dass man den Bestand in Lektionen segmentiert, evtl. mehrere Fremdsprachen unterstützen will etc...
    Acuh sollte man Gui und Daten getrennt halten, denn es gibt viele Möglichkeiten, zu lernen, und das richtige wort eintippen zu müssen ist mega-umständlich.
    Am effizientesten lernt es sich mit einem Karteikasten-System aus Kärtchen, auf der einen Seite die Frage, auf der anderen die Antwort.
    Gelernt wird, indem man die Frage liest, sich die Antwort denkt, und dann nachguckt, ob richtig gedacht. Dementsprechend wird die Karte wider in den Bestand sortiert, sodass schlecht gewusste Karten häufiger wiederholt werden.
    Sowas gilt es im Datenmodell nachzubilden, und ich täte auch eine Gui so bauen, dass sie diesen Workflow umsetzt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Das Karten Spiel kenn ich, das nutzen wir hier auch

    Das ganze als Programm liegt etwas über meiner Erfahrung

    Ich mach mich Mal darüber etwas schlau.

    Meine Derzeitige Idee ist eben:

    (Durch Zufalls Text)

    Random Auswahl

    Deutscher Name | Englischer

    Nächste Random Auswahl

    English | Deutsch

    Mit einem Label und Textbox

    Also ca 200 Label und Textboxen

    Deswegen such ich nach einer Alternative die etwas Code spart. Evtl ein Datagridview.

    Oder man macht es mit nur einer Textbox + Label und daraus so eine Art Quiz...

    Wie gesagt, ich überleg noch nach der Besten Lösung

    @xX-Nick-Xx Such mal im Forum nach Vokabeltrainer, da gibt es einige gute Treffer.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn du Microsoft Office hast kannst du ja mal Probieren eine Acces Database zu erstellen mit zwei Spalten (Deutsch & Übersetztung), dann kannnst du im Programm eine Funktion einbauen um eine Database zu laden.

    Mit Acces Database Verbinden

    Sonst könntest du noch Probieren mit hilfe einer Virtuellen ListView (also im Code definiert) die Vokabeln abzufragen. Wie man ListViews Abspeichert/Lädt

    Ich hoffe ich konnte dir Helfen, vileicht ist es nicht das was du suchst.
    Grüße, Matix
    Vergiss mal bitte den Post von Matix, des is a schmarrn

    Das klingt, wenn nicht viel anderes dazu kommt, dann nimm ein typed Dataset. Was dir fehlt ist eine Suche. Erstelle eine Suchspalte und schreibe dort alle Werte nach denen gesucht werden soll in KLeinbuchstaben (ToLower).
    Dein Suchbegriff den du eingibst konvertierst du auch ToLower.
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Weil zum Einen eine Access Datei hier oversized ist, zum Anderen das Speichern der ListView wie im verlinkten Beitrag überholt ist.
    Mit einem typisierten Dataset kann der TO vernünftiges Binden der Controls erreichen und die Framework-Funktionen zum laden und speichern. Kann im Dataset suchen. Und und und..
    Und wenn der TO dann noch hier im Forum in den Tutorials zum typisierten Dataset schaut, findet er alles was er für den Anfang braucht.
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.

    Matix Media schrieb:

    warum ist mai betrag a schmarrn?
    Das sollen ja wohl Schüler ggf. zu Hause ausführen, und da müsste ggf. noch ein Access oder ein Datenbank-Treiber installiert werden für ein paar Vokabeln.
    Würde ich als Elter(n) nicht zulassen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!