#include <iostream>
using namespace std;
const int NAME_LEN = 20;
#define SIZE 10
struct Account {
        int id; //계좌번호
        int balance; //잔액
        char name[NAME_LEN]; //고객이름, const int NAME_LEN = 20;
};
typedef struct Account Account;
int PrintMenu();
void MakeAccount(Account *acc, int *count);
void Deposit(Account *acc, int *count);
void Withdraw(Account *acc, int *count);
void Remainder(Account *acc, int *count);
void PrintAll(Account *acc);

void main() {
        Account acc[SIZE];
        int count = 0;
        while(1) {
                int menuNum = PrintMenu();
                switch(menuNum)  //선택된 거래에 해당하는 함수 호출
                {
                case 1:
                        MakeAccount(acc, &count);
                        break; 
                case 2: 
                        Deposit(acc, &count); 
                        break;
                case 3: 
                        Withdraw(acc, &count);
                        break;
                case 4: 
                        Remainder(acc, &count);
                        break;
                case 5:
                        PrintAll(acc);
                        break;
                case 6: 
                        cout << "은행계좌 관리 프로그램을 종료합니다.\n" << endl;
                        exit(1);
                        break;
                        
                default:          //선택 오류
                        cout << "잘못된 번호입니다.\n\n" << endl;
                        PrintMenu();  //다시 메뉴 함수 호출
                }
        }
}
int PrintMenu() {
        int menuNum; //메뉴번호변수
        cout << "번호를 입력하여 기능을 수행하세요\n" << endl;
        cout << "기능 1 : 계좌개설\n기능 2 : 입  금\n기능 3 : 출  금\n기능 4 : 잔액조회\n기능 5 : 전체고객 정보조회\n기능 6 : 종  료\n" << endl;
        cin >> menuNum;

        return menuNum;
}
void MakeAccount(Account *acc, int *count) {

        cout << "개설할 계좌번호를 입력하세요\n";
        cin >> acc[*count].id;
        cout << "고객님의 성함을 입력하세요(공백없이)\n"; 
        cin >> acc[*count].name;
        acc[*count].balance = 0;  //잔액 초기화

        cout << "\n" << acc[*count].name <<  "님의 계좌가 만들어졌습니니다.\n";
        cout << "\n계좌번호 :" << acc[*count].id << " \n잔액 : " << acc[*count].balance << "원\n";
        (*count)++;
}

void Deposit(Account *acc, int *count) {
        int bal;
        cout << "입금할 계좌번호를 입력하세요" << endl;
        cin >> acc[*count].id;
        cout << "입금금액을 입력하세요" << endl;
        cin >> bal;
        acc[*count].balance + bal;
        cout << acc[*count].balance << "를 입금합니다\n" << endl;
        
}
void Withdraw(Account *acc, int *count) {
        int outBalance;
        cout << "출금계좌를 입력하세요.\n" << endl;
        cin >> acc[*count].id;
        cout << "출금금액을 입력하세요" << endl;
        cin >> outBalance;
        cout << outBalance << "를 출금합니다\n" << endl;
        acc[*count].balance -= outBalance;
        
}
void Remainder(Account *acc, int *count) {
        cout << "잔액을 확인할 계좌를 입력하세요\n" << endl;
        cin >> acc[*count].id;
        cout << "잔액은" << acc[*count].balance << "원 입니다" << endl;
}
void PrintAll(Account *acc) {
        cout << "모든계좌정보를 출력합니다.\n" << &acc << endl;

}

입출금할때 함수안에 변수선언해서 해야되??
해봤는데 계속 이상한값나오네.. 입출금 함수랑 맨마지막 모든계좌정보 출력함수 어떻게 완성시켜야되?