OOP프로젝트 5단계

♪C++ 2010. 11. 2. 01:07

답좀 본게 아쉽지만 생각보다 별문제 없이 쉽게 끝낸거 같다....

#include<iostream>
using std::cout;
using std::endl;
using std::cin;

class account
{
 int id;
 int money;
 char *name;

public:
 account()
 {};

 account(const account & a)    //깊은 복사생성자
 {  
  this->id=a.id;
  this->money=a.money;
  this->name=new char[strlen(a.name)+1];
  strcpy(this->name,a.name);
 }
 
 account(int id,int money,char *name)
 {
  this->id=id;
  this->money=money;
  this->name=new char[strlen(name)+1];
  strcpy(this->name,name);
 }
 ~account()
 {
  delete []name;
 }
 void showdata(int i) const;
 void target(int _id);     //입금
 void target2(int _id);     //출금
 
};
void account::target2(int _id)
{
 int _money;
 if(id==_id)
 {
  cout<<"출금하실 금액 입력 : ";
  cin>>_money;
  if(money<_money)
   cout<<"잔액이 부족합니다"<<endl;
  else
   money=money-_money;
 }
 
}
void account::target(int _id)
{
 int _money;
 if(id==_id)
 {
  cout<<"입금하실 금액 입력 : ";
  cin>>_money;
  money=money+_money;
 }
 
}
void account::showdata(int i) const
{

  cout<<"------------------------"<<endl;
  cout<<i<<"번째 고객"<<endl;
  cout<<"ID : "<<id<<endl;
  cout<<"금액 : "<<money<<endl;
  cout<<"이름 : "<<name<<endl;
  cout<<"------------------------"<<endl;
 
}
class accmanager : public account
{
 int humen;        //1명부터 들어감
 account *arr[100];
public:
 accmanager()
 {
  humen=0;
 }
 void account_inquiry();      //계좌 조회
 void bank_account();      //계좌 계설
 void deposit();        //입금 디포지트
 void windrawal();       //출금
};
void accmanager::account_inquiry()      //계좌 조회
{
 
 for(int i=1;i<=humen;i++)
 {
  if(arr[i]==NULL)
  {
   cout<<"계좌가 더 이상 없습니다"<<endl;
   break;
  }
  arr[i]->showdata(i);
 }
}
void accmanager::deposit()        //입금 디포지트
{
 int ID;
 int money;
 cout<<"입금시킬 계좌번호를 입력해주세요"<<endl;
 cin>>ID;
 for(int i=1;i<=humen;i++)
 {
  arr[i]->target(ID);
 
 }
 
}
void  accmanager::windrawal()
{
 int ID;
 int money;
 cout<<"출금시킬 계좌번호를 입력해 주세요"<<endl;
 cin>>ID;
 for(int i=1;i<=humen;i++)
 {
  arr[i]->target2(ID);
 }
}

 


int main()
{
 accmanager person;
 int humen=1;
 while(1)
 {
 int choice;
 cout<<"1.계좌 계설"<<endl;
 cout<<"2.입  금"<<endl;
 cout<<"3.출  금"<<endl;
 cout<<"4.전체 고객 잔액 조회"<<endl;
 cout<<"5.종료"<<endl;

 cout<<"1~5사이의 숫자를 입력해주세요"<<endl;
 cin>>choice;

  switch(choice)
  {
  case 1 :
//   cout<<person.humen<<"번째 고객"<<endl;
   cout<<humen<<"번째 고객"<<endl;
   cout<<"계좌개설을 선택하셨습니다"<<endl;
   person.bank_account(); 
   humen++;
   break;
  case 2 :
   cout<<"입금을 선택하셨습니다"<<endl;
   person.deposit();
 
   break;
  case 3 :
   cout<<"출금을 선택하셨습니다"<<endl;
   person.windrawal();
 
   break;
  case 4 :
   cout<<"전체 고객 잔액 조회 선택하셨습니다."<<endl;
   person.account_inquiry();
  
   break;
  case 5 :
   cout<<"프로그램이 종료됩니다"<<endl;
   break;
  default :  
   cout<<"잘못 입력하셧습니다. 1~5사이의 숫자를 입력해주세요"<<endl;
 
   break;
  }
 }
}
void accmanager::bank_account()        ///계좌 계설

 int id;
 int money;
 char name[20];
 cout<<"계좌번호 :";
 cin>>id;
 cout<<"입금액 : ";
 cin>>money;
 cout<<"이름 : ";
 cin>>name;
 humen++;
 arr[humen]=new account(id,money,name);

}

'♪C++' 카테고리의 다른 글

4996 에러  (0) 2018.08.14
c++ 연습 8-1  (0) 2010.11.14
C++ 열혈강의 7-2 연습문제  (3) 2010.11.01
열혈강의 c++ 연습문제 7-1  (1) 2010.10.31
C++ BasicInheri1  (1) 2010.10.31