From 062c3303b815bc5e89d4cec227df26e387fed1da Mon Sep 17 00:00:00 2001 From: sebi Date: Tue, 29 Apr 2025 16:58:43 +0200 Subject: [PATCH] E28 Ex 1+2 (nicht fertig!)+3 --- Exercises/E28_Classes/Exercise_1.cs | 2 +- Exercises/E28_Classes/Exercise_2.cs | 70 ++++++++++++++++++++++++++++- Exercises/E28_Classes/Exercise_3.cs | 58 +++++++++++++++++++++--- 3 files changed, 123 insertions(+), 7 deletions(-) diff --git a/Exercises/E28_Classes/Exercise_1.cs b/Exercises/E28_Classes/Exercise_1.cs index 51118a7..fc8e745 100644 --- a/Exercises/E28_Classes/Exercise_1.cs +++ b/Exercises/E28_Classes/Exercise_1.cs @@ -10,7 +10,7 @@ namespace Exercises_C_Sharp.E28_Classes { //Erstellen Sie die Klasse Funny, sodass "Hallo, das ist super!" auf der Konsole ausgegeben wird. //Code START - dynamic funnyClass = -1; + Funny funnyClass = new(); //Code ENDE Console.WriteLine(funnyClass.Value1 + funnyClass.Value2 + funnyClass.Value3 + funnyClass.Value4); diff --git a/Exercises/E28_Classes/Exercise_2.cs b/Exercises/E28_Classes/Exercise_2.cs index b12a745..e1022c5 100644 --- a/Exercises/E28_Classes/Exercise_2.cs +++ b/Exercises/E28_Classes/Exercise_2.cs @@ -11,7 +11,7 @@ namespace Exercises_C_Sharp.E28_Classes List listList = new(); //Erstellen Sie fünf neue Instanzen der Klasse Lists und fügen Sie diese der oberen Liste hinzu. //Code START - + listList = [new(), new(), new(), new(), new()]; //Code ENDE foreach(var element in listList) @@ -22,6 +22,74 @@ namespace Exercises_C_Sharp.E28_Classes while(true) { //Code START + string userinput = Console.ReadLine() ?? string.Empty; + if(int.TryParse(userinput, out int userint)) + { + foreach(var element in listList) + { + for(int i = 0; i < element.IntegerList.Count; i++) + { + if(element.IntegerList[i] == userint) + { + if(i == 0) + { + Console.WriteLine("Davor: " + element.IntegerList.Last()); + Console.WriteLine("Danach: " + element.IntegerList[i+1]); + } + else if(i == element.IntegerList.Length - 1) + { + Console.WriteLine("Davor: " + element.IntegerList[i-1]); + Console.WriteLine("Danach: " + element.IntegerList.First()); + + } + else + { + Console.WriteLine("Davor: " + element.IntegerList[i-1]); + Console.WriteLine("Danach: " + element.IntegerList[i+1]); + } + } + } + } + } + else if(decimal.TryParse(userinput, out decimal userdecimal)) + { + foreach(var element in listList) + { + for(int i = 0; i < element.DecimalList.Count; i++) + { + if(element.DecimalList[i] == userdecimal) + { + //DRINNEN + } + } + } + } + else if(userinput.Length == 1) + { + foreach(var element in listList) + { + for(int i = 0; i < element.CharList.Count; i++) + { + if(element.CharList[i] == userinput[0]) + { + //DRINNEN + } + } + } + } + else + { + foreach(var element in listList) + { + for(int i = 0; i < element.StringList.Count; i++) + { + if(element.StringList[i] == userinput) + { + //DRINNEN + } + } + } + } //Code ENDE } diff --git a/Exercises/E28_Classes/Exercise_3.cs b/Exercises/E28_Classes/Exercise_3.cs index edaeafa..bc1b7fc 100644 --- a/Exercises/E28_Classes/Exercise_3.cs +++ b/Exercises/E28_Classes/Exercise_3.cs @@ -10,36 +10,84 @@ namespace Exercises_C_Sharp.E28_Classes { //Erstellen Sie eine Liste von Ausweisen (IDs) //Code START - + List Ausweise = new(); //Code ENDE //Der Nutzer soll nun beliebig viele Ausweise erstellen können. Achten Sie darauf, dass der Nutzer mindestens 5 Ausweise erstellen muss. Verwenden Sie die Methode UserCreateID(). Speichern Sie die Ausweise in die oben erstellte Liste, nach dem Geburtsdatum sortiert. //Code START + int counter = 0; + while(true) + { + ID tempID = UserCreateID(); + bool b = true; + for(int i = 0; i < Ausweise.Count; i++) + { + if(tempID.Birth > Ausweise[i].Birth) + { + Ausweise.Insert(i, tempID); + b = false; + break; + } + } + if(b) Ausweise.Add(tempID); + + + if(counter <= 5) + counter++; + + if(counter >= 5) + { + Console.WriteLine("Willst Du einen weiteren Ausweis erstellen. Dann schreibe ein Y:"); + if(Console.ReadKey().Key != ConsoleKey.Y) + break; + } + } //Code ENDE //Geben Sie zum Schluss alle Ausweise aus. Nutzen Sie dafür die Methode ShowIDs(). //Code Start - //ShowIDs(); + ShowIDs(Ausweise); //Code ENDE } + //"Einfache" Weg Sortierung + Ausweise.Sort((k, l) => k.Birth.CompareTo(l.Birth)); //Geben Sie in diser Methode alle Ausweise optisch ansprechend auf der Konsole aus. static void ShowIDs(List idList) { //Code START + foreach(var element in idList) + { + Console.WriteLine("---------------------"); + Console.WriteLine("Number: " + element.IDNumber); + Console.WriteLine("Vornamen: " + element.Givenname); + Console.WriteLine("Nachnamen: " + element.Surname); + Console.WriteLine("Geburtsdatum: " + element.Birth.ToString("dd.MM.yyyy")); + Console.WriteLine("---------------------"); + } //Code ENDE } //Sorgen Sie dafür, dass der Anwender hier einen validen Ausweis erstellen kann. Setzen Sie die IDNumber selber. Achten Sie darauf, dass eine IDNumber mindesten 5 Zahlen beinhaltet und eindeutig sein muss. //Code START - + static int lastID = 10000; //Code ENDE static ID UserCreateID() { //Code START - return new ID(); + ID tempID = new(); + + tempID.IDNumber = lastID++; + Console.WriteLine("Bitte Vorname angeben:"); + tempID.Givenname = Console.ReadLine(); + Console.WriteLine("Bitte Nachname angeben:"); + tempID.Surname = Console.ReadLine(); + Console.WriteLine("Bitte Geburtsdatum angeben:"); + tempID.Birth = Convert.ToDateTime(Console.ReadLine()); + + return tempID; //Code ENDE } @@ -52,7 +100,7 @@ namespace Exercises_C_Sharp.E28_Classes class ID { public int IDNumber = -1; - public string? Prename = null; + public string? Surname = null; public string? Givenname = null; public DateTime Birth = DateTime.MinValue; }