Language/C++ & openGL
C++ account BankAccount class deposit, withdraw, 계좌 이체
javapp 자바앱
2019. 1. 10. 06:00
728x90
#include <iostream>
#include <string>
using namespace std;
class BankAccount { // 은행 계좌
private:
int accountNumber; // 계좌 번호
string owner; // 예금주
int balance; // 잔액을 표시하는 변수
public:
void setAccountNumber(int aNumber);
void setOwner(string myowner);
void setBalance(int amount); // balance에 대한 설정자
int getBalance(); // balance에 대한 접근자
void deposit(int amount); // 입금 함수
void withdraw(int amount); // 인출 함수
void print(); // 현재 상태 출력
int transfer(int amount, BankAccount otherAccount);
};
void BankAccount::setAccountNumber(int aNumber) { accountNumber = aNumber; }
void BankAccount::setOwner(string myowner) { owner = myowner; }
void BankAccount::setBalance(int amount){balance = amount;}
int BankAccount::getBalance(){return balance;}
void BankAccount::deposit(int amount)
{
balance += amount;
}
void BankAccount::withdraw(int amount)
{
balance -= amount;
}
void BankAccount::print()
{
cout << "잔액은 " << balance << "입니다." << endl;
}
int BankAccount::transfer(int amount, BankAccount otherAccount) // 이체
{
if (balance > amount) {
balance -= amount; // withdraw(amount)
otherAccount.deposit(amount); //다른 계좌에 이체
return amount;
}
else return 0;
}
int main() {
BankAccount account;
BankAccount account2;
account.setBalance(0); account2.setBalance(10000);
account.deposit(10000);
account.print();
account.withdraw(8000);
account.print();
account2.deposit(account.transfer(500, account2));
account.print();
account2.print();
return 0;
}
처음 짠 코드는 잔액이 구별되지 않았다.
여기서 생성자를 추가해서 계좌 번호 예금주를 추가(디폴트) 해 보았다.
#include <iostream>
#include <string>
using namespace std;
class BankAccount { // 은행 계좌
private:
string accountNumber; // 계좌 번호
string owner; // 예금주
int balance; // 잔액을 표시하는 변수
public:
BankAccount(string aNumber, string myowner, int amount)
{
setAccountNumber(aNumber); //보안성을 올린 생성자
setOwner(myowner);
setBalance(amount);
}
void setAccountNumber(string aNumber);
void setOwner(string myowner);
void setBalance(int amount); // balance에 대한 설정자
int getBalance(); // balance에 대한 접근자
void deposit(int amount); // 입금 함수
void withdraw(int amount); // 인출 함수
void print(); // 현재 상태 출력
int transfer(int amount, BankAccount otherAccount);
};
void BankAccount::setAccountNumber(string aNumber) { accountNumber = aNumber; }
void BankAccount::setOwner(string myowner) { owner = myowner; }
void BankAccount::setBalance(int amount){balance = amount;}
int BankAccount::getBalance(){return balance;}
void BankAccount::deposit(int amount)
{
balance += amount;
}
void BankAccount::withdraw(int amount)
{
balance -= amount;
cout <<"계좌번호" << accountNumber <<"에서 "<< amount << "원이 출금 되었습니다.\n";
}
void BankAccount::print()
{
cout <<"계좌번호 : "<< accountNumber << " "<< owner<<"님의 잔액은 " << balance << "입니다." << endl;
}
int BankAccount::transfer(int amount, BankAccount otherAccount) // 이체
{
if (balance > amount) {
cout << "계좌번호 "<<accountNumber<<"에서 "<< otherAccount.accountNumber<<" 으로 "<<amount << "원을 계좌 이체합니다.\n";
balance -= amount; // withdraw(amount)
otherAccount.deposit(amount); //다른 계좌에 이체
return amount;
}
else return 0;
}
int main() {
BankAccount account("111-111","김김김",0);
BankAccount account2("222-222","이이이",10000);
account.deposit(10000);
account.print();
account.withdraw(8000);
account.print();
account2.print();
account2.deposit(account.transfer(500, account2));
account.print();
account2.print();
return 0;
}
+추가로 setter 에 this 를 이용해서 초기화
가독성을 올린다.