Menu
Coddy logo textTech

Rückblick – Bankkontenverwaltung

Teil des Abschnitts Objektorientierte Programmierung der C#-Journey von Coddy. Lektion 18 von 70.

challenge icon

Aufgabe

Einfach

Lass uns ein vollständiges Bankkontoverwaltungssystem erstellen, das alles zusammenführt, was du über Klassenarchitektur gelernt hast. Du erstellst eine BankAccount-Klasse, die korrekt zwischen Instanzdaten (einzigartig für jedes Konto) und statischen Daten (von allen Konten gemeinsam genutzt) unterscheidet und gleichzeitig Validierung verwendet, um die Konten in gültigen Zuständen zu halten.

Du erstellst zwei Dateien, um deinen Code zu organisieren:

  • BankAccount.cs: Definiere eine BankAccount-Klasse im Banking-Namespace. Dein Konto sollte Folgendes enthalten:
    • Ein const-Feld MinimumBalance, das auf 100 gesetzt ist – der Mindestbetrag, den alle Konten beibehalten müssen
    • Ein static-Feld InterestRate (decimal), das mit 0.03m beginnt – von allen Konten gemeinsam genutzt
    • Ein static-Feld TotalAccounts (int), das erfasst, wie viele Konten existieren
    • Ein readonly-Feld AccountNumber (string) – wird bei der Erstellung einmal gesetzt und niemals geändert
    • Ein privates Hintergrundfeld _ownerName mit einer Eigenschaft OwnerName, die beim Setzen Leerzeichen entfernt
    • Ein privates Hintergrundfeld _balance mit einer Eigenschaft Balance, die verhindert, dass der Kontostand unter MinimumBalance fällt (wenn jemand versucht, einen niedrigeren Wert zu setzen, bleibt er auf MinimumBalance)
    • Ein Konstruktor, der Kontonummer, Namen des Kontoinhabers und anfänglichen Kontostand entgegennimmt und TotalAccounts erhöht
    • Eine statische Methode SetInterestRate(decimal rate), um den gemeinsamen Zinssatz zu aktualisieren
    • Eine Methode CalculateInterest(), die den Kontostand multipliziert mit dem Zinssatz zurückgibt
  • Program.cs: Erstelle in deiner Hauptdatei zwei Bankkonten mithilfe von Eingabewerten, aktualisiere den Zinssatz und gib Kontoinformationen zusammen mit den gemeinsamen Bankdaten aus.

Du erhältst sieben Eingaben:

  • Kontonummer des ersten Kontos
  • Name des Inhabers des ersten Kontos
  • Anfänglicher Kontostand des ersten Kontos
  • Kontonummer des zweiten Kontos
  • Name des Inhabers des zweiten Kontos
  • Anfänglicher Kontostand des zweiten Kontos
  • Neuer Zinssatz (als Dezimalzahl wie 0.05)

Gib die Ausgabe in diesem Format aus:

--- Bank Summary ---
Interest Rate: {InterestRate}
Minimum Balance: {MinimumBalance}
Total Accounts: {TotalAccounts}

Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}

Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}

Wenn die Eingaben beispielsweise ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 und 0.05 lauten, sollte die Ausgabe wie folgt aussehen:

--- Bank Summary ---
Interest Rate: 0.05
Minimum Balance: 100
Total Accounts: 2

Account: ACC001
Owner: Alice Smith
Balance: 500
Interest Earned: 25.0

Account: ACC002
Owner: Bob Jones
Balance: 100
Interest Earned: 5.0

Beachte, wie die zusätzlichen Leerzeichen aus Alices Namen entfernt werden und Bobs Kontostand von 50 auf den Mindestbetrag von 100 angehoben wird. Die Zinsen werden anhand des aktualisierten Zinssatzes von 0.05 berechnet, der nach der Erstellung der Konten festgelegt wurde.

Probier es selbst

using System;
using Banking;

class Program
{
    public static void Main(string[] args)
    {
        // Eingaben für das erste Konto lesen
        string accountNumber1 = Console.ReadLine();
        string ownerName1 = Console.ReadLine();
        decimal balance1 = Convert.ToDecimal(Console.ReadLine());
        
        // Eingaben für das zweite Konto lesen
        string accountNumber2 = Console.ReadLine();
        string ownerName2 = Console.ReadLine();
        decimal balance2 = Convert.ToDecimal(Console.ReadLine());
        
        // Neuen Zinssatz lesen
        decimal newRate = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Zwei BankAccount-Objekte mit den Eingabewerten erstellen
        
        // TODO: Den Zinssatz mithilfe der statischen Methode aktualisieren
        
        // TODO: Die Bankzusammenfassung im erforderlichen Format ausgeben
        // --- Bank Summary ---
        // Interest Rate: {InterestRate}
        // Minimum Balance: {MinimumBalance}
        // Total Accounts: {TotalAccounts}
        // (Leerzeile)
        // Account: {AccountNumber}
        // Owner: {OwnerName}
        // Balance: {Balance}
        // Interest Earned: {interest}
        // (Leerzeile)
        // Account: {AccountNumber}
        // Owner: {OwnerName}
        // Balance: {Balance}
        // Interest Earned: {interest}
    }
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-C#-Compiler