using System; namespace _01Buergeramt_Di { // DoJo-Klassenaufgabe: #region Personalausweis // Programmieren Sie eine Klasse Personalausweis mit folgenden Eigenschaften // string name // int id // - Konstruktor: Erhält den Namen und vergibt eine neue, eindeutige Id (beginnend mit 1000) // - Property zum Setzen und Lesen der nächsten Id. Beim Setzen muss die Id größer sein als die bisherige Nummer! // Dieses Property muss vor dem Anlegen der ersten Person aufrufbar sein! // - Property: Zum Lesen des Namens (kann auch als Auto-Property realisiert werden) // - Überladene ToString-Methode: Soll den Namen und die Id ausgeben #endregion #region Bürgeramt // Programmieren Sie zusätzlich eine Klasse Bürgeramt mit folgenden Eigenschaften // string ort // - Konstruktor, dem der Ortsname und die Anzahl der zu speichernden Personalausweise übergeben werden // - Methode NeuerAusweis: Erhält den Namen, legt einen neuen Pass an, speichert diesen im Feld an der // nächsten freien Stelle und liefert den Personalausweis zurück // - Optional: Methode AllePersos(string teilname): liefert ein Feld passender Größe mit allen // Personalausweisen zurück, die den "teilnamen" enthalten (Tipp: String-Methode contains) // Main: Legen Sie zwei Bürgerämter an (Nürnberg/Fürth) und lassen Sie für Nürnberg mehrere Pässe erzeugen // Optional: Rufen Sie AllePersos mit einem passenden Teilnamen auf und geben Sie diese aus! #endregion class Personalausweis { public string name { get; private set; } int id; static int naechsteID = 1000; public Personalausweis(string name) { this.name = name; this.id = naechsteID++; } public static int NaechsteID { get => naechsteID; set { if (value >= naechsteID) naechsteID = value; else throw new ArgumentOutOfRangeException("Naechste ID muss größer sein!"); } } public override string ToString() => $"Name: {name} Id: {id}"; } class Buergeramt { string ort; Personalausweis[] personalausweise; int ausweisIndex = 0; public Buergeramt(string ort, int anzahlAusweise) { this.ort = ort; personalausweise = new Personalausweis[anzahlAusweise]; } public Personalausweis NeuerAusweis(string name) { if (ausweisIndex >= personalausweise.Length) throw new IndexOutOfRangeException("Zuviele Ausweise"); personalausweise[ausweisIndex] = new Personalausweis(name); return personalausweise[ausweisIndex++]; } } class Program { static void Main(string[] args) { Personalausweis.NaechsteID = 2000; Console.WriteLine(Personalausweis.NaechsteID); Personalausweis p1 = new Personalausweis("Anton"); Personalausweis.NaechsteID = 3000; Console.WriteLine(p1); Buergeramt BuergeramtNuernberg = new Buergeramt("Nürnberg", 600000); Personalausweis mueller = BuergeramtNuernberg.NeuerAusweis("Müller"); } } }