Menu
Coddy logo textTech

Einzahlungslogik

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

challenge icon

Aufgabe

Einfach

Es ist an der Zeit, Ihrem Account-Modul die erste echte Bankoperation hinzuzufügen – die Möglichkeit, Gelder einzuzahlen! Eine Einzahlungsfunktion muss intelligent sein: Sie sollte nur positive Beträge akzeptieren und Ihr Konto so vor ungültigen Transaktionen schützen.

Aufbauend auf Ihrem bestehenden Bankkonto-Projekt werden Sie das Modul um eine Einzahlungsfunktionalität erweitern. Ihre Einzahlungsfunktion muss die Eingabe validieren, bevor sie den verborgenen Kontostand ändert – das ist Kapselung, die zum Schutz der Integrität Ihrer Daten dient.

Sie werden mit drei Dateien arbeiten:

  • account.h: Erweitern Sie Ihren vorhandenen Header durch Hinzufügen eines neuen Funktionsprototyps: deposit. Diese Funktion sollte einen Account-Pointer und einen double Betrag entgegennehmen und einen int zurückgeben (1 für Erfolg, 0, wenn der Betrag ungültig ist). Behalten Sie Ihre bestehenden Deklarationen für create_account und destroy_account bei.
  • account.c: Implementieren Sie die deposit-Funktion zusammen mit Ihrem vorhandenen Konstruktor und Destruktor. Die Einzahlung sollte nur erfolgreich sein, wenn der Betrag positiv (größer als Null) ist. Wenn er gültig ist, addieren Sie den Betrag zum verborgenen Kontostand und geben Sie 1 zurück. Wenn der Betrag Null oder negativ ist, lehnen Sie ihn ab, indem Sie 0 zurückgeben, ohne den Kontostand zu ändern.
  • main.c: Demonstrieren Sie Ihre Einzahlungsfunktionalität, indem Sie ein Konto erstellen und mehrere Einzahlungsvorgänge durchführen – einige gültig, andere ungültig –, um zu zeigen, dass Ihre Validierung korrekt funktioniert.

Sie erhalten drei Eingaben: die account ID (eine Ganzzahl), einen gültigen Einzahlungsbetrag (eine positive Zahl) und einen ungültigen Einzahlungsbetrag (Null oder negativ).

Erstellen Sie in Ihrer Hauptdatei ein Konto mit der angegebenen ID und geben Sie eine Bestätigung aus. Versuchen Sie dann zuerst, den ungültigen Betrag einzuzahlen – geben Sie aus, ob dies erfolgreich war, und beachten Sie, dass der Kontostand unverändert bleiben sollte. Zahlen Sie als Nächstes den gültigen Betrag ein – geben Sie das Erfolgsresultat aus. Zerstören Sie schließlich das Konto und bestätigen Sie die Bereinigung.

Geben Sie die Ausgabe in diesem Format aus:

Account 1001 created
Deposit -50.00: 0
Deposit 200.00: 1
Account destroyed

Wobei 1001 die Account-ID ist, -50.00 der ungültige Betrag und 200.00 der gültige Betrag. Formatieren Sie alle Beträge mit zwei Dezimalstellen unter Verwendung von %.2f.

Ihre Einzahlungsfunktion fungiert als Gatekeeper – sie stellt sicher, dass nur gültige Transaktionen den verborgenen Kontostand des Kontos ändern können. Auch wenn Sie den Kontostand noch nicht sehen können (wir werden in einer späteren Lektion einen Getter hinzufügen), können Sie darauf vertrauen, dass ungültige Einzahlungen ordnungsgemäß abgelehnt werden.

Probier es selbst

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

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Alle Lektionen in Object Oriented Programming