Spritkostenrechner

  • Hi

    ich habe mal aus langeweile einen spritkostenrechner geschrieben und wollte mal wissen was ihr so davon haltet

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode",1)
    HotKeySet("{Enter}", "_rechnen")
    $eingabe = GUICreate ("Spritrechner", 190,320)
    GUICtrlCreateLabel ("Bitte anstelle des Kommas" & @CRLF & "einen Punkt benutzen", 30, 30)
    GUICtrlCreateLabel ("Getankte Liter", 30,80)
    $liter = GUICtrlCreateInput ("", 30,110)
    GUICtrlCreateLabel ("Gefahrene Kilometer", 30,140)
    $km = GUICtrlCreateInput ("",30,170)
    GUICtrlCreateLabel ("Bezahlt pro Liter",30,200)
    $geld = GUICtrlCreateInput ("",30,230)
    $rechnen = GUICtrlCreateButton("Berechnen", 30, 260)
    GUICtrlSetOnEvent($rechnen, "_rechnen")
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    GUIsetstate(@sw_show)

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

    While Sleep(1)
    WEnd

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

    Func _rechnen()
    $ergebnis1 = Round(GUICtrlRead($liter) / GUICtrlRead($km) ,3)
    $ergebnis2 = Round(GUICtrlRead($liter) / GUICtrlRead($km) * 100 ,2)
    $ergebnis3 = Round($ergebnis1 * GUICtrlRead($geld) ,3)
    $ergebnis4 = Round($ergebnis2 * GUICtrlRead($geld) ,2)
    GUIDelete($eingabe)
    HotKeySet("{Enter}", "_Exit")
    $ausgabe = GUICreate ("Sprit", 270, 180)
    GUICtrlCreateLabel ("Verbraucht auf einem Kilometer " & $ergebnis1 & "Liter", 30, 30)
    GUICtrlCreateLabel ("Bezahlt für einen Kilometer " & $ergebnis3 & "Euro", 30, 60)
    GUICtrlCreateLabel ("Verbraucht auf 100 Kilometer " & $ergebnis2 & "Liter", 30, 90)
    GUICtrlCreateLabel ("Bezahlt für 100 Kilmoter " & $ergebnis4 & "Euro", 30, 120)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    GUIsetstate(@sw_show)
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

    Gruß Thooledo

  • Hallo Thooledo,

    praktisches Skript, jedoch durch deine frühzeitige Rundung ergibt sich bei den Kosten für 100 km eine Rundungsdifferenz. Ich würde beim errechnen gar nicht runden und es erst in der Ausgabe mit Stringformat formatieren, das würde dann so gehen:

    [autoit]

    Func _rechnen()
    $ergebnis1 = GUICtrlRead($liter) / GUICtrlRead($km)
    $ergebnis2 = GUICtrlRead($liter) / GUICtrlRead($km) * 100
    $ergebnis3 = $ergebnis1 * GUICtrlRead($geld)
    $ergebnis4 = $ergebnis2 * GUICtrlRead($geld)
    GUIDelete($eingabe)
    HotKeySet("{Enter}", "_Exit")
    $ausgabe = GUICreate("Sprit", 270, 180)
    GUICtrlCreateLabel(StringFormat("Verbraucht auf einem Kilometer %.3f Liter", $ergebnis1 ), 30, 30)
    GUICtrlCreateLabel(StringFormat("Bezahlt für einen Kilometer %.3f Euro" , $ergebnis3), 30, 60)
    GUICtrlCreateLabel(StringFormat("Verbraucht auf 100 Kilometer %.2f Liter" , $ergebnis2), 30, 90)
    GUICtrlCreateLabel(StringFormat("Bezahlt für 100 Kilmoter %.2f Euro" , $ergebnis4), 30, 120)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUISetState(@SW_SHOW)
    EndFunc ;==>_rechnen

    [/autoit]


    Ebenso würde ich die Funktion HotkeySet meiden, da die Entertaste dadurch systemweit belegt ist.

    Skriptidee: so umbauen, dass man bei jedem Tanken eintragen kann, evtl. auch Werkstatt-Rechnungen, Versicherungsrechnung, KFZ-Steuer aber auf jedenfall Öl mit einbeziehen

    mfg autoBert