728x90
반응형
c언어로 자판기 만들기 v1.3
1. gets(), scanf() -> fgets()로 변경
2. 메인 메뉴 루프 만들기, 종료 처리
3. 금액이 부족한경우 거스름돈 반환 후 금액 재입력
TODO
1. 숫자가 아닌경우 exception처리
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 | #include <stdio.h> #include <stdlib.h> #include <string.h> int strToInt(char *strValue) { int intValue = 0; int i = 0; for (i = 0; i < strlen(strValue) - 1; i++) { intValue += (strValue[i] - '0'); if (i != strlen(strValue) - 2) { intValue *= 10; } } return intValue; } void showMenu() { printf("\n| ******** MENU ******** |"); printf("\n| (1) 참깨라면 - 1,000원 |"); printf("\n| (2) 햄 버 거 - 1,500원 |"); printf("\n| (3) 콜 라 - 800원 |"); printf("\n| (4) 핫 바 - 1,200원 |"); printf("\n| (5) 초코우유 - 1,500원 |"); printf("\n| (6) 시 스 템 종 료 |"); } int getPrice() { char selectedMenu[3] = {0,}; char amount[30] = {0, }; int price = 0; while(1) { showMenu(); // 메뉴 선택 printf("\n\n=> 메뉴를 선택해주세요.: "); fgets(selectedMenu, 3, stdin); if (selectedMenu[0] == '1') { printf("\n참깨라면을 선택하셨습니다."); price = 1000; break; } else if (selectedMenu[0] == '2') { printf("\n햄버거를 선택하셨습니다."); price = 1500; break; } else if (selectedMenu[0] == '3') { printf("\n콜라를 선택하셨습니다."); price = 800; break; } else if (selectedMenu[0] == '4') { printf("\n핫바를 선택하셨습니다."); price = 1200; break; } else if (selectedMenu[0] == '5') { printf("\n초코우유를 선택하셨습니다."); price = 1500; break; } else if (selectedMenu[0] == '6') { return 0; } else { printf("\n메뉴 중에서 선택해주세요...-_-"); } } // 수량 선택 printf("\n\n=> 수량을 선택해주세요.: "); fgets(amount, 30, stdin); int amountInt = strToInt(amount); return price * amountInt; } int main() { char money[30] = {0,}; while(1) { printf("\n\n=> 돈을 넣어주세요.: "); fgets(money, 30, stdin); int price = getPrice(); if (price == 0) { printf("\n=> 시스템을 종료하겠습니다."); getchar(); return 0; } int moneyInt = strToInt(money); int change = moneyInt - price; if (change < 0) { printf("\n=> %d원이 부족합니다.-ㅠ-", change * -1); printf("\n=> 감사합니다. 거스름돈은 %d 원 입니다.^^", moneyInt); } else { printf("\n=> 감사합니다. 거스름돈은 %d 원 입니다.^^", change); } } return 0; } |
반응형
'dev > c' 카테고리의 다른 글
[C언어] srand, rand 랜덤으로 문자 생성하기 (0) | 2017.06.13 |
---|---|
[C언어] 자판기 (Vending Machine) v1.0 (1) | 2016.04.19 |
댓글