C++ :: Aufgabe #320
1 Lösung

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ß
Lösungen:
C++ 17
C-Code
.h
C-Code
.cpp
C-Code

#include "steuer.h" int main() { steuer st(Antrieb::otto, 1969, 158); cout << fixed << setprecision(2); st.print_result(); }
.h

#pragma once #include <iostream> #include <vector> #include <tuple> #include <iomanip> using namespace std; enum class Antrieb{ otto = 200, diesel = 950 }; class steuer { private: vector<tuple<int, int, double>> preise_co2{ {96, 115, 2.0}, {116, 135, 2.2}, {136, 155, 2.5}, {156, 175, 2.9}, {176, 195, 3.4}, {196, 9999, 4.0} }; int co2_g, hubraum_ccm; Antrieb antrieb; public: steuer(Antrieb antrieb_, int hubraum_ccm_, int co2_g_) :antrieb{ antrieb_ }, hubraum_ccm{ hubraum_ccm_ }, co2_g{ co2_g_ }{} double steuerbetrag(); void print_result(); };
.cpp

#include "steuer.h" double steuer::steuerbetrag() { auto kosten_co2{ 0.0 }; for (const auto& i : preise_co2) { if (co2_g < get<0>(i)) break; else if (co2_g >= get<0>(i) && co2_g <= get<1>(i)) kosten_co2 += (co2_g + 1 - get<0>(i)) * get<2>(i); else kosten_co2 += (get<1>(i) - get<0>(i) + 1) * get<2>(i); } return (int)antrieb / 100.0 * ceil(hubraum_ccm / 100.0) + kosten_co2; } void steuer::print_result() { cout << "Steuer: " << steuerbetrag() << " Euro" << endl; }