C# :: Aufgabe #338 :: Lösung #3
4 Lösungen
#338
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ß
#3
von JKooP (18090 Punkte)
- 15.11.2020 um 10:42 Uhr
NET 5.x; C# 8.x
C#-Code
using System; using System.Collections.Generic; using System.Linq; namespace CS_NET5_Aufgabe_338_Mobilfunkanbieter { public enum Pakete { PBasis = 0, P100 = 100, P300 = 300, P600 = 600, PFlat = int.MaxValue } class Program { public static void Main() { var paket = Pakete.P300; var minuten = 400; Console.WriteLine($"Die Gesamtkosten im Monat betragen {Gebuehr(paket, minuten)} Euro.\n"); } private static readonly List<(Pakete paket, double grundpreis, int freiminuten, double minutenpreis)> _lst = new() // C# 9.x { (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) }; static double Gebuehr(Pakete p, int min) => _lst.Where(x => x.paket == p).Select(l => ((min - l.freiminuten) < 0 ? 0 : (min - l.freiminuten)) * l.minutenpreis + l.grundpreis).FirstOrDefault(); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1