본문 바로가기
dev/c

[C언어] 자판기 (Vending Machine) v1.0

by 이이제이 2016. 4. 19.
728x90
반응형

c언어로 자판기 만들기 v1.3


c언어로 자판기 만들기 v1.0

1. 금액 입력

2. 메뉴 선택

3. 수량 선택

4. 거스름돈 출력

TODO

1. 메인 메뉴 루프 만들기/종료

2. 숫자가 아닌경우 exception처리

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
#include <stdio.h>
#include <stdlib.h>

int strToInt(char *strValue) {
	int intValue = 0;
	int i = 0;
	for (i = 0; i < strlen(strValue); i++) {
		//intValue += (strValue[i] - '0') *  pow(10.0, (double)(strlen(strValue) - i - 1));
		intValue += (strValue[i] - '0');
		if (i != strlen(strValue) - 1) {
			intValue *= 10;
		}
	} 
	return intValue;
}

int getChange(char* money, int price) {
	int moneyInt = strToInt(money);
	return moneyInt - price;
}

void showMenu(char* selectedMenu, char* amount) {
	printf("\n\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\n=> 메뉴를 선택해주세요.: ");
	scanf("%c", selectedMenu);
	printf("\n=> 수량을 선택해주세요.: ");
	scanf("%s", amount);
}

int main() {
	char money[100];
	char selectedMenu;
	char amount[100];
	int price = 0;
	
	printf("=> 돈을 넣어주세요.: ");
	gets(money);
	
	while(1) {
		showMenu(&selectedMenu, amount);
		int amountInt = strToInt(amount);
		if (selectedMenu == '1') {
			printf("\n참깨라면을 선택하셨습니다.");
			price = 1000 * amountInt;
			break;
		} else if (selectedMenu == '2') {
			printf("\n햄버거를 선택하셨습니다.");
			price = 1500 * amountInt;
			break;
		} else if (selectedMenu == '3') {
			printf("\n콜라를 선택하셨습니다.");
			price = 800 * amountInt;
			break;
		} else if (selectedMenu == '4') {
			printf("\n핫바를 선택하셨습니다.");
			price = 1200 * amountInt;
			break;
		} else if (selectedMenu == '5') {
			printf("\n초코우유를 선택하셨습니다.");
			price = 1500 * amountInt;
			break;
		} else {
			printf("\n메뉴 중에서 선택해주세요...-_-");
		}
	}	
	
	int change = getChange(money, price);
	
	if (change < 0) {
		printf("\n\n=> 금액이 부족합니다.-ㅠ-");
	} else {
		printf("\n\n=> 감사합니다. 거스름돈은 %d 원 입니다.^^", change);
	}
	
	return 0;
}


반응형

'dev > c' 카테고리의 다른 글

[C언어] srand, rand 랜덤으로 문자 생성하기  (0) 2017.06.13
[C언어] 자판기 (Vending Machine) v1.3  (0) 2016.04.20

댓글