C# :: Aufgabe #281
4 Lösungen

Rabatt für Stammkunden
Anfänger - C#
von DragStar
- 20.03.2020 um 11:46 Uhr
Ein Kassenprogramm verlangt die Eingabe eines Betrags und fragt, ob der Kunde Stammkunde ist. Falls ja, erhält er 5% Rabatt.
Das Programm soll auf die Eingaben "j" und "n", groß und klein geschrieben, reagieren.
Das Programm soll auf die Eingaben "j" und "n", groß und klein geschrieben, reagieren.
Lösungen:

using static System.Console; namespace CS_Aufgabe_281_Rabatt_Stammkunden { class Program { static void Main() { const double Discount = 0.05; double amount; OutputEncoding = System.Text.Encoding.Default; while (true) { Write("Bitte Betrag eingeben: "); _ = double.TryParse(ReadLine(), out amount); if (amount == 0) { WriteLine("Bitte einen gültigen Betrag eingeben!\n"); continue; } break; } Write("Sind Sie Stammkunde (J/N)? "); if (ReadLine().ToUpper()[0] == 'J') { var discount = amount * Discount; amount -= discount; WriteLine($"Neuer Betrag: {amount:C} ({discount:C} Rabatt)"); } else WriteLine($"Betrag: {amount:C}"); } } }
Hallo,
ich habe mich mal an eine Lösung als WPF Programm gewagt. Musste erst mal lernen wie ich in C# Checkboxen verwende.
Ich hoffe das ist OK, entspricht ja eigentlich nicht der Aufgabe...
Grüße
Peter aka waldgeist
hier der Code:
C#-Code
hier der XAML Code für die Oberfläche:
C#-Code
ich habe mich mal an eine Lösung als WPF Programm gewagt. Musste erst mal lernen wie ich in C# Checkboxen verwende.
Ich hoffe das ist OK, entspricht ja eigentlich nicht der Aufgabe...
Grüße
Peter aka waldgeist
hier der Code:

using System; using System.Windows; namespace Rabattberechnung { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void berechneButton_Click(object sender, RoutedEventArgs e) { double preis = Convert.ToDouble(preisbox.Text); if ((bool)ckeckStammkunde.IsChecked) { double rabatt = 0.05 * preis; double rabattpreis = 0.95 * preis; rabattbox.Text = "Der Kunde erhält: " + rabatt.ToString() + " Euro Rabatt"; endpreisbox.Text = "Der Preis abzüglich Rabatt beträgt " + rabattpreis.ToString() + " Euro"; } else { rabattbox.Clear(); endpreisbox.Text = "Der Kunde erhält keinen Rabatt!"; } } } }
hier der XAML Code für die Oberfläche:

<Window x:Class="Rabattberechnung.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:Rabattberechnung" mc:Ignorable="d" Title="#281 Rabatt für Stammkunden" Height="450" Width="800"> <Grid x:Name="checkStammkunde"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0*" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock HorizontalAlignment="Left" Height="23" Margin="25,31,0,0" Text="Programm zum Berechnen von Stammkunden - Rabatt" TextWrapping="Wrap" VerticalAlignment="Top" Width="713" Grid.Column="1" /> <TextBlock HorizontalAlignment="Left" Height="24" Margin="25,87,0,0" Text="Bitte geben Sie den regulären Preis an:" TextWrapping="Wrap" VerticalAlignment="Top" Width="221" Grid.Column="1" /> <TextBox x:Name="preisbox" HorizontalAlignment="Left" Height="24" Margin="234,87,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="115" TextAlignment="Right" Grid.Column="1" /> <TextBlock HorizontalAlignment="Left" Height="25" Margin="25,140,0,0" Text="Ist Kunde ein Stammkunde" TextWrapping="Wrap" VerticalAlignment="Top" Width="208" Grid.Column="1" /> <CheckBox x:Name="ckeckStammkunde" Content="Ja, Stammkunde" HorizontalAlignment="Left" Height="25" Margin="234,140,0,0" VerticalAlignment="Top" Width="115" Grid.Column="1" /> <Button x:Name="berechneButton" Content="Berechne Rabatt" HorizontalAlignment="Left" Height="51" Margin="25,184,0,0" VerticalAlignment="Top" Width="356" Grid.Column="1" Click="berechneButton_Click" /> <TextBox x:Name="rabattbox" HorizontalAlignment="Left" Height="25" Margin="25,266,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="356" Grid.Column="1" /> <TextBox x:Name="endpreisbox" HorizontalAlignment="Left" Height="25" Margin="25,308,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="356" Grid.Column="1" /> </Grid> </Window>

using System; namespace Rabatt { class Program { static void Main(string[] args) { Eingabe1: double betrag, rabatt = 0; int prozent = 5; string eingabe, antwort = null; bool stammkunde = false; Console.WriteLine("Bitte Rechnungsbetrag eingeben:"); eingabe = Console.ReadLine(); try { betrag = double.Parse(eingabe); } catch (FormatException) { Console.WriteLine("Ungültige Eingabe. Bitte wiederholen."); goto Eingabe1; } if (betrag >= 0) { Eingabe2: Console.WriteLine("Stammkunde? J/N"); antwort = Console.ReadLine(); if (antwort == "j" || antwort == "J") { stammkunde = true; } else if (antwort == "n" || antwort == "N") { stammkunde = false; } else { Console.WriteLine("Ungültige Eingabe. Bitte wiederholen."); goto Eingabe2; } if (stammkunde) { rabatt = betrag * prozent / 100; } else { rabatt = 0; Console.WriteLine("Leider kein Rabatt möglich."); } } else { Console.WriteLine("Ungültige Eingabe. Bitte wiederholen."); goto Eingabe1; } Ausgabe: Console.WriteLine("Betrag: " + Math.Round(betrag, 2) + " Euro, Stammkunde: " + antwort + " , Rabatt: " + Math.Round(rabatt, 2) + " Euro"); Console.ReadLine(); goto Eingabe1; } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Rabatt_für_Stammkunden { class Program { static void Main(string[] args) { double bruttoBetrag; Eingabe: Console.Write("Eingabe Betrag: "); try { _ = double.TryParse(Console.ReadLine(), out bruttoBetrag); if (bruttoBetrag == 0) { Console.WriteLine("Ungültige Eingabe"); Console.ReadKey(); Console.Clear(); goto Eingabe; } } catch (FormatException) { Console.WriteLine("Ungültige Eingabe"); Console.ReadKey(); Console.Clear(); goto Eingabe; } Console.WriteLine("\nStammkunde? (j/n): "); string stammkunde = Console.ReadLine(); double nettoBetrag; if(stammkunde == "j" || stammkunde == "J") { nettoBetrag = Math.Round(bruttoBetrag * 0.95, 2); Console.WriteLine($"\nDer Rechnungsbetrag nach Abzug von 5% beträgt: {nettoBetrag:C}"); } else { nettoBetrag = bruttoBetrag; Console.WriteLine($"\nDer Rechnungsbetrag netto beträgt: {nettoBetrag:C}"); } Console.ReadKey(); } } }