C# :: Aufgabe #284 :: Lösung #3

8 Lösungen Lösungen öffentlich
#284

Preise im Copy-Shop für Kopien

Anfänger - C# von DragStar - 20.03.2020 um 11:53 Uhr
In einem Copy-Shop gilt folgende Preisliste:

01 - 49 Seiten kostet 0,10 Euro pro Seite
50 - 99 Seiten kostet 0,09 Euro pro Seite
100 - 199 Seiten kostet 0,08 Euro pro Seite
ab 200 Seiten kostet 0,06 Euro pro Seite


Erstellen Sie ein Programm, welches nach Eingabe der Anzahl der Kopien den Gesamtpreis ausgibt.
#3
vote_ok
von charlyP (250 Punkte) - 25.03.2020 um 02:19 Uhr
Quellcode ausblenden C#-Code
using System;

namespace CopyShop
{
    class Program
    {
        static void Main(string[] args)
        {
            // Preise pro Seite
            double lot1 = 0.1;    // bei 1 bis 49 Seiten
            double lot2 = 0.09;   // bei 50 bis 99 Seiten
            double lot3 = 0.08;   // bei 100 bis 199 Seiten
            double lot4 = 0.06;   // bei ab 200 Seiten

        // Endlosschleife
        Loop:
            string eingabe = null;
            double numberCopies, numberCopiesLong = 0;
            double preis = 0;

            // Eingabe der Kopienzahl
            Console.WriteLine("Bitte Anzahl der Kopien eingeben:");
            eingabe = Console.ReadLine();

            // Umwandlung des Eingabestrings in eine Double-Zahl
            try
            {
                numberCopiesLong = double.Parse(eingabe);
            }

            // Abfangen einer Eingabe, die eine Exception verursachen würde
            catch (FormatException)
            {
                Console.WriteLine("Fehlerhafte Eingabe. Bitte wiederholen.");
                Console.WriteLine();
                goto Loop;
            }

            // Umwandlung in eine Ganzzahl (sicherheitshalber)
            numberCopies = Math.Round(numberCopiesLong, 0);

            // Überprüfung, ob eine Kommazahl eingegeben wurde
            if ((numberCopiesLong - numberCopies) != 0)
            {
                Console.WriteLine("Ungültige Eingabe. Bitte wiederholen.");
                Console.WriteLine();
                goto Loop;
            }

            if (numberCopies <= 0)
            {
                Console.WriteLine("Ungültige Eingabe. Bitte wiederholen.");
                Console.WriteLine();
                goto Loop;
            }
            else if (numberCopies < 50)
            {
                preis = numberCopies * lot1;
            }
            else if (numberCopies < 100)
            {
                preis = numberCopies * lot2;
            }
            else if (numberCopies < 200)
            {
                preis = numberCopies * lot3;
            }
            else if (numberCopies >= 200)
            {
                preis = numberCopies * lot4;
            }
            // "Notbremse", sollte eigentlich nie auftreten können
            else
            {
                Console.WriteLine("Unbekannter Fehler");
            }

            Console.WriteLine("Anzahl Kopien: " + numberCopies + " ,  Preis: " + Math.Round(preis, 2) + " Euro");
            Console.WriteLine();
            
            goto Loop;
        }
    }
}

Kommentare:

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

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