C :: Aufgabe #301 :: Lösung #1

2 Lösungen Lösungen öffentlich
#301

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ß


#1
vote_ok
von DaXn (180 Punkte) - 16.12.2020 um 18:45 Uhr
Quellcode ausblenden C-Code
/* 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.
 */

typedef enum
{
    EPT_BASE = 0,
    EPT_P100,
    EPT_P300,
    EPT_P600,
    EPT_FLAT,

    EPT_COUNT
} E_PACKAGE_TYPE;


typedef struct
{
    int baseCharge, freeMins, minPrice;
} Tpackage;

Tpackage g_packages [EPT_COUNT];


void InitializePackages (void)
{
    g_packages [EPT_BASE].baseCharge = 295;
    g_packages [EPT_BASE].freeMins   = 0;
    g_packages [EPT_BASE].minPrice   = 10;

    g_packages [EPT_P100].baseCharge = 395;
    g_packages [EPT_P100].freeMins   = 100;
    g_packages [EPT_P100].minPrice   = 12;

    g_packages [EPT_P300].baseCharge = 795;
    g_packages [EPT_P300].freeMins   = 300;
    g_packages [EPT_P300].minPrice   = 15;

    g_packages [EPT_P600].baseCharge = 1295;
    g_packages [EPT_P600].freeMins   = 600;
    g_packages [EPT_P600].minPrice   = 20;

    g_packages [EPT_FLAT].baseCharge = 2995;
    g_packages [EPT_FLAT].freeMins   = 50000;
    g_packages [EPT_FLAT].minPrice   = 0;
}


int CalcMonthCharge (E_PACKAGE_TYPE pt, int minutes)
{
    int minutesToCharge = minutes - g_packages [pt].freeMins;
    if (0 > minutesToCharge)
        minutesToCharge = 0;

    return g_packages [pt].baseCharge + g_packages [pt].minPrice * minutesToCharge;
}





Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben