Menu
Coddy logo textTech

요약 - 은행 계좌 관리 프로그램

Coddy C# 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 70개 중 18번째.

challenge icon

챌린지

쉬움

클래스 아키텍처에 대해 배운 모든 내용을 통합하는 완전한 은행 계좌 관리 시스템을 구축해 보겠습니다. 인스턴스 데이터(각 계좌마다 고유함)와 정적 데이터(모든 계좌에서 공유됨)를 적절히 구분하는 BankAccount 클래스를 만들고, 유효성 검사를 사용하여 계좌를 유효한 상태로 유지합니다.

코드를 구성하기 위해 두 개의 파일을 생성합니다:

  • BankAccount.cs: Banking 네임스페이스 내에 BankAccount 클래스를 정의합니다. 계좌에는 다음이 포함되어야 합니다:
    • 100으로 설정된 const 필드 MinimumBalance - 모든 계좌가 유지해야 하는 최소 잔액
    • 0.03m으로 시작하는 static 필드 InterestRate (decimal) - 모든 계좌에서 공유됨
    • 존재하는 계좌 수를 추적하는 static 필드 TotalAccounts (int)
    • readonly 필드 AccountNumber (string) - 생성 시 한 번 설정되며 절대 변경되지 않음
    • 설정 시 공백을 제거(trim)하는 OwnerName 속성과 프라이빗 백킹 필드 _ownerName
    • 잔액이 MinimumBalance 미만으로 내려가는 것을 방지하는 Balance 속성과 프라이빗 백킹 필드 _balance (누군가 더 낮게 설정하려고 하면 MinimumBalance로 유지)
    • 계좌 번호, 소유자 이름, 초기 잔액을 인자로 받아 TotalAccounts를 증가시키는 생성자
    • 공유 이자율을 업데이트하는 정적 메서드 SetInterestRate(decimal rate)
    • 잔액에 이자율을 곱한 값을 반환하는 메서드 CalculateInterest()
  • Program.cs: 메인 파일에서 입력값을 사용하여 두 개의 은행 계좌를 생성하고, 이자율을 업데이트한 후, 공유 은행 데이터와 함께 계좌 정보를 표시합니다.

일곱 개의 입력을 받게 됩니다:

  • 첫 번째 계좌 번호
  • 첫 번째 소유자 이름
  • 첫 번째 초기 잔액
  • 두 번째 계좌 번호
  • 두 번째 소유자 이름
  • 두 번째 초기 잔액
  • 새로운 이자율 (0.05와 같은 decimal 형태)

출력은 다음 형식으로 인쇄하십시오:

--- Bank Summary ---
Interest Rate: {InterestRate}
Minimum Balance: {MinimumBalance}
Total Accounts: {TotalAccounts}

Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}

Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}

예를 들어, 입력값이 ACC001, Alice Smith , 500, ACC002, Bob Jones, 50, 0.05인 경우 출력은 다음과 같아야 합니다:

--- Bank Summary ---
Interest Rate: 0.05
Minimum Balance: 100
Total Accounts: 2

Account: ACC001
Owner: Alice Smith
Balance: 500
Interest Earned: 25.0

Account: ACC002
Owner: Bob Jones
Balance: 100
Interest Earned: 5.0

Alice의 이름에서 여분의 공백이 제거되고, Bob의 잔액 50이 최소 잔액인 100으로 상향 조정된 것을 확인하세요. 이자는 계좌 생성 후 설정된 업데이트된 이율 0.05를 사용하여 계산됩니다.

직접 해보기

using System;
using Banking;

class Program
{
    public static void Main(string[] args)
    {
        // 첫 번째 계좌를 위한 입력 읽기
        string accountNumber1 = Console.ReadLine();
        string ownerName1 = Console.ReadLine();
        decimal balance1 = Convert.ToDecimal(Console.ReadLine());
        
        // 두 번째 계좌를 위한 입력 읽기
        string accountNumber2 = Console.ReadLine();
        string ownerName2 = Console.ReadLine();
        decimal balance2 = Convert.ToDecimal(Console.ReadLine());
        
        // 새로운 이자율 읽기
        decimal newRate = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: 입력값을 사용하여 두 개의 BankAccount 객체 생성
        
        // TODO: 정적 메서드를 사용하여 이자율 업데이트
        
        // TODO: 요구된 형식으로 은행 요약 출력
        // --- Bank Summary ---
        // Interest Rate: {InterestRate}
        // Minimum Balance: {MinimumBalance}
        // Total Accounts: {TotalAccounts}
        // (빈 줄)
        // Account: {AccountNumber}
        // Owner: {OwnerName}
        // Balance: {Balance}
        // Interest Earned: {interest}
        // (빈 줄)
        // Account: {AccountNumber}
        // Owner: {OwnerName}
        // Balance: {Balance}
        // Interest Earned: {interest}
    }
}

객체 지향 프로그래밍의 모든 레슨