C# :: Aufgabe #284

8 Lösungen Lösungen öffentlich

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.

Lösungen:

2x
vote_ok
von Waldgeist (1470 Punkte) - 22.03.2020 um 18:08 Uhr
Hier meine Lösung,

eigentlich wollte ich eine Version ohne Button erstellen, hat aber nicht geklappt...

Hier der Code:

Quellcode ausblenden C#-Code
using System;
using System.Windows;

namespace Kopien_CopyShop_Preise
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void berechne_Click(object sender, RoutedEventArgs e)
        {
            double anzahl = Convert.ToDouble(anzahlbox.Text);

            double preis = 0;

            if (anzahl < 50)
            {
                preis = anzahl * 0.1;
            }
            else if ((anzahl >= 50) & (anzahl < 100))
            {
                preis = anzahl * 0.09;
            }
            else if ((anzahl >= 100) & (anzahl < 200))
            {
                preis = anzahl * 0.08;
            }
            else
            {
                preis = anzahl * 0.06;
            }

            preisbox.Text = preis.ToString();

        }
    }

}




Hier der XAML Code:

Quellcode ausblenden C#-Code
<Window x:Class="Kopien_CopyShop_Preise.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Kopien_CopyShop_Preise"
        mc:Ignorable="d"
        Title="Preise im CopyShop" Height="450" Width="800">
    <Grid>
        <Label Content="Dieses Programm ermittelt den Preis den Sie für Ihre Kopien im CopyShop zahlen müssen. " HorizontalAlignment="Left" Height="32" Margin="26,30,0,0" VerticalAlignment="Top" Width="496"/>
        <Label Content="Wieviele Kopien benötigen Sie? Bitte geben Sie die Anzahl ein:" HorizontalAlignment="Left" Height="29" Margin="26,85,0,0" VerticalAlignment="Top" Width="346"/>
        <TextBox x:Name="anzahlbox" HorizontalAlignment="Left" Height="22" Margin="377,88,0,0" Text="1" TextWrapping="Wrap" VerticalAlignment="Top" Width="55" TextAlignment="Right"/>
        <Label Content="Der Preis beträgt:" HorizontalAlignment="Left" Height="25" Margin="36,192,0,0" VerticalAlignment="Top" Width="104"/>
        <TextBox x:Name="preisbox" HorizontalAlignment="Left" Height="22
                 " Margin="145,195,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="83" TextAlignment="Right"/>
        <Label Content="Euro." HorizontalAlignment="Left" Height="25
               " Margin="250,192,0,0" VerticalAlignment="Top" Width="87"/>
        <Button x:Name="berechne" Content="Berechne den Preis" HorizontalAlignment="Left" Height="40" Margin="36,130,0,0" VerticalAlignment="Top" Width="178" Click="berechne_Click"/>

    </Grid>
</Window>

2 Kommentare
vote_ok
von DragStar (1950 Punkte) - 23.03.2020 um 09:25 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace copyshop
{
    class Program
    {
        static void Main(string[] args)
        {
           double preisa = 0.10, preisb = 0.09, preisc = 0.08, preisd = 0.06, gesamtPreis;

            Console.Write("Wie viele Seiten möchten Sie kopieren? -> ");
            int seiten = Convert.ToInt32(Console.ReadLine());

            gesamtPreis = 0;

            if(seiten >=200)
            {
                gesamtPreis = (Math.Round(preisd * seiten,2));
                Console.WriteLine("\n"+seiten + " kosten insgesamt " + gesamtPreis + " Euro.");
            }
            if (seiten >=100 && seiten <=199)
            {
                gesamtPreis = (Math.Round(preisc * seiten, 2));
                Console.WriteLine("\n" + seiten + " kosten insgesamt " + gesamtPreis + " Euro.");
            }
            if (seiten >=50 && seiten <= 99)
            {
                gesamtPreis = (Math.Round(preisb * seiten, 2));
                Console.WriteLine("\n" + seiten + " kosten insgesamt " + gesamtPreis + " Euro.");
            }
            else if (seiten >0 && seiten <=49)
            {
                gesamtPreis = (Math.Round(preisa * seiten, 2));
                Console.WriteLine("\n" + seiten + " kosten insgesamt " + gesamtPreis + " Euro.");
            }

            Console.ReadKey();

        }
    }
}
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;
        }
    }
}
vote_ok
von CruzZ (20 Punkte) - 27.03.2020 um 09:03 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Copy_Shop
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        double seiten, gesamtpreis;
        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void btncopy_Click(object sender, EventArgs e)
        {


            seiten = Convert.ToDouble(txtkopien.Text);
            
            if (seiten >= 1 && seiten < 50)
            {
                gesamtpreis = seiten * 0.10;
                txtPreis.Text = Convert.ToString(gesamtpreis);
            }
            else if (seiten >= 50 & seiten < 100)
            {
                gesamtpreis = seiten * 0.09;
                txtPreis.Text = Convert.ToString(gesamtpreis);
            }
            else if (seiten >= 100 & seiten < 200)
            {
                gesamtpreis = seiten * 0.08;
                txtPreis.Text = Convert.ToString(gesamtpreis);
            }
            else if (seiten >= 200)
            {
                gesamtpreis = seiten * 0.06;
                txtPreis.Text = Convert.ToString(gesamtpreis);
            }
        }
    }
}
vote_ok
von JKooP (3200 Punkte) - 28.03.2020 um 10:12 Uhr
Erstellt in NET Core 3.x
Bei NET Framework am Ende ein 'Console.ReadKey()' eingefügen!


Quellcode ausblenden C#-Code
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace CS_Aufgabe_284_Copy_Shop
{
    class Program
    {
        static void Main()
        {
            Console.OutputEncoding = Encoding.Default;
            Console.Write("Bitte Anzahl der Seiten eingeben: ");
            _ = int.TryParse(Console.ReadLine(), out var pages);

            if (pages < 1) return;

            var lst = new List<(int c, double m)>() { (200, 0.06), (100, 0.08), (50, 0.09), (0, 0.1)};

            var mult = lst.Where(x => pages >= x.c).Select(x => x.m).FirstOrDefault();

            Console.WriteLine($"{pages} Kopie(n) zu je {mult:C} kosten {pages * mult:C}");
        }
    }
}
vote_ok
von vinceee (180 Punkte) - 31.03.2020 um 21:54 Uhr
Quellcode ausblenden C#-Code
using System;

namespace Copyhop
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Geben Sie die Anzahl der Kopien an.");
            int Eingabe = Convert.ToInt32(Console.ReadLine());

            double Preis1 = 0.1;
            double Preis2 = 0.09;
            double Preis3 = 0.08;
            double Preis4 = 0.06;
            double Ausgabe;

            bool InRange(int wert, int Untergrenze, int Obergrenze)
            {
                return wert > Untergrenze - 1 && wert < Obergrenze + 1;
            }

            if(InRange(Eingabe, 1, 49))
            {
                Ausgabe = Eingabe * Preis1;
                Console.WriteLine("Die verlangten Seiten sind: {0}", Eingabe);
                Console.WriteLine("Der Preis dafür ist: {0} euro", Ausgabe);
            }
            else if (InRange(Eingabe, 50, 99))
            {
                Ausgabe = Eingabe * Preis2;
                Console.WriteLine("Die verlangten Seiten sind: {0}", Eingabe);
                Console.WriteLine("Der Preis dafür ist: {0} euro", Ausgabe);
            }
            else if (InRange(Eingabe, 100, 199))
            {
                Ausgabe = Eingabe * Preis3;
                Console.WriteLine("Die verlangten Seiten sind: {0}", Eingabe);
                Console.WriteLine("Der Preis dafür ist: {0} euro", Ausgabe);
            }
            else if (InRange(Eingabe, 199, 999999))
            {
                Ausgabe = Eingabe * Preis4;
                Console.WriteLine("Die verlangten Seiten sind: {0}", Eingabe);
                Console.WriteLine("Der Preis dafür ist: {0} euro", Ausgabe);
            }
            else
            {
                Ausgabe = 0;
                Console.WriteLine("Keine Gültige Zahl eingegeben.");
            }
            Console.ReadKey();
        }
    }
}
vote_ok
von Chris_E (80 Punkte) - 28.04.2020 um 21:02 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Copy_Shop_TRAIN
{
    class Program
    {
        static void Main(string[] args)
        {
            int Kopien;

            Console.WriteLine("Willkommen im Copy_Shop.\nWie viele Kopien möchten Sie erstellen?\n" +
                "\n01 - 49 Seiten kostet 0,10 Euro pro Seite" +
                "\n50 - 99 Seiten kostet 0,09 Euro pro Seite" +
                "\n100 - 199 Seiten kostet 0,08 Euro pro Seite" +
                "\nab 200 Seiten kostet 0,06 Euro pro Seite\n\n");

            do
            {
                Kopien = Convert.ToInt32(Console.ReadLine());
            } while (Kopien < 0);

            if (Kopien < 50)
                Console.WriteLine("\nZu zahlender Betrag beträgt {0} Euro. Danke für Ihren Besuch.", Convert.ToDouble(Kopien) * 0.1);
            else if(Kopien < 100)
                Console.WriteLine("\nZu zahlender Betrag beträgt {0} Euro. Danke für Ihren Besuch.", Convert.ToDouble(Kopien) * 0.09);
            else if(Kopien <200)
                Console.WriteLine("\nZu zahlender Betrag beträgt {0} Euro. Danke für Ihren Besuch.", Convert.ToDouble(Kopien) * 0.08);
            else
                Console.WriteLine("\nZu zahlender Betrag beträgt {0} Euro. Danke für Ihren Besuch.", Convert.ToDouble(Kopien) * 0.06);




        }
    }
}
vote_ok
von Kate (400 Punkte) - 14.07.2020 um 15:12 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Copy_Shop
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Wie viele Seiten wurden bedruckt?");
            int Anzahl = Convert.ToInt32(Console.ReadLine());
            double Preis;
            
            if (Anzahl < 50) Preis = 0.10;
            else if (Anzahl < 100) Preis = 0.09;
            else if (Anzahl < 200) Preis = 0.08;
            else Preis = 0.06;

            Console.WriteLine(Anzahl* Preis);

            Console.Read();
        }
    }
}