C# :: Aufgabe #338

4 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 (170 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 (18090 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();
    }
}
vote_ok
von votus (40 Punkte) - 23.02.2021 um 10:01 Uhr
Quellcode ausblenden C#-Code
using System;

namespace Mobilfunkabrechnung
{
    class Program
    {
        static void Main(string[] args)
        {

            //VARIABLENDEKLARATION
            double paket = 0;
            double paketauswahl;
            double minuten;
            double rechnungsbetrag;

            double P_Basis = 2.95;
            double P_BasisMinute = 0.1;
            double P_BasisFrei = 0;


            double P_100 = 3.95;
            double P_100Minute = 0.12;
            double P_100Frei = 100;

            double P_300 = 7.95;
            double P_300Minute = 0.15;
            double P_300Frei = 300;

            double P_600 = 12.95;
            double P_600Minute = 0.20;
            double P_600Frei = 600;

            double P_Flat = 29.95;

            //Willkommensmenu
            Console.WriteLine("Willkommen im Mobilfunkrechner!\nTarife:\t\t[1] Paket Basis\n\t\t[2] Paket 100\n\t\t[3] Paket 300\n\t\t[4] Paket 600\n\t\t[5] Paket All-Net\n");
            
            //Tarifauswahl
            do
            {
                Console.WriteLine("Welchen Tarif hast du: ");
                paketauswahl = Convert.ToDouble(Console.ReadLine());
            } while (paketauswahl != 1 && paketauswahl != 2 && paketauswahl != 3 && paketauswahl != 4 && paketauswahl != 5);

            
            switch (paketauswahl)
            {
                case 1:
                    Console.WriteLine("Du hast das Basis Paket ausgewählt!");
                    paket = P_Basis;
                    break;
                case 2:
                    Console.WriteLine("Du hast das Paket 100 ausgewählt!");
                    paket = P_100;
                    break;
                case 3:
                    Console.WriteLine("Du hast das Paket 300 ausgewählt!");
                    paket = P_300;
                    break;
                case 4:
                    Console.WriteLine("Du hast das Paket 600 ausgewählt!");
                    paket = P_600;
                    break;
                case 5:
                    Console.WriteLine("Du hast das All-Net Paket ausgewählt!");
                    paket = P_Flat;
                    break;
            }

            // Minutenangabe Telefonie
            Console.WriteLine("Wie viele Minuten hast du telefoniert: ");
            minuten = Convert.ToDouble(Console.ReadLine());

            // Paketauswahl + Berechnung
            if (paketauswahl == 1)
            {
                Console.WriteLine("In deinem Paket sind " + P_BasisFrei + " Freiminuten inbegriffen!"); // Ausgabe der Freiminuten
                Console.WriteLine("\nBasispreis = " + P_Basis + " Euro\nPreis pro Minute = " + P_BasisMinute + "Euro."); // Erneute Preisausgabe
                rechnungsbetrag = paket + ((minuten - P_BasisFrei) * P_BasisMinute); // Rechnungsbetrag wird berechnet (Paket = Tarifpreis)
                Console.WriteLine("\nEndbetrag = " + rechnungsbetrag + " Euro");// Ausgabe des Endbetrags
            }
            else if (paketauswahl == 2)
            {
                Console.WriteLine("In deinem Paket sind " + P_100Frei + " Freiminuten inbegriffen!"); // Ausgabe der Freiminuten
                Console.WriteLine("\nBasispreis = " + P_100 + " Euro\nPreis pro Minute = " + P_100Minute + "Euro."); // Erneute Preisausgabe
                if (minuten <= P_100Frei) // Wenn weniger als 100 Minuten telefoniert wurde, dann keine extrakosten.
                {
                    rechnungsbetrag = paket;
                }
                else // Wenn mehr als 100 Minuten telefoniert wurde, dann 100 Freiminuten abziehen und dann berechnen.
                {
                    rechnungsbetrag = paket + ((minuten - P_100Frei) * P_100Minute);
                }
                Console.WriteLine("\nEndbetrag = " + rechnungsbetrag + " Euro"); // Ausgabe des Endbetrags
            }
            else if (paketauswahl == 3)
            {
                Console.WriteLine("In deinem Paket sind " + P_300Frei + " Freiminuten inbegriffen!");
                Console.WriteLine("\nBasispreis = " + P_300 + " Euro\nPreis pro Minute = " + P_300Minute + "Euro.");
                if (minuten <= P_300Frei)
                {
                    rechnungsbetrag = paket;
                }
                else
                {
                    rechnungsbetrag = paket + ((minuten - P_300Frei) * P_300Minute);
                }

                Console.WriteLine("\nEndbetrag = " + rechnungsbetrag + " Euro");
            }
            else if (paketauswahl == 4)
            {
                Console.WriteLine("In deinem Paket sind " + P_600Frei + " Freiminuten inbegriffen!");
                Console.WriteLine("\nBasispreis = " + P_600 + " Euro\nPreis pro Minute = " + P_600Minute + "Euro.");
                if (minuten <= P_600Frei)
                {
                    rechnungsbetrag = paket;
                }
                else
                {
                    rechnungsbetrag = paket + ((minuten - P_600Frei) * P_600Minute);
                }

                Console.WriteLine("\nEndbetrag = " + rechnungsbetrag + " Euro");
            }
            else if (paketauswahl == 5)
            {
                Console.WriteLine("In deinem Paket sind UNBEGRENZT Freiminuten inbegriffen!");
                Console.WriteLine("\nBasispreis = " + P_Flat + "Euro\nPreis pro Minute = 0.00 Euro.");
                rechnungsbetrag = paket;
                Console.WriteLine("\nEndbetrag = " + rechnungsbetrag + " Euro");
            }




            Console.ReadKey(); // Konsolenfenster wird nicht geschlossen, da auf einen Tastendruck gewartet wird.
        }
    }
}