C++ :: Aufgabe #311 :: Lösung #5
5 Lösungen

#311
Mobilfunkanbieter (Monatsabrechnung)
Anfänger - C++
von JKooP
- 07.11.2020 um 09:42 Uhr
Ein Mobilfunkanbieter stellt folgende Pakete zur Verfügung:
Paket-Typ....Basispreis....Freiminuten....Minutenpreis
P_Basis........2,95€..............0...................0,10€
P_100..........3.95€.............100................0,12€
P_300..........7,95€.............300................0,15€
P_600..........12,95€...........600................0,20€
P_Flat..........29,95€...........unbegrenzt.....0,00€
Schreibe eine Funktion/Methode, bei der sowohl der Paket-Typ als auch die telefonierten Minuten übergeben werden.
Als Ergebnis soll der Gesamtpreis inklusive Basispreis für den Monat ausgegeben werden.
Viel Spaß
Paket-Typ....Basispreis....Freiminuten....Minutenpreis
P_Basis........2,95€..............0...................0,10€
P_100..........3.95€.............100................0,12€
P_300..........7,95€.............300................0,15€
P_600..........12,95€...........600................0,20€
P_Flat..........29,95€...........unbegrenzt.....0,00€
Schreibe eine Funktion/Methode, bei der sowohl der Paket-Typ als auch die telefonierten Minuten übergeben werden.
Als Ergebnis soll der Gesamtpreis inklusive Basispreis für den Monat ausgegeben werden.
Viel Spaß
#5

von JKooP (18090 Punkte)
- 15.11.2020 um 10:03 Uhr
C++ 11
C-Code

#include <iostream> #include <vector> using namespace std; enum class Pakete { PBasis = 0, P100 = 100, P300 = 300, P600 = 600, PFlat = INT_MAX }; struct Mobilfunktarif { Pakete paket; double grundpreis; int freiminuten; double minutenpreis; }; const vector<Mobilfunktarif> tarife { { Pakete::PBasis, 2.95, (int)Pakete::PBasis, 0.10 }, { Pakete::P100, 4.95, (int)Pakete::P100, 0.12 }, { Pakete::P300, 7.95, (int)Pakete::P300, 0.15 }, { Pakete::P600, 12.95, (int)Pakete::P600, 0.20 }, { Pakete::PFlat, 29.95, (int)Pakete::PFlat, 0.00 } }; double gesamt_preis(const Pakete& paket, const int& minuten) { auto g_preis{ 0.0 }; for (const auto& tarif : tarife) { if (tarif.paket == paket) { auto rest{ minuten - tarif.freiminuten }; if (rest < 0) rest = 0; g_preis = rest * tarif.minutenpreis + tarif.grundpreis; break; } } return g_preis; } int main() { auto paket{ Pakete::P300 }; auto minuten{ 400 }; std::cout << "Der Gesamtpreis im Monat betraegt " << gesamt_preis(paket, minuten) << " Euro.\n"; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1