C# :: Aufgabe #347 :: Lösung #1
4 Lösungen

#347
Berechnung Kfz-Steuer (Deutschland 2021)
Anfänger - C#
von JKooP
- 15.12.2020 um 19:35 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist, die Kfz- Steuer sowohl für Benzin-, als auch Dieselfahrzeuge
ab dem 01.01.2021 für Deutschland zu berechnen.
Übergeben werden sollen die Parameter: Otto- o. Dieselfahrzeug, Hubraum in ccm, CO2 in g.
Als Ergebnis soll die Gesamtsteuer in Euro fürs Jahr ausgegeben werden.
Eine ausführliche Berechnungshilfe findet man hier!
Viel Spaß
ab dem 01.01.2021 für Deutschland zu berechnen.
Übergeben werden sollen die Parameter: Otto- o. Dieselfahrzeug, Hubraum in ccm, CO2 in g.
Als Ergebnis soll die Gesamtsteuer in Euro fürs Jahr ausgegeben werden.
Eine ausführliche Berechnungshilfe findet man hier!
Viel Spaß
#1

von dany_mue (240 Punkte)
- 05.02.2021 um 21:55 Uhr

// Ergebnisse auf der Seite https://www.smart-rechner.de/kfzsteuer/rechner.php überprüft using System; namespace TJP347_KFZ_Steuer { class Program { /// <summary> /// Konstanten /// </summary> private static readonly double EURHUBRAUMBENZIN = 2.00; // Hubraumfaktor Benzinfahrzeuge private static readonly double EURHUBRAUMDIESEL = 9.50; // Hubraumfaktor Dieselfahrzeuge private static readonly double[] CO2STEUERBETRAG = new double[] { 2.00, // 96 - 115 g/km CO2 2.20, // 116 - 135 g/km CO2 2.50, // 136 - 155 g/km CO2 2.90, // 156 - 175 g/km CO2 3.40, // 176 - 195 g/km CO2 4.00 // > 195 g/km CO2 }; /// <summary> /// Main /// </summary> static void Main(string[] args) { do { Console.Clear(); Console.WriteLine("KFZ-Steuer-Rechner 2021"); Console.WriteLine("---------------------------------------------"); // Benutzereingaben bool eingabenOk = BenutzerEingaben(out bool _diesel, out int _hubraum, out double _co2); // KFZ Steuer berechnen if (eingabenOk) { double kfzSteuer = BerechneKfzSteuer(_diesel, _hubraum, _co2, out double steuerHubraum, out double steuerCo2); Console.WriteLine("---------------------------------------------"); Console.WriteLine("Steuer Hubraum: {0} EUR", steuerHubraum); Console.WriteLine("Steuer CO2: \t {0} EUR", steuerCo2); Console.WriteLine("KFZ Steuer: \t {0} EUR", kfzSteuer); Console.WriteLine("---------------------------------------------"); } // Weitere Berechnung? Console.WriteLine("\r\nWeitere Berechnung (ENTER) - Abbrechen mit beliebiger Taste"); } while (Console.ReadKey().Key == ConsoleKey.Enter); } /// <summary> /// KFZ Steuer berechnen /// </summary> private static double BerechneKfzSteuer(bool _diesel, int _hubraum, double _co2, out double _steuerHubraum, out double _steuerCo2) { _steuerCo2 = 0.0; // Steuerbetrag Hubraum _steuerHubraum = _diesel ? Math.Ceiling(_hubraum / 100.0) * EURHUBRAUMDIESEL : Math.Ceiling(_hubraum / 100.0) * EURHUBRAUMBENZIN; // Steuerbetrag CO2 Ausstoß for (int i=0; i<=5; i++) { double co2Faktor = 95.0 + i * 20.0; if (i < 5) _steuerCo2 += Math.Max(Math.Min(_co2 - co2Faktor, 20), 0) * CO2STEUERBETRAG[i]; else _steuerCo2 += Math.Max(_co2 - co2Faktor, 0) * CO2STEUERBETRAG[i]; } // KFZ Steuer return _steuerCo2 + _steuerHubraum; } /// <summary> /// Benutzereingaben abfragen und überprüfen /// </summary> private static bool BenutzerEingaben(out bool _diesel, out int _hubraum, out double _co2) { string input; // out-Variablen initialisieren _diesel = false; _hubraum = 0; _co2 = 0.0; // Fahrzeugtyp Console.WriteLine("Wähle den Fahrzeugtyp: Benzin (b) / Diesel (d)"); input = Console.ReadLine(); if (input.ToLower().Equals("d")) _diesel = true; else if (input.ToLower().Equals("b")) _diesel = false; else { Console.WriteLine("Falschen Fahrzeugtyp eingegeben...!"); return false; } // Hubraum Console.WriteLine("Bitte Hubraum in ccm eingeben:"); if (int.TryParse(Console.ReadLine(), out int hubraum)) _hubraum = hubraum; else { Console.WriteLine("Ungültigen Wert eingegeben...!"); return false; } // CO2-Ausstoß Console.WriteLine("Bitte CO2-Ausstoß in g/km eingeben:"); if (double.TryParse(Console.ReadLine(), out double co2)) _co2 = co2; else { Console.WriteLine("Ungültigen Wert eingegeben...!"); return false; } // alle Eingaben waren gültig return true; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1