요약 - 은행 계좌 관리 프로그램
Coddy C# 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 70개 중 18번째.
챌린지
쉬움클래스 아키텍처에 대해 배운 모든 내용을 통합하는 완전한 은행 계좌 관리 시스템을 구축해 보겠습니다. 인스턴스 데이터(각 계좌마다 고유함)와 정적 데이터(모든 계좌에서 공유됨)를 적절히 구분하는 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.0Alice의 이름에서 여분의 공백이 제거되고, 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}
}
}