C# :: Aufgabe #338

3 Lösungen Lösungen öffentlich

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ß


Lösungen:

1x
vote_ok
von Fuluks (70 Punkte) - 11.11.2020 um 09:41 Uhr
Quellcode ausblenden C#-Code
using System;
namespace Bot
{   
class Program
{
        static public double Methode(string Paket, double  Minuten) {
            switch (Paket)
            {
                case "P_Basis":
                    return 2.95 + (Minuten * 0.1);
                case "P_100":
                    if(Minuten <= 100)
                        return 3.95;
                    else
                        return 3.95 + ((Minuten-100) * 0.12);
                case "P_300":
                    if (Minuten <= 300)
                        return 7.95;
                    else
                        return 7.95 + (Minuten-300) * 0.15;
                case "P_600":
                    if (Minuten <= 600)
                        return 12.95;
                    else
                        return 12.95 + ((Minuten-600) * 0.2);
                case "P_Flat":
                    return 29.95;

                default:
                    Console.WriteLine("Falsche eingabe");
                    return 666;

            }

        }
        static void Main(string[] args)
        {
            
            Console.WriteLine(Methode("P_100",101));
        }
    }
}
vote_ok
von Dmnkznd (70 Punkte) - 12.11.2020 um 16:23 Uhr
Quellcode ausblenden C#-Code
namespace Mobilfunk_Abrechnung
{
    /*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.
     */
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                try
                {
                    Console.WriteLine("Monatliche Mobilfunkabrechnung");
                    Console.WriteLine("\nDies sind unsere Pakete:");
                    Console.WriteLine("\nBasis Paket  = 1");
                    Console.WriteLine("100 Paket    = 2");
                    Console.WriteLine("300 Paket    = 3");
                    Console.WriteLine("600 Paket    = 4");
                    Console.WriteLine("Flat Paket   = 5");
                    Console.Write("\nGeben Sie bitte Ihr Paket an: ");
                    int typ = Convert.ToInt32(Console.ReadLine());
                    Console.Write("\nGeben Sie verwendeten Minuten an: ");
                    int min = Convert.ToInt32(Console.ReadLine());
                    switch (typ)
                    {
                        case 1:
                            Console.WriteLine("Ihre Monatlichen Kosten betragen " + PBasis(min) + " Euro");
                            break;
                        case 2:
                            Console.WriteLine("Ihre Monatlichen Kosten betragen " + P100(min) + " Euro");
                            break;
                        case 3:
                            Console.WriteLine("Ihre Monatlichen Kosten betragen " + P300(min) + " Euro");
                            break;
                        case 4:
                            Console.WriteLine("Ihre Monatlichen Kosten betragen " + P600(min) + " Euro");
                            break;
                        case 5:
                            Console.WriteLine("Ihre Monatlichen Kosten betragen " + PFlat(min) + " Euro");
                            break;
                        default:
                            Console.WriteLine("Ungültige Eingabe");
                            break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine("Ungültige Eingabe");
                    Console.ReadKey();
                    Console.Clear();
                    continue;
                }
                Console.ReadKey();
                Console.Clear();
            }
        }
        static double PBasis(int minuten)
        {
            double MtKosten = minuten * 0.1 + 2.95;
            return MtKosten;
        }
        static double P100(int minuten)
        {
            double MtKosten = 0;
            if(minuten > 100)
            {
                MtKosten = (minuten - 100) * 0.12 + 3.95;
                return MtKosten;
            }
            else
            {
                return 3.95;
            }
        }
        static double P300(int minuten)
        {
            double MtKosten = 0;
            if(minuten > 300)
            {
                MtKosten = (minuten - 300) * 0.15 + 7.95;
                return MtKosten;
            }
            else
            {
                return 7.95;
            }
        }
        static double P600(int minuten)
        {
            double MtKosten = 0;
            if (minuten > 600)
            {
                MtKosten = (minuten - 600) * 0.2 + 12.95;
                return MtKosten;
            }
            else
            {
                return 12.95;
            }
        }
        static double PFlat(int minuten)
        {
            double MtKosten = 29.95;
            return MtKosten;
            
        }

    }
}
vote_ok
von JKooP (5930 Punkte) - 15.11.2020 um 10:42 Uhr
NET 5.x; C# 8.x
Quellcode ausblenden 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();
    }
}