82 lines
3.4 KiB
C#
82 lines
3.4 KiB
C#
using System.Runtime.InteropServices;
|
|
|
|
namespace Exercises_C_Sharp.E40_Vererbung
|
|
{
|
|
// Sie sind Programmierer in einem Kaufhaus. Das Kaufhaus hatte vor einiger Zeit eine Bonuskarte für Kunden eingeführt. Diese haben zwei Vorteile: Sie bekommen Bonuspunkte, die sie für Rabatte eintauschen können, und sie bekommen zum Geburtstag einen Gutschein per Mail gesendet.
|
|
// Jetzt will das Kaufhaus zwei Bonusprogramme einführen: Eins für NormalCustomer und eins für PremiumCustomer.
|
|
// Für NormalCustomer gibt es zum Geburtstag nur noch 100 Bonuspunkte, für PremiumCustomer 500 Bonuspunkte und noch einen extra Gutschein von 20% auf den nächsten Einkauf.
|
|
// PremiumCustomer bekommen pro Einkauf sogar 50 Bonuspunkte, NormalCustomer nur 5 Bonuspunkte pro Einkauf.
|
|
|
|
//Das Kaufhaus hat sich überlegt, alle jungen Leute, die ab 01.01.2000 geboren sind, kostenlos als PremiumCustomer einzustellen. Normalerweise kostet die Mitgliedschaft 39,99 € im Jahr.
|
|
|
|
//Ihre Aufgabe ist nun: Den Code so anzupassen, dass das obere Szenario abgebildet werden kann.
|
|
|
|
//[In dieser Aufgabe gibt es kein Start und Ende, sie dürfen ändern was Sie wollen. Achten Sie aber bitte drauf, dass die Vererbung nutzen.]
|
|
class Exercise_4
|
|
{
|
|
public static void Start()
|
|
{
|
|
WriteCustomerForBirthday(MakeCustomer());
|
|
|
|
}
|
|
|
|
//Hier sollen Sie allen Kunden die Nachricht zukommen lassen, dass sie nun Premium für den oben genannten Preis haben können. Alle ab 2000 geborenen soll gesagt werden, dass sie nun PremiumCustomer sind.
|
|
static void WriteCustomerForPremium()
|
|
{
|
|
|
|
}
|
|
|
|
static void WriteCustomerForBirthday(List<Customer> customers)
|
|
{
|
|
Random rand = new();
|
|
foreach(var element in customers)
|
|
{
|
|
if(element.Birth.Month == DateTime.Now.Month && element.Birth.Day == DateTime.Now.Day)
|
|
element.SendMail("Alles Gute zum Geburtstag! Hier ist ihr Coupon für 15% Rabatt auf den Einkauf: " + rand.Next());
|
|
}
|
|
}
|
|
|
|
static List<Customer> MakeCustomer()
|
|
{
|
|
List<Customer> customers = new(){
|
|
new(){Name = "Franz Franzner", Birth = new(1988, 1, 8)},
|
|
new(){Name = "Hans Hansner", Birth = new(2000, 12, 7)},
|
|
new(){Name = "Schorsch Schorschner", Birth = new(1968, 11, 15)},
|
|
new(){Name = "Johann Johanner", Birth = new(1999, 2, 27)},
|
|
new(){Name = "Georg Georgner", Birth = new(1952, 7, 2)},
|
|
new(){Name = "Herman Hermanner", Birth = new(2001, 9, 24)},
|
|
new(){Name = "Peter Peterner", Birth = new(1982, 10, 1)},
|
|
new(){Name = "Karl Karlner", Birth = new(1977, 2, 4)},
|
|
new(){Name = "Willy Willner", Birth = new(2003, 8, 30)}
|
|
};
|
|
|
|
Random rand = new();
|
|
|
|
for(int i = 0; i < 100; i++)
|
|
{
|
|
customers[rand.Next(customers.Count)].AddBonusPoints();
|
|
}
|
|
|
|
return customers;
|
|
}
|
|
}
|
|
|
|
class Customer
|
|
{
|
|
public string Name {get; set;}
|
|
public DateOnly Birth {get; set;}
|
|
public int BonusPoints {get;set;}
|
|
|
|
public void SendMail(string message)
|
|
{
|
|
Console.WriteLine("Wrote mail to " + Name);
|
|
}
|
|
|
|
public void AddBonusPoints()
|
|
{
|
|
BonusPoints += 10;
|
|
}
|
|
}
|
|
|
|
|
|
} |