Bank 구조체를 정의하여 3명의 계좌를 관리하는 프로그램을 작성하시오.
수행 화면은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
//은행 계좌 프로그램 #include <stdio.h> #define MAX_NAME_LEN 20 //최대 이름 크기 정의 #define MAX_ID_LEN 30 //최대 ID 길이 정의 typedef struct _Bank Bank;//Bank 타입명 정의 struct _Bank //구조체 _Bank 정의 { char name[MAX_NAME_LEN];//성명 char id[MAX_ID_LEN]; //계좌번호 int balance; //잔액 }; Bank banks[3] = { 0 };//3명의 계좌를 기억할 배열 선언 void input_banks();//계좌 정보 입력 함수 void run();//메뉴 선택에 따라 상호 작용 int main() { input_banks();//3명의 계좌 정보를 입력받음 run();//메뉴 선택에 따라 상호 작용 return 0; } void input_banks() { int i = 0; for (i = 0; i < 3; i++)//n명의 계좌 정보를 순차적으로 입력받음 { printf("사용자%d의 이름:", i + 1); scanf_s("%s", banks[i].name); printf("사용자%d의 계좌:", i + 1); scanf_s("%s", banks[i].id); printf("사용자%d의 잔액:", i + 1); scanf_s("%d", &(banks[i].balance)); } } int select_menu();//메뉴 선택 void show_balance();//잔액 조회 void save();//입금 void draw();//출금 void run() { int key = 0; while ((key = select_menu()) != 4)//선택한 메뉴가 4가 아니면 반복 { switch (key)//선택한 키에 따라 수행 { case 1: show_balance(); break;//1일 때 조회 case 2: save(); break; //2일 때 입금 case 3: draw(); break; //2일 때 출금 default: printf("잘못된 숫자를 입력하셨습니다.\n"); break;//잘못 선택 } } } int select_menu() { int key = 0; printf("메뉴를 선택하세요.<잔액조회(1), 저축(2), 인출(3), 종료(4)>:"); scanf_s("%d", &key); return key; } void show_balance() { int num = 0; printf("사용자 번호를 선택하세요(1~3):"); scanf_s("%d", &num); if ((num < 1) || (num>3))//유효하지 않은 번호일 때 { printf("잘못 선택하였습니다.\n"); return; } //계좌 정보 출력 printf("%s님의 계좌번호 : %s입니다.\n", banks[num - 1].name, banks[num - 1].id); printf("%s님의 현재 잔약 : %d원 입니다.\n", banks[num - 1].name, banks[num - 1].balance); } void save() { int num = 0; int value=0; printf("사용자 번호를 선택하세요(1~3):"); scanf_s("%d", &num); if ((num < 1) || (num>3))//유효하지 않은 번호일 때 { printf("잘못 선택하였습니다.\n"); return; } printf("%s님의 저축 금액 입력:", banks[num - 1].name); scanf_s("%d", &value); banks[num - 1].balance += value;//저축 금액을 잔고에 더함 } void draw() { int num = 0; int value = 0; printf("사용자 번호를 선택하세요(1~3):"); scanf_s("%d", &num); if ((num < 1) || (num>3))//유효하지 않은 번호일 때 { printf("잘못 선택하였습니다.\n"); return; } printf("%s님의 인출 금액 입력:", banks[num - 1].name); scanf_s("%d", &value); if (value > banks[num - 1].balance)//잔액보다 인출 요청 금액이 클 때 { printf("잔액이 부족합니다.\n"); } else { banks[num - 1].balance -= value;//잔고에서 인출 금액을 뺌 } } |