//Banking System Ver 0.1//

#pragma warning(disable:4996)

#include <iostream>

#include <cstring>


using std::cin;

using std::cout;

using std::endl;


const int NAME_LEN = 20;


void ShowMenu(void);         //메뉴출력

void MakeAccount(void); //계좌개설

void DepositMoney(void); //예  금

void withdrawMoney(void);    //출    금

void ShowAll(void); //전체출력


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


typedef struct

{

int ID; //ID

int Money; //잔액

char userName[NAME_LEN]; //이름

}Account;


Account bank[100]; //고객명단 100명

int count = 0; //저장된 고객 수


int main(void)

{

int choice;

while (1)

{

ShowMenu();

cout << "선택: ";

cin >> choice;

cout << endl;


switch (choice)

{

case MAKE:

MakeAccount();

break;

case DEPOSIT:

DepositMoney();

break;

case WITHDRAW:

withdrawMoney();

break;

case ALLINFO:

ShowAll();

break;

case EXIT:

cout << "프로그램을 종료합니다." << endl;

return 0;

default:

cout << "잘못된 입력입니다." << endl;

break;

}

}

}


void ShowMenu(void)         //메뉴출력

{

cout << "-----Menu-----" << endl;

cout << "1. 계좌개설" << endl;

cout << "2. 입    금" << endl;

cout << "3. 출    금" << endl;

cout << "4. 계좌정보 전체 출력" << endl;

cout << "5. 프로그램 종료" << endl;

}


void MakeAccount(void) //계좌개설

{

int id;

char name[NAME_LEN];

int money;


cout << "[계좌개설]" << endl;

cout << "계좌ID: "; cin >> id;

cout << "이  름: "; cin >> name;

cout << "입금액: "; cin >> money;

cout << endl;


bank[count].ID = id;

bank[count].Money = money;

strcpy(bank[count].userName, name);

count++;

}

void DepositMoney(void) //예  금

{

int money;

int id;

cout << "[입  금]" << endl;

cout << "계좌ID: ";cin >> id;

cout << "입금액: ";cin >> money;


for (int i = 0;i < count;i++)

{

if (bank[i].ID == id)

{

bank[i].Money += money;

cout << "입금완료" << endl << endl;

return;

}

}

cout << "유효하지 않은 ID입니다." << endl<<endl;

}

void withdrawMoney(void)    //출    금

{

int money;

int id;

cout << "[출  금]" << endl;

cout << "계좌ID: ";cin >> id;

cout << "출금액: ";cin >> money;


for (int i = 0;i < count;i++)

{

if (bank[i].ID == id)

{

if (bank[i].Money < money)

{

cout << "잔액부족" << endl << endl;

return;

}

bank[i].Money -= money;

cout << "출금완료" << endl << endl;

return;

}

}

cout << "유효하지 않은 ID입니다." << endl << endl;

}

void ShowAll(void) //전체출력

{

for (int i = 0;i < count;i++)

{

cout << "계좌ID: " << bank[i].ID << endl;

cout << "이  름: " << bank[i].userName << endl;

cout << "잔  액: " << bank[i].Money << endl;

}

}