3-1. 카페 메뉴 선택 프로그램
문제설명
카페 메뉴를 반복해서 선택할 수 있는 프로그램을 작성하시오.
사용자는 메뉴 번호를 입력하여 음료를 주문할 수 있으며, 0을 입력하면 주문을 종료한다.
메뉴는 다음과 같다.
- 1 : 아메리카노 3000원
- 2 : 라떼 4000원
- 3 : 모카 4500원
- 0 : 종료
잘못된 번호를 입력하면 “잘못 입력”을 출력하고 다시 메뉴를 선택하도록 하시오.
목표
- while문을 사용하여 메뉴를 반복 선택할 수 있다.
- if, else if, else를 사용하여 메뉴를 구분할 수 있다.
- continue와 break의 역할을 이해할 수 있다.
- 반복 입력과 누적 금액 계산을 함께 다룰 수 있다.
요구사항
- 메뉴를 반복해서 출력한다.
- 사용자가 번호를 입력하면 해당 금액을 총 금액에 더한다.
- 0을 입력하면 반복을 종료한다.
- 잘못된 번호를 입력하면 “잘못 입력”을 출력하고 다시 입력받는다.
- 주문 종료 후 총 금액을 출력한다.
출력예시
메뉴 선택
1. 아메리카노 3000
2. 라떼 4000
3. 모카 4500
0. 종료
선택: 1
현재 금액: 3000
메뉴 선택
1. 아메리카노 3000
2. 라떼 4000
3. 모카 4500
0. 종료
선택: 4
잘못 입력
메뉴 선택
1. 아메리카노 3000
2. 라떼 4000
3. 모카 4500
0. 종료
선택: 3
현재 금액: 7500
메뉴 선택
1. 아메리카노 3000
2. 라떼 4000
3. 모카 4500
0. 종료
선택: 0
총 금액: 7500
코드예시
더보기
더보기
#include <stdio.h>
int main(void)
{
int menu;
int total = 0;
while (1)
{
printf("\n메뉴 선택\n");
printf("1. 아메리카노 3000\n");
printf("2. 라떼 4000\n");
printf("3. 모카 4500\n");
printf("0. 종료\n");
printf("선택: ");
scanf("%d", &menu);
if (menu == 0)
{
break;
}
if (menu == 1)
{
total += 3000;
}
else if (menu == 2)
{
total += 4000;
}
else if (menu == 3)
{
total += 4500;
}
else
{
printf("잘못 입력\n");
continue;
}
printf("현재 금액: %d\n", total);
}
printf("총 금액: %d\n", total);
return 0;
}
3-2. 간단한 시스템 제어 프로그램 만들기
문제설명
운영체제나 임베디드 프로그램은 보통 종료되기 전까지 계속 실행되면서 사용자의 요청을 처리한다.
이와 비슷하게, 메뉴를 반복해서 보여주고 사용자의 선택에 따라 작업을 수행하는 간단한 시스템 제어 프로그램을 작성하시오.
프로그램은 다음 메뉴를 반복해서 출력한다.
- 1 : 시스템 시작
- 2 : 시스템 상태 출력
- 3 : 시스템 정지
- 0 : 프로그램 종료
각 메뉴의 동작은 다음과 같다.
- 1번을 선택하면 "시스템이 시작되었습니다."를 출력한다.
- 2번을 선택하면 현재 시스템 상태를 출력한다.
단, 시스템이 시작되지 않은 상태이면 "시스템이 시작되지 않았습니다."를 출력한다. - 3번을 선택하면 시스템을 정지시키고 "시스템이 정지되었습니다."를 출력한다.
단, 이미 정지 상태이면 "이미 정지된 상태입니다."를 출력한다. - 0번을 선택하면 "프로그램을 종료합니다."를 출력하고 반복을 종료한다.
- 그 외의 번호를 입력하면 "잘못된 입력입니다."를 출력한다.
시스템 상태는 두 가지이다.
- 시작됨
- 정지됨
처음 상태는 정지됨이다.
목표
- 반복문이 실제 프로그램의 메인 루프처럼 동작함을 이해한다.
- while문을 사용하여 종료 전까지 계속 실행되는 구조를 이해한다.
- 조건문을 사용하여 상태에 따라 다른 동작을 수행할 수 있다.
- 변수 하나로 시스템의 상태를 저장하고 변경할 수 있다.
요구사항
- while문을 사용하여 메뉴를 계속 반복 출력한다.
- scanf로 메뉴 번호를 입력받는다.
- 시스템 상태를 저장할 변수를 사용한다.
- 상태에 따라 다른 메시지를 출력한다.
- 0을 입력하면 프로그램을 종료한다.
- 잘못된 번호 입력도 처리한다.
출력예시
===== 시스템 제어 메뉴 =====
1. 시스템 시작
2. 시스템 상태 출력
3. 시스템 정지
0. 프로그램 종료
선택: 2
시스템이 시작되지 않았습니다.
===== 시스템 제어 메뉴 =====
1. 시스템 시작
2. 시스템 상태 출력
3. 시스템 정지
0. 프로그램 종료
선택: 1
시스템이 시작되었습니다.
===== 시스템 제어 메뉴 =====
1. 시스템 시작
2. 시스템 상태 출력
3. 시스템 정지
0. 프로그램 종료
선택: 2
현재 상태: 실행 중
===== 시스템 제어 메뉴 =====
1. 시스템 시작
2. 시스템 상태 출력
3. 시스템 정지
0. 프로그램 종료
선택: 3
시스템이 정지되었습니다.
===== 시스템 제어 메뉴 =====
1. 시스템 시작
2. 시스템 상태 출력
3. 시스템 정지
0. 프로그램 종료
선택: 0
프로그램을 종료합니다.
코드예시
더보기
더보기
#include <stdio.h>
int main(void)
{
int menu;
int is_running = 0; // 0: 정지, 1: 시작
while (1)
{
printf("\n===== 시스템 제어 메뉴 =====\n");
printf("1. 시스템 시작\n");
printf("2. 시스템 상태 출력\n");
printf("3. 시스템 정지\n");
printf("0. 프로그램 종료\n");
printf("선택: ");
scanf("%d", &menu);
if (menu == 1)
{
is_running = 1;
printf("시스템이 시작되었습니다.\n");
}
else if (menu == 2)
{
if (is_running == 1)
{
printf("현재 상태: 실행 중\n");
}
else
{
printf("시스템이 시작되지 않았습니다.\n");
}
}
else if (menu == 3)
{
if (is_running == 1)
{
is_running = 0;
printf("시스템이 정지되었습니다.\n");
}
else
{
printf("이미 정지된 상태입니다.\n");
}
}
else if (menu == 0)
{
printf("프로그램을 종료합니다.\n");
break;
}
else
{
printf("잘못된 입력입니다.\n");
}
}
return 0;
}
'[1] 프로그래밍1 및 실습(C언어) > 4주차. 반복문, 조건문' 카테고리의 다른 글
| [4주차] [반복문, 조건문] 통합 연습문제 (0) | 2026.03.23 |
|---|---|
| [4주차] [조건문] 2단계 연습문제 - 코드읽기 (0) | 2026.03.23 |
| [4주차] [조건문] 1단계 연습문제 - 코드읽기 (0) | 2026.03.23 |
| [4주차] [반복문] 2단계 연습문제 (0) | 2026.03.23 |
| [4주차] [반복문] 1단계 연습문제 (0) | 2026.03.23 |