Menu
Coddy logo textTech

Kontostand abrufen

Teil des Abschnitts Objektorientierte Programmierung der C-Journey von Coddy. Lektion 26 von 61.

challenge icon

Aufgabe

Einfach

Dein Bankkonto ist fast fertig! Du hast die Möglichkeit erstellt, Konten anzulegen, Geld einzuzahlen und Geld abzuheben, aber ein entscheidender Teil fehlt noch. Momentan kann externer Code den aktuellen Kontostand nicht anzeigen. Beheben wir das, indem wir eine Getter-Funktion hinzufügen.

Ein Getter ist der richtige Weg, um verborgene Daten in einem gekapselten Modul zugänglich zu machen. Anstatt das Kontostandfeld öffentlich zu machen (wodurch die Kapselung verletzt würde), stellst du eine schreibgeschützte Funktion bereit, die den Wert zurückgibt. Dadurch bleiben die Daten geschützt, während weiterhin ein kontrollierter Zugriff möglich ist.

Du arbeitest weiterhin mit deinen drei Dateien:

  • account.h: Füge einen neuen Funktionsprototyp hinzu: get_balance. Diese Funktion erhält einen const Account * (da sie die Daten nur liest und niemals verändert) und gibt ein double zurück, das den aktuellen Kontostand darstellt. Behalte alle deine bisherigen Deklarationen bei.
  • account.c: Implementiere die Funktion get_balance. Sie gibt einfach das verborgene Kontostandfeld des Kontos zurück. Beachte, dass diese Funktion auf die internen Daten zugreifen kann, weil sie in derselben Datei wie die Struktur definiert ist: Externer Code kann weiterhin nicht direkt hineinschauen.
  • main.c: Jetzt kannst du endlich sehen, was in deinen Konten passiert! Erstelle ein Konto, führe einige Transaktionen durch und verwende deinen neuen Getter, um den Kontostand bei jedem Schritt anzuzeigen.

Du erhältst vier Eingaben: die Kontonummer (eine Ganzzahl), einen Einzahlungsbetrag, einen Auszahlungsbetrag und einen zweiten Einzahlungsbetrag.

Erstelle in deiner Hauptdatei ein Konto und gib seinen anfänglichen Kontostand aus (sollte 0.00 sein). Zahle den ersten Betrag ein und gib den neuen Kontostand aus. Hebe den angegebenen Betrag ab und gib den Kontostand erneut aus. Zahle schließlich den zweiten Betrag ein und gib den endgültigen Kontostand aus. Zerstöre anschließend das Konto.

Gib die Ausgabe in diesem Format aus:

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

Dabei ist 1001 die Kontonummer, und die Kontostände entsprechen: anfänglich (0.00), nach der Einzahlung von 500.00, nach der Abhebung von 300.00 und nach der Einzahlung weiterer 150.00. Formatiere alle Kontostandwerte mit zwei Dezimalstellen unter Verwendung von %.2f.

Mit diesem Getter bietet dein Bankkonto-Modul nun einen vollständigen, kontrollierten Zugriff auf die Kontodaten: Benutzer können den Kontostand anzeigen, ihn aber nur über deine validierten Einzahlungs- und Auszahlungsfunktionen ä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: Gib den Anfangssaldo mit get_balance aus
    
    deposit(account, deposit1);
    // TODO: Gib den Kontostand nach der ersten Einzahlung aus
    
    withdraw(account, withdraw_amount);
    // TODO: Gib den Kontostand nach der Abhebung aus
    
    deposit(account, deposit2);
    // TODO: Gib den Kontostand nach der zweiten Einzahlung aus
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-C-Compiler