티스토리 뷰

책의 내용을 그대로 따왔습니다.

은행계좌 관리 프로그램.
기능 1. 계좌 개설
기능 2. 입금
기능 3. 출금
기능 4. 전체 고객 잔액 조회

*ID(통장 계좌번호)는 중복되지 아니한다(계좌 개설시 중복되는 계좌 번호의 입력이 없을 것이라는 가정).
* 입금 및 출금액은 무조건 0보다 크다(고객이 항상 0이상의 값만을 입력 할 것이라는 가정).
*고객의 계좌에 관한 정보는 계좌번호, 고객이름, 고객의 잔액, 이렇게 세 가지만 저장 및 관리한다.

/*
 Banking System v1.0
 Written by SW. YOON.
*/
#include <iostream>

using namespace std;
const int NAME_LEN=20;

typedef struct _Account
{
 int id;      // 계좌번호
 int balance;    // 잔  액
 char name[NAME_LEN];  // 고객 이름
} Account;

Account pArray[100];   // Account 저장을 위한 배열
int index=0;     // 저장된 Account 수

void PrintMenu();    // 메뉴 출력
void MakeAccount();    // 계좌 개설을 위한 함수
void Deposit();     // 입   금
void Withdraw();    // 출    금
void Inquire();     // 잔액 조회

enum{MAKE=1, DEPOSIT, WITHDRAW, INQUIRE, EXIT};

int main(void)
{
 int choice;
 
 while(1)
 {
  PrintMenu();
  cout<<"선택 : ";
  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<<"Illegal selection.. "<<endl;
   break;
  }
 }
 return 0;
}

void PrintMenu()   //메뉴 출력
{
 cout<<"---Menu-------"<<endl;
 cout<<"1. 계좌 개설 "<<endl;
 cout<<"2. 입금 "<<endl;
 cout<<"3. 출금 "<<endl;
 cout<<"4. 잔액 조회 "<<endl;
 cout<<"5. 프로그램 종료 "<<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].id=id;
 pArray[index].balance=balance;
 strcpy(pArray[index].name, name);

 index++;
}

void Deposit()    // 입 금
{
 int money;
 int id;

 cout<<" 계좌 ID : "; cin>>id;
 cout<<" 입금액 : ";  cin>>money;

 for(int i=0; i<index; i++)
 {
  if(pArray[i].id==id)
  {
   pArray[i].balance+=money;
   cout<<" 입금 완료 "<<endl;
   return;
  }
 }
 cout<<" 유효하지 않은 ID입니다. "<<endl;
}

void Withdraw()    // 출 금.
{
 int money;
 int id;

 cout<<" 계좌ID : " ; cin>>id;
 cout<<" 출금액 : " ; cin>>money;

 for(int i=0; i<index; i++)
 {
  if(pArray[i].id==id)
  {
   if(pArray[i].balance<money)
   {
    cout<< "잔액 부족"<<endl;
    return;
   }
   pArray[i].balance-=money;
   cout<<"출금 완료 "<<endl;
   return;
  }
 }
 cout<<"유효하지 않은 ID입니다."<<endl;
}

void Inquire()    // 전체 고객의 정보(잔액) 조회
{
 for(int i=0; i<index; i++)
 {
  cout<<" 계좌ID : "<<pArray[i].id<<endl;
  cout<<" 이 름 : "<<pArray[i].name<<endl;
  cout<<" 잔 액 : "<<pArray[i].balance<<endl;
 }
}

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함