diff --git a/OOP2024_AMP.sln b/OOP2024_AMP.sln index b6a997a629e6dd469b5f340564339e6e1b4027e3..3e60b6311b4b6ae344f927b6bb15ca26af7e943d 100644 --- a/OOP2024_AMP.sln +++ b/OOP2024_AMP.sln @@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "P02 Methoden", "P02 Methode EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "P03 Klassen", "P03 Klassen\P03 Klassen.csproj", "{E0E52007-EEDB-4075-9371-909D9E435F61}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "P04 Brueche", "..\P04 Brueche\P04 Brueche.csproj", "{09DFCE5C-70A6-42AA-88E8-AB643EE5E790}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {E0E52007-EEDB-4075-9371-909D9E435F61}.Debug|Any CPU.Build.0 = Debug|Any CPU {E0E52007-EEDB-4075-9371-909D9E435F61}.Release|Any CPU.ActiveCfg = Release|Any CPU {E0E52007-EEDB-4075-9371-909D9E435F61}.Release|Any CPU.Build.0 = Release|Any CPU + {09DFCE5C-70A6-42AA-88E8-AB643EE5E790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09DFCE5C-70A6-42AA-88E8-AB643EE5E790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09DFCE5C-70A6-42AA-88E8-AB643EE5E790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09DFCE5C-70A6-42AA-88E8-AB643EE5E790}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/P03 Klassen/Buergeramt.cs b/P03 Klassen/Buergeramt.cs new file mode 100644 index 0000000000000000000000000000000000000000..ecef68e43ba95df08fe7827ecde8473e8d841f2f --- /dev/null +++ b/P03 Klassen/Buergeramt.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace P03_Klassen +{ + class Buergeramt + { + int maxPersonalausweise; + int naechstePersoPos = 0; // nicht-static, da unterschiedliche Städte + Perso[] persos; + + public Buergeramt(int maxPersos ) + { + maxPersonalausweise = maxPersos; + persos = new Perso[ maxPersonalausweise ]; + } + public Perso NeuerPersonalausweis(string name, int alter) + { + Perso neuerPerso = new Perso(name, alter); + persos[naechstePersoPos] = neuerPerso; + naechstePersoPos++; + // Test, ob Feldüberlauf ... + return neuerPerso; + } + public Perso this[int index] + { + get + { + if (index >= 0 && index < naechstePersoPos) + return persos[index]; + else + throw new IndexOutOfRangeException("Ungültiger Index"); + } + // ggf. auch set oder private set + } + // public string this[int index] geht nicht, da + // der Returntyp nicht beim Überladen berücksichtigt wird + + public Perso this[string name] + { + get + { + for (int index=0;index < maxPersonalausweise; index++ ) + if (persos[index]?.Name == name) + return persos[index]; + return null; + } + } + } +} diff --git a/P03 Klassen/Perso.cs b/P03 Klassen/Perso.cs index de14b385f5b3dab55f9018f74c363b523a7d26d8..109133fd3d2e4b0e0ea2de2858613bdec23a9991 100644 --- a/P03 Klassen/Perso.cs +++ b/P03 Klassen/Perso.cs @@ -19,7 +19,7 @@ namespace P03_Klassen naechstePersId = value; } } - readonly string Name; + public string Name { get; private set; } public int Alter { get => xyz01233; diff --git a/P03 Klassen/Program.cs b/P03 Klassen/Program.cs index a30bdb703689a971b7deb071cd718fccb6676398..741f6434fb9751246c4e84cce48b36abb9b8611d 100644 --- a/P03 Klassen/Program.cs +++ b/P03 Klassen/Program.cs @@ -13,7 +13,12 @@ anton.Ausgabe(); //anton.NaechstePersId = 2000; Perso berta = new Perso("Berta", 25); - + + Buergeramt Nbg = new Buergeramt(10); + Nbg.NeuerPersonalausweis("Meier", 15); + Nbg.NeuerPersonalausweis("Müller", 27); + Console.WriteLine(Nbg["Meier"]); + Console.WriteLine(Nbg[1]); } } }