본문 바로가기
프로그래밍 _공부자료./C++ 공부

은행 ATM기 C++로 작성.

by 대구부자 2019. 11. 25.
반응형

 

상경 계열을 졸업해 신분 세탁을 위해 ..

국비 교육 과정 중 혼자서 뱅킹어카운트 를 만들어 보았다..

 

지금도 여전히 잘 모르지만 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();

}

 

반응형

댓글