코린이
Day12 본문
오늘은 Day1부터 Day11까지 배운 내용을 응용하여 문제 하나를 만들었다. 문제를 풀기 전에 함수 2가지를 배웠다.
system("명령어") 이 함수는 콘솔 환경에서 사용되는 명령어를 실행시켜주는 함수로 cls 콘솔을 지워준다.
Sleep(멈추는 시간) 시간 단위는 1/1000초로 콘솔 창을 잠깐 재워주는 함수이다.(멈춰 준다고 볼 수 있다.)
system, Sleep 두 함수를 사용하기 위해서는 windows.h 헤더 파일을 선언해 줘야 한다.
Q1) 카드 잔액을 충전 및 사용할 수 있는 프로그램을 만드시오.(처음 초기 금액은 만 원이 있는 상태로 진행)
#include<stdio.h>
#include<Windows.h>
int main() {
int num = 10000;
int choice;
int sum;
int use;
while (1) {
printf("카드 잔액: %d\n", num);
printf("1.카드 잔액 충전\n");
printf("2.카드 잔액 사용\n");
printf("3.종료\n");
printf("입력: ");
scanf("%d", &choice); // 1,2,3번 중에 하나선택
system("cls"); //콘솔 지움
switch (choice) {
case 1: //1번 입력
printf("카드 잔액:%d\n", num);
printf("충전 금액 입력:");
scanf("%d", &sum);
printf("%d원 충전해서 %d원 사용가능합니다.\n", sum, num += sum);
Sleep(1000); //1초간 멈춤
system("cls");
break;
case 2: //2번 선택
while (1) { //while문 무한루프
printf("--------------------\n");
printf("카드 잔액 사용:%d\n", num);
printf("사용 금액 입력:");
scanf("%d", &use);
printf("--------------------\n");
if (use <= num) { //사용값이 기존값보다 작거나 같을때
printf("--------------------\n");
printf("%d원 사용하고 %d원 남았습니다.\n", use, num -= use);
printf("--------------------\n");
Sleep(1000);
system("cls");
break;
} else {
printf("--------------------\n");
printf("잔액이 부족합니다.\n", use > num);
printf("--------------------\n");
Sleep(1000);
system("cls");
}
}
break;
}
if (choice == 3) {
printf("--------------------\n프로그램을 종료합니다.\n--------------------\n");
exit(0);
}
}
return 0;
}
코드 설명으로는 기본 금액이 만 원이고 1,2,3번 중 하나를 선택하여 카드 잔액을 사용하거나 충전하는 코드를 만들었다. 1번을 실행했을 때 금액을 입력하면 그 숫자만큼 충전이 되어 다시 초기 화면이 나오고 2번을 실행했을 때 카드 사용을 할 수 있는 화면이 나오는 것을 반복하는 코드이다 프로그램을 끝내고 싶을 때는 3번을 실행시키면 코드가 끝난다.
카드에 1000원이 추가된 것을 보여준다 Sleep 함수를 써서 1초 뒤면 사라지면서 1000원이 추가된 초기 화면으로 돌아간다
사용 금액을 2000을 입력했을 때 화면으로 사용하고 나머지 돈을 알려준다. 마찬가지로 Sleep 함수를 사용하여 1초 뒤면 사용된 금액을 제외하고 초기 화면으로 돌아간다.
3번을 실행시키면 프로그램이 종료된다.
(별거 아닌 것처럼 보여도 저 코드를 만드는 데 1시간 반 넘게 걸렸다. 처음에는 if 문으로 사용하다 중간 점검 때 선생님이 if 문 사용하지 말라고 해서 내 1시간이 날아갔다ᄒᄒᄒ;; 그래서 swith 문을 사용하여 다시 코드를 만들었고 선생님 도움 없이 한 번에 통과하였고 내심 2시간 반이 안 아까웠다)