공부 하면서 작성 중.
#include<iostream>
#define DEBUG 0 //1 = on, 0 = off;
#define ID 100 //계좌생성 최대 갯수
using std::cout;
using std::cin;
using std::endl;
class Account{
int *id;
char *name;
int *balance;
public:
Account(int _id, char *_name, int _balance);
~Account();
void PutPrice(int balance);
void GetPrice(int balance);
void Print_balance();
void Error_check(int user_id, int unique_id);
};
void Account::Error_check(int user_id, int unique_id){
if(user_id>unique_id)cout<<"계좌번호를 잘못 입력 하셨습니다."<<endl<<endl;
}
void Account::Print_balance(){
cout<<endl<<this->name<<"님의 계좌 정보 입니다."<<endl;
cout<<"아이디 : "<<*this->id<<endl;
cout<<"이름 : "<<this->name<<endl;
cout<<"잔액 : "<<*this->balance<<endl<<endl;
}
void Account::GetPrice(int balance){
if(balance>=0)*this->balance-=balance;
}
void Account::PutPrice(int balance){
if(balance>=0)*this->balance+=balance;
}
Account::Account(int _id, char *_name, int _balance){
this->id=new int;
this->name=new char[strlen(_name)+1];
this->balance=new int;
(*(this->id))=_id;
strcpy(name, _name);
(*(this->balance))=_balance;
cout<<endl<<"생성된 계좌번호 : "<<*this->id<<endl<<endl;
#if DEBUG == 1
cout<<"(D)입력 정보를 표시합니다. : "<<endl;
cout<<"아이디 : "<<*this->id<<endl;
cout<<"이름 : "<<this->name<<endl;
cout<<"잔액 : "<<*this->balance<<endl;
#endif
}
Account::~Account(){
delete id;
delete []name;
delete balance;
}
int main(void){
int unique_id=0;
while(1){
int user_id;
int select;
int balance=0;
char name[10];
Account *User[ID];
cout<<"1. 계좌계설"<<endl;
cout<<"2. 입 금"<<endl;
cout<<"3. 출 금"<<endl;
cout<<"4. 잔 액"<<endl;
cout<<"현재 생성된 계좌 갯수 : "<<unique_id<<endl;
cout<<"메뉴를 선택해 주세요 : "; cin>>select;
cout<<endl;
switch(select){
case 1:
cout<<"계좌를 계설합니다. 아래 정보를 입력해 주세요"<<endl;
cout<<"(만일 초기 입금액이 없을시 0원으로 입력됩니다.)"<<endl;
cout<<"이름 : ";cin>>name;
cout<<"입금 : ";cin>>balance;
User[unique_id]=new Account(unique_id, name, balance);
unique_id++;
if(unique_id>=ID){
cout<<"계좌번호의 한계에 다달았습니다."<<endl<<"관리자에게 문의 하세요."<<endl<<endl;
return 0;
}
break;
case 2:
cout<<"계좌번호 : ";cin>>user_id;
cout<<"입금액 : ";cin>>balance;
User[user_id]->Error_check(user_id, unique_id);
User[user_id]->PutPrice(balance);
User[user_id]->Print_balance();
break;
case 3:
cout<<"계좌번호 : ";cin>>user_id;
cout<<"출금액 : ";cin>>balance;
User[user_id]->Error_check(user_id, unique_id);
User[user_id]->GetPrice(balance);
User[user_id]->Print_balance();
break;
case 4:
cout<<"계좌번호 : ";cin>>user_id;
User[user_id]->Error_check(user_id, unique_id);
User[user_id]->Print_balance();
break;
default:
cout<<"종료합니다."<<endl<<endl;
return 0;
break;
}
}
return 0;
}