
프로그램 설명
'은행계좌 관리 프로그램'
프로젝트 01단계에서는 C 스타일로 구현하는 것을 목표로 한다. 구현할 기능은 다음과 같다.
기능 1. 계좌개설
기능 2. 입 금
기능 3. 출 금
기능 4. 전체고객 잔액조회
그리고 프로그램의 간결성을 위해 몇가지 가정을 하겠다.
- 통장의 계좌번호는 중복되지 아니한다
(중복검사 하지 않겠다는 뜻).
- 입금 및 출금액은 무조건 0보다 크다
(입금 및 출금액의 오류검사 안겠다는 뜻).
- 고객의 계좌정보는 계좌번호, 고객이름,
고객의 잔액, 이렇게 세가지만 저장 및 관리한다.
- 둘 이상의 고객 정보 저장을 위해 배열을 사용한다.
- 계좌번호는 정수의 형태이다.
실행의 예
-----Menu------
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택: 1
[계좌개설]
계좌ID: 428
이 름: 김민성
입금액: 15000
-----Menu------
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택: 2
[입 금]
계좌ID: 428
입금액: 70
입금완료
-----Menu------
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택: 4
계좌ID: 428
이 름: 김민성
잔 액: 15070
자 이제 구현해보자!!
구현과정
메뉴를 위한 함수를 선언해보자!
void ShowMenu(void); // 메뉴출력
void MakeAccount(void); // 계좌개설을 위한 함수
void DepositMoney(void); // 입 금
void WithdrawMoney(void); // 출 금
void ShowAllAccInfo(void); // 잔액조회
각 메뉴 선택을 위해 enum 함수를 이용해보자.
enum {MAKE=1, DEPOSIT, WITHDRAW, INQUIRE, EXIT};
고객의 계좌정보를 저장하기 위한 구조체와 이에 대한 배열을 만들어보자.
typedef struct
{
int accID; // 계좌번호
int balance; // 잔 액
char cusName[NAME_LEN]; // 고객이름
} Account;
Account accArr[100]; // Account 저장을 위한 배열
int accNum=0; // 저장된 Account 수
메뉴를 출력하기 위한 함수를 정의해보자
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 balance;
cout<<"[계좌개설]"<<endl;
cout<<"계좌ID: "; cin>>id;
cout<<"이 름: "; cin>>name;
cout<<"입금액: "; cin>>balance;
cout<<endl;
accArr[accNum].accID=id;
accArr[accNum].balance=balance;
strcpy(accArr[accNum].cusName, name);
accNum++;
}
입금을 위한 함수를 정의해보자
void DepositMoney(void)
{
int money;
int id;
cout<<"[입 금]"<<endl;
cout<<"계좌ID: "; cin>>id;
cout<<"입금액: "; cin>>money;
for(int i=0; i<accNum; i++)
{
if(accArr[i].accID==id)
{
accArr[i].balance+=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<accNum; i++)
{
if(accArr[i].accID==id)
{
if(accArr[i].balance<money)
{
cout<<"잔액부족"<<endl<<endl;
return;
}
accArr[i].balance-=money;
cout<<"출금완료"<<endl<<endl;
return;
}
}
cout<<"유효하지 않은 ID 입니다."<<endl<<endl;
}
계좌정보 전체 출력을 위한 함수를 정의해보자
void ShowAllAccInfo(void)
{
for(int i=0; i<accNum; i++)
{
cout<<"계좌ID: "<<accArr[i].accID<<endl;
cout<<"이 름: "<<accArr[i].cusName<<endl;
cout<<"잔 액: "<<accArr[i].balance<<endl<<endl;
}
}
자 이제 마지막으로 main함수를 작성해보자.
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 INQUIRE:
ShowAllAccInfo();
break;
case EXIT:
return 0;
default:
cout<<"Illegal selection.."<<endl;
}
}
return 0;
}
while함수와 switch-case를 이용해 메뉴선택을 구현했다.