Hey,
ich habe so ein Aufgabenzettel von der Schule bekommen, in dem wir ein Programm erstellen sollen, welches den Verbrauch eines Autos, den Rechnungspreis für das Getankte Benzin und die Gefahrenen Kilometer ausrechnet. Bei einem bestimmten Verbrauch auf 100 Liter gewährt der Staat einen Abschlag oder er nimmt einen Zuschlag. ( Schön wäre es :D)
Eingabedaten sind :
Kilometerstand alt
Kilometerstand neu
Benzinpreis pro Liter
Getankte Literzahl
Ausgabedaten sind :
Gefahrenen Kilometer
Verbrauch pro 100km
Rechnungspreis ohne ZU/Abschlag
Rechnungspreis mit ZU/Abschlag
Nun wollte ich mal fragen, ob das geht, wenn ich die Abfrage über den Verbrauch in eine SELECT CASE Anweisung schreibe ? Die im folgenen Code hat immer nur den ersten Fall gewählt.
ich habe so ein Aufgabenzettel von der Schule bekommen, in dem wir ein Programm erstellen sollen, welches den Verbrauch eines Autos, den Rechnungspreis für das Getankte Benzin und die Gefahrenen Kilometer ausrechnet. Bei einem bestimmten Verbrauch auf 100 Liter gewährt der Staat einen Abschlag oder er nimmt einen Zuschlag. ( Schön wäre es :D)
Eingabedaten sind :
Kilometerstand alt
Kilometerstand neu
Benzinpreis pro Liter
Getankte Literzahl
Ausgabedaten sind :
Gefahrenen Kilometer
Verbrauch pro 100km
Rechnungspreis ohne ZU/Abschlag
Rechnungspreis mit ZU/Abschlag
Nun wollte ich mal fragen, ob das geht, wenn ich die Abfrage über den Verbrauch in eine SELECT CASE Anweisung schreibe ? Die im folgenen Code hat immer nur den ersten Fall gewählt.
Visual Basic-Quellcode
- Option Explicit
- Dim sngKilometerstandAlt As Single
- Dim sngKilometerstandNeu As Single
- Dim sngPreisProLiter As Single
- Dim sngGetankteLiter As Single
- Dim sngGefahreneKilometer As Single
- Dim sngVerbrauchAuf100Km As Single
- Dim sngRechnungspreisOhne As Single
- Dim sngRechnungspreis As Single
- Dim sngRechnungspreisMit As Single
- Private Sub cmdBerechnen_Click()
- sngKilometerstandAlt = CSng(txtKilometerstandAlt.Text)
- sngKilometerstandNeu = CSng(txtKilometerstandNeu.Text)
- sngPreisProLiter = CSng(txtBenzinpreisProLiter.Text)
- sngGetankteLiter = CSng(txtGetankteLiter.Text)
- sngRechnungspreisOhne = sngPreisProLiter * sngGetankteLiter
- sngGefahreneKilometer = sngKilometerstandNeu - sngKilometerstandAlt
- sngVerbrauchAuf100Km = sngGetankteLiter * 100 / sngGefahreneKilometer
- If sngVerbrauchAuf100Km < 5 Then
- sngRechnungspreis = sngRechnungspreisOhne * 20 / 100
- sngRechnungspreisMit = sngRechnungspreisOhne - sngRechnungspreis
- ElseIf sngVerbrauchAuf100Km >= 5 And sngVerbrauchAuf100Km <= 7 Then
- sngRechnungspreis = sngRechnungspreisOhne * 10 / 100
- sngRechnungspreisMit = sngRechnungspreisOhne - sngRechnungspreis
- ElseIf sngVerbrauchAuf100Km >= 9 And sngVerbrauchAuf100Km <= 11 Then
- sngRechnungspreis = sngRechnungspreisOhne * 10 / 100
- sngRechnungspreisMit = sngRechnungspreisOhne + sngRechnungspreis
- Else
- sngRechnungspreis = sngRechnungspreisOhne * 20 / 100
- sngRechnungspreisMit = sngRechnungspreisOhne + sngRechnungspreis
- End If
- ' Select Case sngVerbrauchAuf100Km
- ' Case Is < 5
- ' sngRechnungspreis = sngRechnungspreisOhne * 20 / 100
- ' sngRechnungspreisMit = sngRechnungspreisOhne - sngRechnungspreis
- ' Case Is >= 5 <= 7
- ' sngRechnungspreis = sngRechnungspreisOhne * 10 / 100
- ' sngRechnungspreisMit = sngRechnungspreisOhne - sngRechnungspreis
- ' Case Is >= 9 <= 11
- ' sngRechnungspreis = sngRechnungspreisOhne * 10 / 100
- ' sngRechnungspreisMit = sngRechnungspreisOhne + sngRechnungspreis
- ' Case Is > 11
- ' sngRechnungspreis = sngRechnungspreisOhne * 20 / 100
- ' sngRechnungspreisMit = sngRechnungspreisOhne + sngRechnungspreis
- ' End Select
- txtGefahreneKilometer.Text = Format(sngGefahreneKilometer, "0.00 KM")
- txtVerbrauchAuf100Km.Text = Format(sngVerbrauchAuf100Km, "0.00 l")
- txtRechnungspreisOhne.Text = Format(sngRechnungspreisOhne, "0.00 €")
- txtRechnungspreisMit.Text = Format(sngRechnungspreisMit, "0.00 €")
- End Sub