반응형
상경 계열을 졸업해 신분 세탁을 위해 ..
국비 교육 과정 중 혼자서 뱅킹어카운트 를 만들어 보았다..
지금도 여전히 잘 모르지만 C++에 대해서 7개월이 넘게 지난 지금 다시 보니 ..
내 코드도 내가 모르겟다. ...
이글을 보고 조금이나 도움이 되시는 분들 혹은 .. 피드백을 주실 분들 댓글로 달아주세요 ..
#include <iostream>
#include <cstring>
using namespace std;
class AccountInfo {
private:
char name[10];
int account;
int balance;
public:
AccountInfo(char *name,int account) :
account(account),balance(0) {
strcpy(this->name, name); //이것이 중요합니다 배열이기 때문에 카피(strcpy) 해야합니다
}
virtual void deposit(int nMoney){this->balance=this->balance+nMoney;}
};
class Nmal_info : public AccountInfo
{
private:
double bank_rate;
public:
Nmal_info(char *name,int account_Num,int bank_rate) :bank_rate(bank_rate),AccountInfo(name,account_Num) {} //생성자는 함수다.
virtual void deposit(int nMoney){
AccountInfo::deposit(nMoney); //
AccountInfo::deposit(nMoney*(bank_rate/100));
} // 입금 받은 금액을 넣을라고 구현한 함수.
};
class Credit_info : public Nmal_info {
private:
int credit;
public:
Credit_info(char *name,int account_Num,int bank_rate,int credit)
:credit(credit),Nmal_info(name,account_Num,bank_rate){}
void deposit(int nMoney){}
};
class handler {
private:
AccountInfo *account[10]; // 추상화 클래스를 만들어야 하므로 상위 클래스를 주소로 변환 했다유
int nNum;
public:
handler():nNum(0){}
~handler(){}
void credit_account();
void nomal_account();
void openAccount();
void addAccount(AccountInfo * account);
void showmenu();
};
void handler::addAccount(AccountInfo *newAccount){
account[nNum++]=newAccount;
}
void handler::credit_account(){
int account;
char name[10];
cout<<"신용계좌개설할게유"<<endl;
cout<<"계좌번호를 입력하세유."<<endl;
cin>>account;
cout<<"이름을 입력하세유"<<endl;
cin>>name;
}
void handler::nomal_account(){
int account=0;
int money=0;
double ratio=0;
char name[10];
cout<<"보통예금 계좌개설 할게유"<<endl;
cout<<"계좌번호를 입력하세유."<<endl;
cin>>account;
cout<<"이름을 입력하세유"<<endl;
cin>>name;
cout << "금액을 입력하세유" <<endl;
cin >> money;
cout << "이자율을 입력하세유" <<endl;
cin >> ratio;
Nmal_info *normal_Account=new Nmal_info(name,account,ratio); //새로운 객체 namal_info가 nomal account로 된다.
normal_Account->deposit(money); // 입금받은 금액을 보내는 함수 .
addAccount(normal_Account); // 핸들러에 들어갑니다 핸들러를 주소화 시켜 놓아서 에드카운터라는 함수가 하나더 필요하다.
}// 그래서 핸들러 에 카운터를 셀수 있는 함수를 하나더 만들었다. 모든객체를 쓸때 필요하다 항상 함수 addacount 함수를 호출 해줘야 한다.
void handler::openAccount(){
int num;
cout<<"1.보통예금 계좌개설. 2.신용계좌 개설"<<endl;
cin>>num;
if(num==1){
nomal_account();
}else if(num==2){
credit_account();
}
}
void handler::showmenu(){
int num;
cin>>num;
cout << "================" << endl;
cout << "1.계좌개설" << endl;
cout << "2.입금" << endl;
cout << "3.출금" << endl;
cout << "4.계좌정보 전체 출력" << endl;
cout << "5.프로그램 종료" << endl;
cout << "=================" << endl;
if (num == 1) {
openAccount();
}
else if (num == 2) {
}else if (num == 3) {
}
}
int main(){
handler handler; //객체 이기 때문에 구조체 마냥 타입의 이름을 줘야해유 .
handler.showmenu();
}
반응형
'프로그래밍 _공부자료. > C++ 공부' 카테고리의 다른 글
백준넷 10828번 push pop back 이중연결 리스트로 구현하기. (0) | 2019.11.28 |
---|---|
배열의 숫자 의 차 최대치 구하기. (0) | 2019.11.27 |
역 방향 행렬 360도 회전하기. (0) | 2019.11.25 |
OR연산을 활용한 비트 연산 배열에 담아 출력하기! (0) | 2019.11.24 |
C++ 행렬 회전 하기. (0) | 2019.11.24 |
댓글