Sätze/Vokabel Trainer

  • Hallo @all,
    ich poste heute mal einen Sätze/Vokabel-Trainer den ich für meine Schule erstellt habe.

    Version 1.1

    Funktionen:

    • Abfrage von Sätzen/Vokabeln die in einer .txt-Date abgespeichert sind.
    • Automatisches Hinzufügen eines Punktes, wenn man ihn vergisst.
    • Der Lehrer hat die Möglichkeit, die Vokabel als richtig zu erklären (mit Password geschützt).


    Bemerkungen zur Erstellung der .txt-Datei:

    • Am Anfang steht die Anzahl der gespeicherten Sätze.
    • Dann eine Leerzeile
    • Die Vokabel/der Satz auf Deutsch.
    • Die Vokabel/der Satz auf der Fremndsprache.

    Noch geplante Features: (comming soon)

    • Programm-Interner Editor für die Vokabel Datei.

    Screenshots:
    autoit.de/wcf/attachment/12460/

    Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    AutoItSetOption("TrayIconHide", 1)
    Dim $A[1000000]
    $R = 0
    $LehrerPassword = "TEST"

    [/autoit] [autoit][/autoit] [autoit]

    $GZ = FileReadLine(@scriptDir & "\satze.txt", 1)
    $hGui = GUICreate("Sätze Trainer", 320, 120)
    GUICtrlCreateLabel("Bitte geben sie an wie viele Aufgaben gestellt werden sollen." & @CRLF & @CRLF & "Es sind " & $GZ & " Aufgaben abgespeichert.", 10, 10)
    GUICtrlCreateLabel("Zahl:", 10, 80)
    $A_anzahl0 = GUICtrlCreateInput("", 40, 80, 30, 20, $ES_NUMBER)
    $Weiter = GUICtrlCreateButton("Weiter", 80, 80, 40, 20, $BS_DEFPUSHBUTTON)
    $SB = GUICtrlCreateButton("Sätze bearbeiten", 130, 80, 90, 20)
    GUISetState()
    While WinExists("Sätze Trainer")
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Weiter
    $A_anzahl = GUICtrlRead($A_anzahl0)
    If $A_anzahl < 1 Then
    MsgBox(0, "", "0 Übungen?" & @CRLF & @CRLF & "Das ist nicht dein Ernst oder?" & @CRLF & @CRLF & "Gib eine richtige Zahl ein.")
    Else
    GUIDelete()
    $SB = 0
    EndIf
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to $A_anzahl
    $A[$i] = Random(1, $GZ, 1)
    next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $A_anzahl
    GUICreate("Sätze Trainer - Satz " & $i & " von " & $A_anzahl, 320, 150)
    $A_DS = FileReadLine(@scriptDir & "\satze.txt", ($A[$i]*3))
    $A_RE = FileReadLine(@scriptDir & "\satze.txt", ($A[$i]*3+1))
    $A1_AG = GUICtrlCreateLabel("Satz: "& $A_DS, 10, 10)
    $A1_AG2 = GUICtrlCreateLabel("Antwort:", 10, 40)
    $A1_Be = GUICtrlCreateInput("", 50, 40, 245)
    $Weiter = GUICtrlCreateButton(" Überprüfen ", 120, 125, 80, 20, $BS_DEFPUSHBUTTON)
    $DR = GUICtrlCreateButton("Das ist doch richtig!", 10, 155, 100, 20)
    GUICtrlSetImage($Weiter, @ScriptDir & "\Bilder\Weiter.bmp")
    GUISetState()
    While WinExists("Sätze Trainer")
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    $B_Frage = MsgBox(36, "Wirklich beenden?", "Wollen sie das Trainning wirklich abbrechen?")
    If $B_Frage = 6 Then
    Exit
    EndIf
    Case $Weiter
    $A_BE = GUICtrlRead($A1_Be)
    GUICtrlDelete(5)
    GUICtrlDelete($A1_AG2)
    If StringRight($A_BE, 1) <> "." Then
    $A_BE = $A_BE & "."
    EndIf
    GUICtrlCreateLabel("Dein Ergebnis: " & $A_BE, 5, 40)
    GUICtrlCreateLabel("Richtiges Ergebnis: " & $A_RE, 5, 70)
    $RF_A2 = GUICtrlCreateLabel("Dein Ergebnis ist", 5, 100)
    $RF_A = GUICtrlCreateLabel("", 85, 100, 300, 25)
    If $A_BE = $A_RE Then
    GUICtrlSetData($RF_A, "RICHTIG!")
    GUICtrlSetColor($RF_A, 0x228B22)
    GUICtrlSetColor($RF_A2, 0x228B22)
    $R = $R + 1
    ElseIf $A_BE <> $A_RE Then
    GUICtrlSetData($RF_A, "FALSCH!")
    GUICtrlSetColor($RF_A, 0xEE0000)
    GUICtrlSetColor($RF_A2, 0xEE0000)
    GUICtrlSetPos($DR, 10, 125)
    EndIf
    GUICtrlSetData($Weiter, "Weiter")
    While WinExists("Sätze Trainer")
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    $B_Frage = MsgBox(36, "Wirklich beenden?", "Wollen sie das Trainning wirklich abbrechen?" & @CRLF & @CRLF & "Ihre Punktzahl wird dann NICHT abgespeichert.")
    If $B_Frage = 6 Then
    Exit
    EndIf
    Case $Weiter
    GUIDelete()
    Case $DR
    If InputBox("Sätze Trainer | Password-Abfrage", "Bitte geben sie das Lehrerpassword ein, um den Zugang zu gewähren.", "", "•") = $LehrerPassword Then
    $R = $R + 1
    GUICtrlSetData($RF_A, "vom Lehrer als richtig gewertet.")
    GUICtrlSetColor($RF_A, 0x228B22)
    GUICtrlSetColor($RF_A2, 0x228B22)
    GUICtrlDelete($DR)
    Else
    MsgBox(16, "Sätze Trainer | Password-Abfrage", "Das eingegebene Password ist leider falsch.")
    EndIf
    EndSwitch
    WEnd
    EndSwitch
    WEnd
    next

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("Sätze Trainer", 170, 80)
    GUICtrlCreateLabel("Du hast " & $A_anzahl & " Aufgaben erledigt." & @CRLF & @CRLF & "Davon waren " & $R & " Aufgaben richtig.", 5, 5)
    $B = GUICtrlCreateButton(" Beenden ", 50, 50, 55, 20, $BS_DEFPUSHBUTTON)
    GUIsetstate()
    While WinExists("Sätze Trainer")
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $B
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Downloads:

    Ich hoffe euch gefällt mein Programm.
    Lob/LKritik/Anregungen sind immer gerne gesehen.

  • Moin.

    Sooooooooweit schaut es doch gut aus.

    Nur wenn eine/r einen Satz mit Punkt ein gibt ist es okay, aber wenn man den Punkt nicht setzt, was dann? ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Neue Version mit euren vorgeschlagenen Verbesserung (siehe Post#1).

    Anmerkung:
    Das mit den Editor könnte noch etwas dauern, da ich eigentlich an einem anderen Projekt arbeite (siehe Signatur)