Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DB 추측 방법
- 암호생성
- SQL Injection
- 가성비노트북
- OSI 7Layer
- 100만원이하
- SIBAL
- 과제
- 칼럼수찾기
- 가변 페이지 사이즈
- 교수님제발
- 'or1=1
- 90만원대
- page_size
- Host IP
- 웹취약점
- 취약점종류
- SQL 실습
- 기초
- DB 종류 찾기
- 보호기법
- 리버싱기초
- Network
- ip class
- c언어
- BOB9기
- 웹해킹기초
- 드림핵
- Network IP
- https://youtu.be/quLIdcHgi1k?t=694
Archives
- Today
- Total
us1s
C언어_프로그래밍 자판기 본문
/*
Version ...
1.1 구체적인 알고리즘 작성
1.2 출력 인터페이스 작성 및 메뉴 선정
1.3 switch문 작성_1
1.4 _2
1.5 인터페이스, 출력값 정리
1.6 금액 투입 작성
1.7 C6001 에러 수정
1.8 무한루프 발생 -> 수정 요함
2.0 전체적인 개편
3.0 무한루프로 인한 재 작성
3.1 전체적인 코드 및 필요없는 변수 제거
3.2 주석 추가
3.3 정상작동 확인
*/
//Version_1.8
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <windows.h>
int money, result;
void start() // 커피 메뉴 출력과 동시에 구매여부 표시
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ ┃\n");
printf("┃ 안녕하세요. 늑머님 커피 자동판매기입니다. ┃\n");
printf("┃ ┃\n");
printf("┃ ========================메뉴판=========================┃\n");
printf("┃ ┃\n");
printf("┃ 1. Regular Coffee : 300원");
if(result>=300)
{
printf(" 구매 가능");
}
else
{
printf(" 구매 불가");
}
printf(" ┃\n");
printf("┃ 2. Special Coffee : 500원");
if (result >= 500)
{
printf(" 구매 가능");
}
else
{
printf(" 구매 불가");
}
printf(" ┃\n");
printf("┃ 3. Sugar Coffee : 1000원");
if (result >= 1000)
{
printf(" 구매 가능");
}
else
{
printf(" 구매 불가");
}
printf(" ┃\n");
printf("┃ 4. Black Coffee : 2000원");
if (result >= 2000)
{
printf(" 구매 가능");
}
else
{
printf(" 구매 불가");
}
printf(" ┃\n");
printf("┃ ┃\n");
printf("┃ 현재 잔액 : %d 원\n", result);
printf("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n");
printf("┃ 구매하실려면 해당 메뉴의 번호를 입력해주세요. ┃\n");
printf("┃ 추가 금액을 투입하시려면 0 번을 입력해주세요. ┃\n");
printf("┃ 종료하시려면 X 키를 입력해주세요. ┃\n");
printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n->");
}
int input() //돈 투입, 입력대기
{
int er = 0; //에러값 : 잘못된 돈투입 3회 연속 발생 시, 화면 전환 및 무한루프 탈출
while (1)
{
money = 0;
printf("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫\n");
printf("┃ ┃\n");
printf("┃ 안녕하세요. 늑머님 커피 자동판매기입니다. ┃\n");
printf("┃ ┃\n");
printf("┃ 돈을 투입해 주세요. (투입가능 금액 10원 ~ 1000원) ┃\n");
printf("┃ ┃\n");
printf("┃ X 키를 눌러 종료가 가능합니다. ┃\n");
printf("┃ ┃\n");
printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n->");
scanf_s("%d", &money); // 돈 입력
if ((money >= 10) && (money <= 1000))
{
er = 0; //에러 값 초기화
printf("%d원 투입하셨습니다.\n", money);
result = result + money;
Sleep(1000);
return 0;
}
else
{
er++; //에러값 누적
system("cls"); //깔끔한 화면 정리용 함수
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ ┃\n");
printf("┃ [경고] 잘못된 금액입니다. 다시 시도해주세요. ┃\n");
printf("┃ ┃\n");
printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
if (er == 3)
{
break;
}
continue;
}
}
}
void cof() //커피 그림 출력
{
system("cls"); //깔끔한 화면 정리용 함수
printf(" , , W W W , \n");
printf(" , , W W W , , \n");
printf(", , Y Y Y , \n");
printf(" , BZZZZZZZZZZZZZZ , \n");
printf(" , #Z8 ZZZZZw \n");
printf(", Z Z ZZ ZZ , \n");
printf(" Z Z ZZ ZZ \n");
printf(" , Zj ZW Z8 1Zw \n");
printf(" ZZ ZZy ZZZZw \n");
printf(", , wZZ jZZ , \n");
printf(" , ZZZZZZZZZZZj , \n");
printf("\n");
printf(" , EZZZZZZZZZZZZZZZZZZw , \n");
Sleep(500);
system("cls"); //깔끔한 화면 정리용 함수
printf(" , W W W , \n");
printf(" , , W W W , , \n");
printf(" , , Y Y Y ,, ,\n");
printf(" , BZZZZZZZZZZZZZZ , \n");
printf(" , #Z8 ZZZZZw \n");
printf(", Z Z ZZ ZZ \n");
printf(" , Z Z ZZ ZZ \n");
printf(" Zj ZW Z8 1Zw , \n");
printf(" ZZ ZZy ZZZZw \n");
printf(", , wZZ jZZ , \n");
printf(" , ZZZZZZZZZZZj , \n");
printf("\n");
printf(" EZZZZZZZZZZZZZZZZZZw , \n");
Sleep(500);
}
int main()
{
//DOS 창 크기 설정
system("mode con cols=61 lines=35");
char menu = -1; //C6001 에러 방지 메모리 선언
char end = -1;
input();
while (1) {
if ((menu == 'x') || (menu == 'X'))
break;
start(); // 커피 종류 선택 화면 출력
scanf(" %c", &menu); // 커피 종류 입력
system("cls"); //깔끔한 화면 정리용 함수
switch (menu) // 커피 출력 알고리즘
{
case '0':
input();
break;
case '1': // menu == 1 일경우
while (result < 300) // while 문 money가 300원 이하일 경우
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ 잔액이 부족합니다. 돈을 더 투입하세요. ┃\n");
printf("┃ 현재 잔액은 %d원 입니다.\n", result);
input();
}
result = result - 300;
printf("Regular Coffee를 선택하셨습니다.\n");
printf("주문하신 상품을 준비하는 중입니다.\n");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..\n");
Sleep(700);
cof();
cof();
printf("Regular Coffee가 나왔습니다.\n");
break;
case '2': // menu == 2 일경우
while (result < 500) // while 문 money가 500원 이하일 경우
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ 잔액이 부족합니다. 돈을 더 투입하세요. ┃\n");
printf("┃ 현재 잔액은 %d원 입니다.\n", result);
input();
}
result = result - 500;
printf("Special Coffee를 선택하셨습니다.\n");
printf("주문하신 상품을 준비하는 중입니다.\n");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..\n");
Sleep(700);
cof();
cof();
printf("Special Coffee가 나왔습니다.\n");
break;
case '3': // menu == 3 일경우
while (result < 1000) // while 문 money가 1000원 이하일 경우
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ 잔액이 부족합니다. 돈을 더 투입하세요. ┃\n");
printf("┃ 현재 잔액은 %d원 입니다.\n", result);
input();
}
result = result - 1000;
printf("Sugar Coffee를 선택하셨습니다.\n");
printf("주문하신 상품을 준비하는 중입니다.\n");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..\n");
Sleep(700);
cof();
cof();
printf("Sugar Coffee가 나왔습니다.\n");
break;
case '4': // menu == 4 일경우
while (result < 2000) // while 문 money가 2000원 이하일 경우
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ 잔액이 부족합니다. 돈을 더 투입하세요. ┃\n");
printf("┃ 현재 잔액은 %d원 입니다.\n", result);
input();
}
result = result - 2000;
printf("Black Coffee를 선택하셨습니다.\n");
printf("주문하신 상품을 준비하는 중입니다.\n");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..");
Sleep(100);
printf("..\n");
Sleep(700);
cof();
cof();
printf("Black Coffee가 나왔습니다.\n");
break;
case 'x':
case 'X': // menu == X 일 경우
printf("정말 종료하시겠습니까? ( Y / N )\n ->");
scanf(" %c", &end);
if ((end == 'y') || (end == 'Y'))
{
printf("이용해 주셔서 감사합니다.\n\n\n", result); //거스름돈
if (result > 0)
{
printf("자판기에 남아있는 잔액 : %d원 반환합니다.\n\n\n", result);
result -= result;
}
break; // 프로그램 종료
}
else
{
menu = -1; //메뉴값 초기화하여 재선택 가능
continue;
}
default: // 위 경우가 아닌 다른 경우
printf("\n올바른 값을 입력하세요\n");
continue;
}
}
return 0;
}
'cODING' 카테고리의 다른 글
[ERROR] python syntax error near unexpected token error (0) | 2021.05.20 |
---|---|
C언어_프로그래밍 전화번호부 (0) | 2020.07.11 |
C언어_프로그래밍 암호 생성 & 저장 (0) | 2020.07.08 |
C언어_프로그래밍 계산기 (0) | 2020.06.23 |