[Kotlin] 4일차(2) - 간단한 은행 프로그램

우선 은행의 기본적인 동작을 위해 다음의 class를 구성하였다

package com.example.bankaccountprogram

class BankAccount(var accountHolder : String, var balance : Double) {
    private val transactionHistory = mutableListOf<String>()
    

    fun deposit(amount : Double){

    }
    fun withdraw(amount: Double) {

    }
    fun displayTransactionHistory(){

    }
}

 

deposit으로 입금이 되게 할것이며, withdraw로 출금, displayTransactionHistory로 입출금 내역을 출력할 것이다

 

그리고 transactionHistory 리스트로 데이터를 저장할 것이다

 

deposit은 다음과 같이 구현하였다

fun deposit(amount : Double){
    balance += amount
    //balance = balance + amount
    transactionHistory.add("$accountHolder deposited $$amount")
}

 

다음과 같이 간단하게 구현하였으며 transactionsHistory에도 추가를 하였다

 

withdraw는 다음과 같이 구현하였다

fun withdraw(amount: Double) {
    if(amount <= balance) {
        balance -= amount
        //balance = balance + amount
        transactionHistory.add("$accountHolder withdraw $$amount")
    }
    else{
        println("You don't have funds to withdraw $$amount")
    }
}

 

현재 계좌 잔액보다 출금량이 많을경우는 가능하지 못하게 하였다

 

그리고 displayTransactionHistory는 다음과 같이 구현하였다

fun displayTransactionHistory(){
    for(transaction in transactionHistory) {
        println(transaction)
    }
}

 

transactionHistory list내에 값을 꺼내 보여주는 식으로 구현하였다

 

그리고 간단하게 다음과 같이 실행해 보았다

fun main() {
    val deniseBankAccount = BankAccount("Denis",1557.40)
    println(deniseBankAccount.accountHolder)

    deniseBankAccount.deposit(200.0)
    deniseBankAccount.withdraw(1200.00)
    deniseBankAccount.deposit(150.0)
    deniseBankAccount.deposit(300.0)

    deniseBankAccount.displayTransactionHistory()
    println("${deniseBankAccount.accountHolder}'s balance is ${deniseBankAccount.balance}")
}

 

다음의 결과를 얻을 수 있었다