C++/열혈 C++ 프로그래밍(윤성우 저)

OOP 단계별 프로젝트 1

꾸준함. 2017. 5. 28. 18:43

/*

우리가 구현하고자 하는 것은 '은행계좌 관리 프로그램'이다. 프로젝트 1단계에서는 C스타일로 구현하는 것을 목표로 한다

구현할 기능은 다음과 같다

1.계좌개설

2.입금

3.출금

4.전체고객 잔액조회

 

프로그램을 간결하게 하기 위해서 몇가지 가정

1.통장의 계좌번호는 중복되지 아니한다(중복검사 하지 않겠다는 )

2.입금 출금액은 무조건 0보다 크다(입금 출금액의 오류검사 않겠다는 )

3.고객의 계좌정보는 계좌번호, 고객이름, 고객의 잔액, 이렇게 세가지만 저장 관리한다

4. 이상의 고객 정보 저장을 위해서 배열을 사용한다

5.계좌번호는 정수의 형태이다

*/

#include <iostream>

#include <cstring>

 

using namespace::std;

 

int Menu(void); //메뉴

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

void Deposit(int money); //입금

void Withdraw(int money); //출금

void ShowAccountInfo(void); //전체고객 잔액조회

 

typedef struct _BankAccount

{

        int AccountNumber; //계좌 번호

        char Name[20]; //고객 이름

        int Money; //고객의 잔액

}BankAccount;

 

BankAccount Arr[10]; //계좌 배열

int AccountNum = 0; //계좌 개수

 

int main(void)

{

        int money;

        while (1)

        {

               int sel = Menu();

               switch (sel)

               {

               case 1:

                       MakeBankAccount();

                       break;

               case 2:

                       cout << "입금할 금액:";

                       cin >> money;

                       Deposit(money);

                       break;

               case 3:

                       cout << "출금할 금액:";

                       cin >> money;

                       Withdraw(money);

                       break;

               case 4:

                       ShowAccountInfo();

                       break;

               case 5:

                       return 0;

               default:

                       cout << "잘못된 번호를 입력하셨습니다" << endl;

               }

        }

        return 0;

}

 

int Menu(void)

{

        int sel;

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

        cout << "1.계좌개설" << endl << "2.입금" << endl << "3.출금" << endl<< "4.계좌정보 전체 출력" << endl << "5.프로그램 종료" << endl;

        cout << "선택";

        cin >> sel;

        return sel;

}

 

void MakeBankAccount()

{

        cout << "계좌번호 입력:";

        cin >> Arr[AccountNum].AccountNumber;

        cout << "이름 입력:";

        cin >> Arr[AccountNum].Name;

        cout << "잔액 입력:";

        cin >> Arr[AccountNum].Money;

        AccountNum++; //계좌개설 완료 다음 사람으로

}

 

void Deposit(int money)

{

        char name[20];

        cout << "고객님의 성함을 입력해주세요:";

        cin >> name;

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

        {

               if (strcmp(name, Arr[i].Name) == 0) //이름이 동일한 사람을 찾는다

               {

                       Arr[i].Money += money;

                       cout << "입금이 완료되었습니다" << endl;

               }

        }

}

 

void Withdraw(int money)

{

        char name[20];

        cout << "고객님의 성함을 입력해주세요:";

        cin >> name;

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

        {

               if (strcmp(name, Arr[i].Name) == 0)//이름이 동일한 사람을 찾는다

               {

                       Arr[i].Money -= money;

                       cout << "출금이 완료되었습니다" << endl;

               }

        }

}

 

void ShowAccountInfo(void)

{

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

        {

               cout << i+1 << "번째 고객님의 정보는 아래와 같습니다" << endl;

               cout << "이름:" << Arr[i].Name << endl;

               cout << "계좌번호:" << Arr[i].AccountNumber << endl;

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

        }

}



개발 환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


[참고] 열혈 C++ 프로그래밍 윤성우 저

반응형