//======================================헤더파일=============================================
#include <iostream>
using namespace::std;
const int NAME_LEN=20;
class Account
{
int id;
int balance;
char *name;
public:
Account(){}
Account(int id,char* name,int balance)
{
this->id=id;
this->balance=balance;
this->name = new char[strlen(name)+1];
strcpy(this->name,name);
}
//Account(const Account& A)//매모리공간의 적 할당으로 인한 복사 생성자의 추가
//{
// this->id=id;
// this->balance=balance;
// this->name = new char[strlen(A.name)+1];
// strcpy(this->name,A.name);
//}
~Account()
{
delete []name;
}
int GetID(){return id;}
int GetBalance(){return balance;}
void AddMoney(int val)
{
balance+=val;
}
void MinMoney(int val)
{
balance-=val;
}
char *GetName()
{
return name;
}
void ShowAllData()
{
cout<<"계좌 ID: "<<id<<endl;
cout<<"이 름:"<<name<<endl;
cout<<"잔 액:"<<balance<<endl;
}
};
void PrintMenu();
void MakeAccount();
void Deposit();
void Withdraw();
void Inquire();
//==========================CPP파일====================================================
#include "OOP2.h"
Account* pArray[100];
int index=0;
void PrintMenu()
{
cout<<"매뉴"<<endl;
cout<<"1 MakeAccount"<<endl;
cout<<"2 DEPOSIT"<<endl;
cout<<"3 WITHDRAW"<<endl;
cout<<"4 INQUIRE"<<endl;
cout<<"5 EXIT"<<endl;
}
void MakeAccount()
{
int id;
char name[NAME_LEN];
int balance;
cout<<"계좌 개설"<<endl;
cout<<"계좌 id :"; cin>>id;
cout<<"이름 : "; cin>>name;
cout<<"입금액: ";cin>>balance;
pArray[index++]=new Account(id,name,balance);
}
void Deposit(){
int money;
int id;
cout<<"입금계좌 입력:"; cin>>id;
cout<<"입금액:"; cin>>money;
for(int i=0; i<index; i++)
{
if(pArray[i]->GetID()==id)
{
pArray[i]->AddMoney(money);
cout<<"입금완료"<<endl;
return;
}
}
cout<<"유효하지 않은 ID 입니다"<<endl;
}
void Withdraw()//출금전에 id와 잔고를 검사한 다음 문제가 없으면 출금을 한다.
{
int money;
int id;
cout<<"계좌ID :"; cin>>id;
cout<<"출금액 :"; cin>>money;
for(int i=0; i<index; i++)
{
if(pArray[i]->GetID()==id)
{
if(pArray[i]->GetBalance()<money)
{
cout<<"잔액이 부족합니다"<<endl;
return;
}
pArray[i]->MinMoney(money);
cout<<"출금완료"<<endl;
return;
}
cout<<"유효하지 않는 id 입니다"<<endl;
}
}
void Inquire()//전체 잔액 조회
{
for(int i=0; i<index;i++)
pArray[i]->ShowAllData();
}
//==============================main 파일============================================================
#include "OOP2.h"
enum{MAKE=1,DEPOSIT,WITHDRAW,INQUIRE,EXIT};
int main()
{
int choice;
while(1)
{
PrintMenu();
cout<<"선택 : "<<endl;
cin>>choice;
switch(choice)
{
case MAKE:
MakeAccount();
break;
case DEPOSIT:
Deposit();
break;
case WITHDRAW:
Withdraw();
break;
case INQUIRE:
Inquire();
break;
case EXIT:
return 0;
default:
cout<<"잘못된 선택"<<endl;
break;
}
}
return 0;
}
'C++' 카테고리의 다른 글
오버라이딩 (0) | 2012.04.06 |
---|---|
const 와 mutible (0) | 2012.03.21 |
디폴트 맴버 변수 구현에 관한 예제 (0) | 2012.03.15 |
은행관리 oop 연습문제 Project (열혈강의) -main.cpp (0) | 2012.03.10 |
은행관리 oop 연습문제 Project(열혈강의) - make_account.cpp (0) | 2012.03.10 |