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