Menu
Coddy logo textTech

Kontostand abrufen

Teil des Abschnitts Object Oriented Programming der C-Journey von Coddy — Lektion 26 von 61.

challenge icon

Aufgabe

Einfach

Ihr Bankkonto ist fast fertig! Sie haben die Möglichkeit geschaffen, Konten zu erstellen, Gelder einzuzahlen und Geld abzuheben – aber ein entscheidendes Teil fehlt noch. Momentan hat externer Code keine Möglichkeit, den aktuellen Kontostand einzusehen. Lassen Sie uns das beheben, indem wir eine Getter-Funktion hinzufügen.

Ein Getter ist der richtige Weg, um versteckte Daten in einem gekapselten Modul offenzulegen. Anstatt das Feld für den Kontostand öffentlich zu machen (was die Kapselung verletzen würde), stellen Sie eine schreibgeschützte Funktion bereit, die den Wert zurückgibt. Dies schützt die Daten und ermöglicht dennoch einen kontrollierten Zugriff.

Sie arbeiten weiterhin mit Ihren drei Dateien:

  • account.h: Fügen Sie einen neuen Funktionsprototyp hinzu: get_balance. Diese Funktion nimmt einen const Account * entgegen (da sie Daten nur liest und niemals ändert) und gibt einen double zurück, der den aktuellen Kontostand darstellt. Behalten Sie alle Ihre vorhandenen Deklarationen bei.
  • account.c: Implementieren Sie die Funktion get_balance. Sie gibt einfach das versteckte Feld für den Kontostand aus dem Konto zurück. Beachten Sie, wie diese Funktion auf die internen Daten zugreifen kann, da sie in derselben Datei wie das Struct definiert ist – externer Code kann immer noch nicht direkt hineinschauen.
  • main.c: Jetzt können Sie endlich sehen, was in Ihren Konten passiert! Erstellen Sie ein Konto, führen Sie einige Transaktionen durch und verwenden Sie Ihren neuen Getter, um den Kontostand bei jedem Schritt anzuzeigen.

Sie erhalten vier Eingaben: die account ID (eine Ganzzahl), einen Einzahlungsbetrag, einen Auszahlungsbetrag und einen zweiten Einzahlungsbetrag.

Erstellen Sie in Ihrer Hauptdatei ein Konto und geben Sie dessen anfänglichen Kontostand aus (sollte 0.00 sein). Zahlen Sie den ersten Betrag ein und geben Sie den neuen Kontostand aus. Heben Sie den angegebenen Betrag ab und geben Sie den Kontostand erneut aus. Tätigen Sie schließlich die zweite Einzahlung und geben Sie den Endstand aus. Zerstören Sie anschließend das Konto.

Geben Sie die Ausgabe in diesem Format aus:

Account 1001 created
Balance: 0.00
Balance: 500.00
Balance: 200.00
Balance: 350.00
Account destroyed

Wobei 1001 die Konto-ID ist und die Kontostände Folgendes widerspiegeln: initial (0.00), nach Einzahlung von 500.00, nach Auszahlung von 300.00 und nach einer weiteren Einzahlung von 150.00. Formatieren Sie alle Kontostandswerte mit zwei Dezimalstellen unter Verwendung von %.2f.

Mit diesem Getter bietet Ihr Bankkonto-Modul nun einen vollständigen, kontrollierten Zugriff auf die Kontodaten – Benutzer können den Kontostand sehen, ihn aber nur über Ihre validierten Funktionen für Einzahlungen und Auszahlungen ändern.

Probier es selbst

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    double deposit1;
    scanf("%lf", &deposit1);
    
    double withdraw_amount;
    scanf("%lf", &withdraw_amount);
    
    double deposit2;
    scanf("%lf", &deposit2);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    // TODO: Den Anfangskontostand mit get_balance ausgeben
    
    deposit(account, deposit1);
    // TODO: Den Kontostand nach der ersten Einzahlung ausgeben
    
    withdraw(account, withdraw_amount);
    // TODO: Den Kontostand nach der Auszahlung ausgeben
    
    deposit(account, deposit2);
    // TODO: Den Kontostand nach der zweiten Einzahlung ausgeben
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Alle Lektionen in Object Oriented Programming