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

#320
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 JKooP (18090 Punkte)
- 24.04.2021 um 21:49 Uhr
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; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1