Menu
Coddy logo textTech

입금 로직

Coddy C 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 24번째.

challenge icon

챌린지

쉬움

이제 계좌 모듈에 첫 번째 실제 은행 업무인 입금 기능을 추가할 시간입니다! 입금 함수는 똑똑해야 합니다. 양수 금액만 수락하여 잘못된 거래로부터 계좌를 보호해야 합니다.

기존의 은행 계좌 프로젝트를 바탕으로 입금 기능을 추가하여 모듈을 확장합니다. 입금 함수는 숨겨진 잔액(balance)을 수정하기 전에 입력값을 검증해야 합니다. 이것이 바로 데이터의 무결성을 보호하기 위해 작동하는 캡슐화입니다.

세 개의 파일로 작업하게 됩니다:

  • account.h: 기존 헤더 파일에 새로운 함수 프로토타입인 deposit을 추가하여 확장합니다. 이 함수는 Account 포인터와 double 타입의 금액을 인자로 받으며, int를 반환해야 합니다 (성공 시 1, 금액이 유효하지 않으면 0). 기존의 create_accountdestroy_account 선언은 그대로 유지하세요.
  • account.c: 기존의 생성자 및 소멸자와 함께 deposit 함수를 구현합니다. 입금은 금액이 양수(0보다 큰 경우)일 때만 성공해야 합니다. 유효한 경우, 숨겨진 잔액에 금액을 더하고 1을 반환합니다. 금액이 0이거나 음수이면 잔액을 변경하지 않고 0을 반환하여 거부합니다.
  • main.c: 계좌를 생성하고 여러 번의 입금 작업(유효한 작업과 유효하지 않은 작업 포함)을 수행하여 입금 기능이 올바르게 작동하는지 보여줍니다.

세 가지 입력을 받게 됩니다: 계좌 ID (정수), 유효한 입금 금액 (양수), 그리고 유효하지 않은 입금 금액 (0 또는 음수).

메인 파일에서 주어진 ID로 계좌를 생성하고 확인 메시지를 출력하세요. 그런 다음 유효하지 않은 금액을 먼저 입금해 봅니다. 성공 여부를 출력하고 잔액이 변경되지 않아야 함에 유의하세요. 다음으로 유효한 금액을 입금하고 성공 결과를 출력합니다. 마지막으로 계좌를 소멸시키고 정리를 확인합니다.

출력은 다음 형식으로 하세요:

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

여기서 1001은 계좌 ID, -50.00은 유효하지 않은 금액, 200.00은 유효한 금액입니다. 모든 금액은 %.2f를 사용하여 소수점 둘째 자리까지 표시하세요.

작성한 입금 함수는 문지기 역할을 합니다. 유효한 거래만이 계좌의 숨겨진 잔액을 수정할 수 있도록 보장합니다. 아직 잔액을 직접 볼 수는 없지만(나중에 getter를 추가할 예정입니다), 유효하지 않은 입금이 적절히 거부되고 있음을 신뢰할 수 있습니다.

직접 해보기

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

Object Oriented Programming의 모든 레슨