E28 fertig

This commit is contained in:
Sebastian Schüler 2025-10-14 12:10:33 +02:00
parent 059e3545cf
commit dfd759d7ec
5 changed files with 179 additions and 13 deletions

View File

@ -8,7 +8,7 @@ namespace Exercises_C_Sharp.E28_Classes
{
//Erstellen Sie eine statische Liste, wo man Elemente vom Typ Equipment reinspeichern kann
//Code Start
static dynamic EList = 1;
static List<Equipment> EList = [];
//Code ENDE
public static void Start()
{
@ -27,7 +27,16 @@ namespace Exercises_C_Sharp.E28_Classes
static Equipment? MakeEquipment()
{
//Code Start
return null;
Console.WriteLine("Bitte geben Sie eine valide ID ein:");
int id;
while (!int.TryParse(Console.ReadLine(), out id)) ;
Console.WriteLine("Bitte geben Sie einen Namen ein:");
string name = Console.ReadLine() ?? "Default";
Console.WriteLine("Bitte geben Sie eine valide Menge ein:");
int amount;
while (!int.TryParse(Console.ReadLine(), out amount)) ;
return new() { ID = id, Amount = amount, Name = name};
//Code ENDE
}
@ -35,6 +44,13 @@ namespace Exercises_C_Sharp.E28_Classes
static void PrintEquipment()
{
//Code Start
foreach(var element in EList)
{
Console.WriteLine("ID: " + element.ID);
Console.WriteLine("Name: " + element.Name);
Console.WriteLine("Amount: " + element.Amount);
Console.WriteLine("-----------------------------");
}
//Code ENDE
}

View File

@ -10,7 +10,7 @@ namespace Exercises_C_Sharp.E28_Classes
{
//Erstellen Sie hier eine Instanz ihrer Klasse
//Code START
dynamic obj = 1;
Beispiel obj = new();
//Code ENDE
obj.StringList = new List<string>{"Hallo", "Hi", "Hey", "Hohoho", "Ciao", "Byebye"};
@ -18,7 +18,7 @@ namespace Exercises_C_Sharp.E28_Classes
Console.WriteLine(GetCharsFromPosition(obj));
}
static string GetCharsFromPosition(dynamic d)
static string GetCharsFromPosition(Beispiel d)
{
string tempString = string.Empty;
foreach(var element in d.StringList)
@ -30,6 +30,10 @@ namespace Exercises_C_Sharp.E28_Classes
}
//Schreiben Sie eine Klasse, die oben zu der Aufgabe passt. Ändern Sie dann auch alle dynamics oben ab.
//Code START
class Beispiel
{
public List<string> StringList = [];
public int Position = 0;
}
//Code ENDE
}

View File

@ -12,13 +12,53 @@ namespace Exercises_C_Sharp.E28_Classes
//Füllen Sie die AnimalList mit 20 verschiedenen Tieren unterschiedlichen Typs.
//Code Start
for (int i = 0; i < 20; i++)
{
Random rand = new();
Animal temp = new();
string name = "";
//Erster Buchstabe
name += (char)rand.Next(65, 91);
for (int j = 0; j < rand.Next(10); j++)
name += (char)rand.Next(97, 123);
temp.Name = name;
//Skin
temp.Skin = (SkinKind)rand.Next(4);
//Meal
temp.Meal = (MealKind)rand.Next(3);
//Kind
temp.Kind = (AnimalKind)rand.Next(4);
//Population
temp.CurrentPopulation = rand.Next(10000);
AnimalList.Add(temp);
}
//Code Ende
while(true)
while (true)
{
//Geben Sie dem Anwender die Möglichkeit, nach den unten stehenden Enums zu filtern. Der Anwender soll auswählen, nach was er filtern möchte (z.B. Schuppen, Vogel, Insekt usw.). Rufen Sie dann die Methode FilterAnimnals() auf und übergeben Sie diesen Wert.
//Code Start
Console.WriteLine("Bitte geben Sie Ihren Filter ein:");
int i = 1;
foreach (var element in Enum.GetNames(typeof(SkinKind)))
Console.WriteLine(i++ + ".) " + element);
foreach (var element in Enum.GetNames(typeof(MealKind)))
Console.WriteLine(i++ + ".) " + element);
foreach (var element in Enum.GetNames(typeof(AnimalKind)))
Console.WriteLine(i++ + ".) " + element);
int userinput;
while (!int.TryParse(Console.ReadLine(), out userinput) || userinput < 1 || userinput > 11) ;
if (userinput < 5)
FilterAnimals<SkinKind>(AnimalList, (SkinKind)(userinput - 1));
else if (userinput < 8)
FilterAnimals<MealKind>(AnimalList, (MealKind)(userinput - 5));
else if (userinput < 12)
FilterAnimals<AnimalKind>(AnimalList, (AnimalKind)(userinput - 8));
//Code Ende
}
@ -55,6 +95,16 @@ namespace Exercises_C_Sharp.E28_Classes
//Geben Sie hier das übergebene Tier mit allen Werten aus.
//Code Start
Console.WriteLine();
Console.WriteLine("*********************");
Console.WriteLine("* " + a.Name);
Console.WriteLine("*********************");
Console.WriteLine("Oberfläche: " + a.Skin.ToString());
Console.WriteLine("Ernährung: " + a.Meal.ToString());
Console.WriteLine("Art: " + a.Kind.ToString());
Console.WriteLine("Population: " + a.CurrentPopulation);
Console.WriteLine();
//Code Ende
}

View File

@ -11,45 +11,123 @@ namespace Exercises_C_Sharp.E28_Classes
static List<Invoice> InvoiceList = new();
public static void Start()
{
while(true)
while (true)
{
//Schreiben Sie ein Menü (auch gerne in einer neuen Methode), in dem der Nutzer Auswählen kann, ob er einen Kunden, ein Produkt oder eine Rechnung erstellen kann. Geben Sie ihm auch die Möglichkeit, zu einer Rechnung Produkte hinzuzufügen und zu löschen.
//Code Start
Console.WriteLine("Bitte wählen Sie aus:");
Console.WriteLine("1.) Kunden erstellen");
Console.WriteLine("2.) Produkt erstellen");
Console.WriteLine("3.) Rechnung erstellen");
Console.WriteLine("4.) Produkt zur Rechnung hinzufügen");
Console.WriteLine("5.) Produkt in Rechnung löschen");
Console.WriteLine();
string userinput = Console.ReadLine() ?? throw new Exception("");
if (userinput == "1")
{
CreateNewCustomerAndAddToList();
}
else if (userinput == "2")
{
CreateNewProductAndAddToList();
}
else if (userinput == "3")
{
CreateNewInvoiceAndAddToList();
}
else if (userinput == "4")
{
AddElementToInvoice(GetInvoiceFromUser());
}
else if (userinput == "5")
{
DeleteElementToInvoice(GetInvoiceFromUser());
}
//Code Ende
}
}
static Invoice GetInvoiceFromUser()
{
int i = 0;
Console.WriteLine("Bitte wählen Sie die Rechnung aus:");
foreach (var element in InvoiceList)
Console.WriteLine(i++ + ".) " + element.Cust!.Name);
return InvoiceList[Convert.ToInt32(Console.ReadLine())];
}
//Ergänzen Sie diese Methode, sodass ein Anwender hier einen neuen Kunden erstellen kann. Dieser soll dann in die CustomerList gespeichert werden.
static void CreateNewCustomerAndAddToList()
{
//Code Start
Customer cust = new();
Console.WriteLine("Bitte geben Sie eine ID ein:");
cust.ID = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Bitte geben Sie einen Namen ein:");
cust.Name = Console.ReadLine();
Console.WriteLine("Bitte geben Sie eine Adresse ein:");
cust.Address = Console.ReadLine();
CustomerList.Add(cust);
//Code Ende
}
//Ergänzen Sie diese Methode, sodass ein Anwender hier einen neues Produkt erstellen kann. Dieser soll dann in die ProductList gespeichert werden.
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein neues Produkt erstellen kann. Dieser soll dann in die ProductList gespeichert werden.
static void CreateNewProductAndAddToList()
{
//Code Start
Product prod = new();
Console.WriteLine("Bitte geben Sie einen Namen ein:");
prod.Name = Console.ReadLine();
Console.WriteLine("Bitte geben Sie einen Preis ein:");
prod.Price = Convert.ToDecimal(Console.ReadLine());
ProductList.Add(prod);
//Code Ende
}
//Ergänzen Sie diese Methode, sodass ein Anwender hier eine neue Rechnung erstellen kann. Dieser soll dann in die InvoiceList gespeichert werden.
static void CreateNewInvoiceAndAddToList()
{
//Code Start
Invoice inv = new();
int i = 0;
Console.WriteLine("Bitte wählen Sie einen Kunden aus:");
foreach (var element in CustomerList)
Console.WriteLine(i++ + ".) " + element);
inv.Cust = CustomerList[Convert.ToInt32(Console.ReadLine())];
InvoiceList.Add(inv);
//Code Ende
}
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt zu einer Rechnung hinzufügen kann.
static void AddElementToInvoice(Invoice inv)
{
int i = 0;
Console.WriteLine("Bitte wählen Sie einen Kunden aus:");
foreach (var element in ProductList)
Console.WriteLine(i++ + ".) " + element);
Item it = new();
it.Product = ProductList[Convert.ToInt32(Console.ReadLine())];
Console.WriteLine("Bitte geben Sie die Menge ein:");
it.Amount = Convert.ToInt32(Console.ReadLine());
inv.Items.Add(it);
}
//Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt von einer Rechnung löschen kann.
static void DeleteElementToInvoice(Invoice inv)
{
int i = 0;
Console.WriteLine("Bitte wählen Sie das zu löschende Objekt aus:");
foreach (var element in inv.Items)
Console.WriteLine(i++ + ".) " + element);
inv.Items.RemoveAt(Convert.ToInt32(Console.ReadLine()));
}
}
@ -64,10 +142,28 @@ namespace Exercises_C_Sharp.E28_Classes
public List<Item> Items = new List<Item>();
//Schreiben Sie hier eine Methode, die die Anzahl aller einzelnen Elemente zurückgibt
public int AmountElements()
{
return Items.Sum(k => k.Amount);
}
//Schreiben Sie hier eine Methode, die die Anzahl der verschiedenen Produkte zurückgibt
public int AllElements()
{
return Items.Count;
}
//Schreiben Sie hier eine Methode, die den Gesamtpreis der Rechnung zurück gibt
public decimal GetPrice()
{
decimal sum = 0;
foreach (var element in Items)
sum += element.Product!.Price * element.Amount;
return sum;
//return Items.Sum(k => k.Product.Price * k.Amount);
}
}
class Item
{

View File

@ -1,2 +1,2 @@
3
26
5
27