C# :: Aufgabe #284
8 Lösungen
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.
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:
Hier meine Lösung,
eigentlich wollte ich eine Version ohne Button erstellen, hat aber nicht geklappt...
Hier der Code:
C#-Code
Hier der XAML Code:
C#-Code
eigentlich wollte ich eine Version ohne Button erstellen, hat aber nicht geklappt...
Hier der 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:
<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>
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();
}
}
}
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;
}
}
}
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);
}
}
}
}
Erstellt in NET Core 3.x
Bei NET Framework am Ende ein 'Console.ReadKey()' eingefügen!
C#-Code
Bei NET Framework am Ende ein 'Console.ReadKey()' eingefügen!
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}");
}
}
}
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();
}
}
}
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);
}
}
}
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();
}
}
}
