3-1. 카페 주문 프로그램
문제설명
음료 종류와 수량을 입력받아 총 금액을 계산하는 카페 주문 프로그램을 작성하세요. 단, 메뉴 번호로 0을 입력하면 프로그램이 종료되도록 하세요. 프로그램은 종료 전까지 계속 주문을 받으며, 주문할 때마다 주문 결과를 출력해야 합니다.
제공메뉴의 예시는 아래와 같으며 항목은 변경 가능하다.
- 아메리카노: 3000원
- 라떼: 4000원
- 모카: 4500원
목표
- 여러 개의 함수를 조합하여 프로그램을 설계할 수 있다.
- 반복문과 함수를 함께 사용할 수 있다.
- 기능의 추상화와 역할 분리를 연습할 수 있다.
요구사항
- 반드시 여러 개의 함수로 나누어 구현할 것
- 다음 기능을 각각 함수로 나눌 것
- 메뉴 안내 출력
- 메뉴 번호 입력
- 수량 입력
- 가격 계산
- 주문 결과 출력
- 메뉴 번호는 다음과 같이 처리
- 1: 아메리카노
- 2: 라떼
- 3: 모카
- 0: 프로그램 종료
- 0이 입력되기 전까지 계속 주문을 받도록 구현할 것
- 주문 1건이 끝나면 다시 메뉴를 출력하고 다음 주문을 받도록 할 것
출력예시
========= (메뉴) ==========
1. 아메리카노 (3000원)
2. 라떼 (4000원)
3. 모카 (4500원)
0. 종료
==========================
메뉴 선택: 1
수량 입력: 2
주문 메뉴: 아메리카노
수량: 2
총 금액: 6000원
========= (메뉴) ==========
1. 아메리카노 (3000원)
2. 라떼 (4000원)
3. 모카 (4500원)
0. 종료
==========================
메뉴 선택: 2
수량 입력: 3
주문 메뉴: 라떼
수량: 3
총 금액: 12000원
========= (메뉴) ==========
1. 아메리카노 (3000원)
2. 라떼 (4000원)
3. 모카 (4500원)
0. 종료
==========================
메뉴 선택: 3
수량 입력: 2
주문 메뉴: 모카
수량: 2
총 금액: 9000원
========= (메뉴) ==========
1. 아메리카노 (3000원)
2. 라떼 (4000원)
3. 모카 (4500원)
0. 종료
==========================
메뉴 선택: 0
프로그램을 종료합니다.
코드예시
더보기
더보기
더보기
더보기
#include <stdio.h>
void print_menu(void)
{
printf("========= (메뉴) ==========\n");
printf("1. 아메리카노 (3000원)\n");
printf("2. 라떼 (4000원)\n");
printf("3. 모카 (4500원)\n");
printf("0. 종료\n");
printf("==========================\n");
}
int input_menu_number(void)
{
int menu;
scanf("%d", &menu);
return menu;
}
int input_count(void)
{
int count;
scanf("%d", &count);
return count;
}
int get_price(int menu)
{
if (menu == 1)
return 3000;
else if (menu == 2)
return 4000;
else
return 4500;
}
void print_order_result(int menu, int count, int total_price)
{
if (menu == 1)
printf("주문 메뉴: 아메리카노\n");
else if (menu == 2)
printf("주문 메뉴: 라떼\n");
else if (menu == 3)
printf("주문 메뉴: 모카\n");
printf("수량: %d\n", count);
printf("총 금액: %d원\n", total_price);
}
int main(void)
{
int menu;
int count;
int price;
int total_price;
while (1)
{
print_menu();
printf("메뉴 선택: ");
menu = input_menu_number();
if (menu == 0)
{
printf("프로그램을 종료합니다.\n");
break;
}
printf("수량 입력: ");
count = input_count();
price = get_price(menu);
total_price = price * count;
print_order_result(menu, count, total_price);
}
return 0;
}
3-2. 학생 성적 관리 프로그램
문제설명
국어, 영어, 수학 점수를 입력받아 총점, 평균, 합격 여부를 출력하는 프로그램을 작성하세요. 단, 국어 점수 입력에서 0을 입력하면 프로그램이 종료되도록 하세요. 프로그램은 종료 전까지 계속 학생의 성적을 입력받아 처리해야 합니다.
- 평균이 60 이상이면 합격
- 평균이 60 미만이면 불합격
목표
- 하나의 프로그램을 여러 기능으로 직접 나눌 수 있다.
- 반환값이 있는 함수와 없는 함수를 함께 사용할 수 있다.
- 반복문과 함수를 함께 사용할 수 있다.
요구사항
- 최소 5개 이상의 함수를 정의할 것
- 반드시 다음 기능을 각각 함수로 나눌 것
- 점수 입력
- 총점 계산
- 평균 계산
- 합격 여부 판별
- 결과 출력
- 국어 점수 입력 시 0을 입력하면 프로그램 종료
- 종료 전까지 여러 학생의 성적을 계속 입력받아 처리할 것
출력예시
국어: 70
영어: 80
수학: 60
총점: 210
평균: 70.0
합격
국어: 50
영어: 40
수학: 55
총점: 145
평균: 48.3
불합격
국어: 0
프로그램을 종료합니다.
코드예시
더보기
더보기
더보기
더보기
#include <stdio.h>
int input_score(void)
{
int score;
scanf("%d", &score);
return score;
}
int get_total(int kor, int eng, int math)
{
return kor + eng + math;
}
double get_average(int total)
{
return total / 3.0;
}
int is_pass(double average)
{
if (average >= 60)
return 1;
else
return 0;
}
void print_result(int total, double average, int pass)
{
printf("총점: %d\n", total);
printf("평균: %.1f\n", average);
if (pass == 1)
printf("합격\n");
else
printf("불합격\n");
}
int main(void)
{
int kor, eng, math;
int total;
double average;
int pass;
while (1)
{
printf("\n국어: ");
kor = input_score();
if (kor == 0)
{
printf("프로그램을 종료합니다.\n");
break;
}
printf("영어: ");
eng = input_score();
printf("수학: ");
math = input_score();
total = get_total(kor, eng, math);
average = get_average(total);
pass = is_pass(average);
print_result(total, average, pass);
}
return 0;
}
'[1] 프로그래밍1 및 실습(C언어) > 5주차. 함수' 카테고리의 다른 글
| [5주차][변수의 scope] 3단계 연습문제 (0) | 2026.04.01 |
|---|---|
| [5주차][변수의 scope] 2단계 연습문제 (0) | 2026.04.01 |
| [5주차][변수의 scope] 1단계 연습문제 - 코드읽기 (0) | 2026.04.01 |
| [5주차][함수의 정의] 2단계 연습문제 (0) | 2026.03.29 |
| [5주차][함수의 정의] 1단계 연습문제 (0) | 2026.03.29 |