Menu
Coddy logo textTech

Logika wpłaty

Część sekcji Programowanie obiektowe ścieżki C w Coddy. Lekcja 24 z 61.

challenge icon

Wyzwanie

Łatwy

Czas dodać pierwszą prawdziwą operację bankową do modułu Account: możliwość wpłacania środków! Funkcja wpłaty musi być inteligentna: powinna akceptować tylko kwoty dodatnie, chroniąc konto przed nieprawidłowymi transakcjami.

Rozbudujesz swój istniejący projekt Bank Account, dodając do modułu funkcjonalność wpłat. Funkcja wpłaty musi zweryfikować dane wejściowe przed modyfikacją ukrytego salda. To enkapsulacja chroniąca integralność danych.

Będziesz pracować z trzema plikami:

  • account.h: Rozbuduj istniejący plik nagłówkowy, dodając nowy prototyp funkcji: deposit. Funkcja powinna przyjmować wskaźnik do Account i kwotę typu double, a zwracać int (1 w przypadku powodzenia, 0, jeśli kwota jest nieprawidłowa). Zachowaj istniejące deklaracje funkcji create_account i destroy_account.
  • account.c: Zaimplementuj funkcję deposit obok istniejącego konstruktora i destruktora. Wpłata powinna się powieść tylko wtedy, gdy kwota jest dodatnia (większa od zera). Jeśli kwota jest prawidłowa, dodaj ją do ukrytego salda i zwróć 1. Jeśli kwota wynosi zero lub jest ujemna, odrzuć ją, zwracając 0 i nie zmieniając salda.
  • main.c: Zademonstruj działanie funkcji wpłaty, tworząc konto i wykonując kilka operacji wpłaty, z których część będzie prawidłowa, a część nieprawidłowa, aby pokazać, że walidacja działa poprawnie.

Otrzymasz trzy dane wejściowe: ID konta (liczbę całkowitą), prawidłową kwotę wpłaty (liczbę dodatnią) oraz nieprawidłową kwotę wpłaty (zero lub liczbę ujemną).

W pliku głównym utwórz konto o podanym ID i wypisz potwierdzenie. Następnie najpierw spróbuj wpłacić nieprawidłową kwotę: wypisz, czy operacja się powiodła, i zaznacz, że saldo powinno pozostać bez zmian. Potem wpłać prawidłową kwotę i wypisz wynik operacji. Na koniec zniszcz konto i potwierdź zwolnienie zasobów.

Wypisz wynik w tym formacie:

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

Gdzie 1001 to ID konta, -50.00 to nieprawidłowa kwota, a 200.00 to prawidłowa kwota. Formatuj wszystkie kwoty z dokładnością do dwóch miejsc po przecinku, używając %.2f.

Funkcja wpłaty pełni rolę strażnika. Gwarantuje, że tylko prawidłowe transakcje mogą modyfikować ukryte saldo konta. Chociaż nie możesz jeszcze zobaczyć salda (dodamy funkcję pobierającą je w późniejszej lekcji), możesz mieć pewność, że nieprawidłowe wpłaty są prawidłowo odrzucane.

Spróbuj swoich sił

#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;
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator C online