Notenmanager, Schulnoten verwalten, Schnitte ausrechnen und mehr...Version 3.20

  • Name: Notenmanager
    aktuelle Version: 3.20

    wiedereinmal habe ich eine neue Version fertig.

    Änderungen sind in der Changelog zu sehen


    Mit dem Programm das für Schüler entwickelt wurde ist es möglich seine Schulnoten mit den entsprechenden Fächern zu speichern und diese in einer übersichtlich gehaltenen Gui auch wieder einzusehen. Man kann seinen aktuellen Schnitt ausrechnen lassen. Außerdem ist es möglich wenn zb eine Schulaufgabe ansteht einen neuen Schnitt für jede mögliche Note in der Schulaufgabe berechnen zu lassen (so kann man sich schonmal einstellen wie viel man ungefähr lernen muss).

    im Anhang ist der Source Code, und HIER gibt es die exe.

    Ich bitte euch um Kommentar und evtl. Anregungen oder Bemängel.

    Changelog:

    Spoiler anzeigen

    Version:

    ****3.00******

    - komplette Skript wurde überarbeitet und in eine Datei geschrieben
    - Updatesystem wurde hinzugefügt
    - Entwicklungsmodus hinzugefügt (nur für Source)

    ****3.10******

    - Info zum Programm beim ersten Start hinzugefügt
    - nach einem Update die Möglichkeit die Changelog einzusehen
    - Kleine Mängel wie Rechtschreibung, etc. verbessert
    - Man kann nun nicht mehr Speichern wenn eine Note über 7 ist
    - Performance gesteigert
    - automatische Updatesuche
    - bei Beenden wird überprüft ob die Noten geändert worden sind

    ****3.20******

    - Fach auch mit Enter hinzufügbar anstatt des Buttons
    - Optionen wurden zu Extras umbenannt
    - Verknüpfung wird auf dem Desktop angelegt (nur beim ersten Start)
    - Übersicht der gesamten Noten hinzugefügt
    - Druckfunktion der Übersicht
    - Passwortfunktion hinzugefügt

    4 Mal editiert, zuletzt von Reaker (12. Oktober 2009 um 17:47)

  • Für mich als Schüler ein sehr interesantes Tool, werde es gleich mal testen.
    ^^
    Beim ersten F5 passierte dies:
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(257,5) : ERROR: missing EndSwitch.
    Func
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(217,13) : REF: missing EndSwitch.
    Switch $msg
    ~~~~~~~~~~~^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(257,5) : ERROR: missing Wend.
    Func
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(214,4) : REF: missing Wend.
    While
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(257,5) : ERROR: missing EndSwitch.
    Func
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(149,17) : REF: missing EndSwitch.
    Switch $nMsg
    ~~~~~~~~~~~~~~~~^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(257,5) : ERROR: missing Wend.
    Func
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(147,2) : REF: missing Wend.
    While
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3(559,3) : ERROR: syntax error
    case
    ^
    C:\Users\Admin\Desktop\AutoIT\Notenmanager\Notenmanager 3.00.au3 - 5 error(s), 0 warning(s)

  • echt...also wenn ich das downloade F5 drücke öffnet sich das Programm wie gewöhnlich.

    funktioniert es jetzt bei dir?

  • Ne, leider nicht. Ich guck mal was für ein Problem er findet.
    Welche Version benutzt du? Bei mir ist der Code irgendwie ziemlich durcheinander, mal eine Func mitten drin und dann kommt auf einem ne while schleife und dann ein switch in dem wieder eine while schleife läuft.

    Ziemlich verwirrend muss ich zugeben ^.^'

    Einmal editiert, zuletzt von DevilsCry (31. August 2009 um 20:52)

  • ja der Code ist wirklich richtig verwirrend, das liegt daran dass ich vorher für jede neue gui ein eigenes skript habe und alles über guictrlsetonevent lief, da gab es dann aber furchtbare probleme wenn man zweimal auf nen button klickt während die msgbox noch da ist.

    drum habe ich das alles in eins geschrieben über while schleifen. Es ist so gemacht dass wenn man zb optionen schließt er die optionen loop beendet und ist dann wieder sofort in der anmeldung so brauche ich nicht alles über functionen machen.

    ich habe die aktuelle Version, bin nämlich grad bei meinem opa und da dachte ich mir mal das programm in ein script zu schreiben drum hab ichs neu installiert.

    /Edit Probiere doch mal die EXE aus...die müsste ja eigenltich bei dir funktionieren.

  • Ah, die Exe funktioniert.
    Ist ein wirklich schönes Programm ^^ ich werd es mal meiner Klasse zum Feedbacken vorlegen und dann schreib ich dir die Antworten ;)

  • Mich wunderts echt, dass du den Code selber noch lesen kannst. :P

    Aber gute Arbeit gefällt mir!

    PS: Wenn du nichts dagegen hast, würde ich deinen Code mal überarbeiten. :)

    MfG,
    H2112

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • ähm in der 3.10 oben ist der doch komplett überarbeitet!??!

    wozu mache ich mir da die arbeit dass es keiner merkt^^

  • Ich würde den Code einfach mal ein bisschen sortieren und vll auch in den GUIOnEventMode umschreiben :)

    UZnd ich habs wohl gemerkt. 8|

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • 3.10 sieht auch schon viel besser aus (und funktioniert auch ;) )!
    Trotzdem sind die untereinander verschachtelten while ... wend Schleifen schon ähm sagen wir mal gewöhnungsbedürftig.
    Den erweiterten Messageloop Modus kennst du schon?

  • @h2112 wie würdest du es denn vorschlagen den guionevent umzuschreiben?

    nuts ja eigentlich ist es ja eine große while schleife und in der kommen vlt 2,3 ganz kleine, die ja garnicht wirklich auffallen
    was meinst du mit erweiterter messageloop??

  • naja eigentlich ist es eine große die dann unterteilt wird

    bei einer neuen gui kommt immer nochmal ein switch

  • So vom Aufbau her:

    Zuerst alle Gui-Elemente erstellen (und mit @Hide, @Show arbeiten)
    Eine große While Wend Schleife
    In der While Wend Schleife die "Aktion" weitestgehend auf Funktionen verteilen.

    Bsp:

    Spoiler anzeigen
    [autoit]


    #include<WindowsConstants.au3>
    #include<GUIConstantsEx.au3>

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

    #Region Hauptfenster
    Global $hGui = GUICreate("Listview-Datenbank-Beispiel", 600, 480) ; Hauptfenster erstellen
    Global $hNew = GUICtrlCreateButton("Öffne anderes Gui-Element", 100, 100, 150, 40)
    #EndRegion Hauptfenster

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

    #Region Fenster für neuen Eintrag
    Global $hGuiNew = GUICreate("Neuer Eintrag", 600, 480) ; das Fenster "Neuer Eintrag" erstellen
    Global $back = GUICtrlCreateButton("Zurück", 100, 100, 150, 40)
    #EndRegion Fenster für neuen Eintrag

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

    GUISetState(@SW_SHOW, $hGui) ; Hauptfenster sichtbar machen

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

    While 1
    $nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
    Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
    Case $hNew; User hat auf "Neuer Eintrag" geklickt
    WinSetTitle($hGuiNew, "", "Neuer Eintrag") ; den Titel des Fenster anpassen
    GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
    GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
    case $back
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    WinActivate($hGui)
    Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
    Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
    Case $hGui ; User will das Hauptfenster schließen
    If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then Exit ; wenn ja, dann Exit
    Case $hGuiNew ; User will das "Neuer Eintrag"-Fenster schließen
    GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
    GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
    WinActivate($hGui) ; und in den Vordergrund holen
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]