Chlln's Code/C++
[C++] 01 - 6 : OOP 단계별 프로젝트 01단계
Chlln Vlln
2023. 3. 13. 22:14
구현의 예
/*
* Banking System Ver 0.1
* 작성자 : 윤성우
* 내 용 : OOP 단계별 프로젝트의 기본 틀 구성
*/
#include <iostream>
#include <cstring>
using namespace std;
const int NAME_LEN = 20;
void ShowMenu(void); // 메뉴출력
void MakeAccount(void); // 계좌개설을 위한 함수
void DepositMoney(void); // 입 금
void WithdrawMoney(void); // 출 금
void ShowAllAccInfo(void); // 잔액조회
enum { MAKE = 1, DEPOSIT, WITHDRAW, INQUIRE, EXIT };
typedef struct {
int accID, // 계좌번호
balance; // 잔 액
char cusName[NAME_LEN]; // 고객이름
} Account;
Account accArr[100]; // Account 저장을 위한 배열
int accNum = 0; // 저장된 Account 수
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 section.." << endl;
}
}
return 0;
}
void ShowMenu(void) {
cout << "-----Menu-----" << endl
<< "1. 계좌개설" << endl
<< "2. 입 금" << endl
<< "3. 출 금" << endl
<< "4. 계좌정보 전체 출력" << endl
<< "5. 프로그램 종료" << endl;
}
void MakeAccount(void) {
int id, balance;
char name[NAME_LEN];
cout << "[계좌개설]" << endl
<< "계좌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, id;
cout << "[입 금]" << endl
<< "계좌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, id;
cout << "[출 금]" << endl
<< "계좌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
<< "이 름 : " << accArr[i].cusName << endl
<< "잔 액 : " << accArr[i].balance << endl << endl;
}
}
출력 결과
-----Menu-----
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택 : 1
[계좌개설]
계좌ID : 1
이 름 : chlln
입금액 : 10000
-----Menu-----
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택 : 2
[입 금]
계좌ID : 1
입금액 : 10000
입금완료
-----Menu-----
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택 : 3
[출 금]
계좌ID : 1
출금액 : 5000
출금완료
-----Menu-----
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택 : 4
계좌ID : 1
이 름 : chlln
잔 액 : 15000
-----Menu-----
1. 계좌개설
2. 입 금
3. 출 금
4. 계좌정보 전체 출력
5. 프로그램 종료
선택 : 5