2-1. 키오스크 메뉴 관리 프로그램
문제설명
카페 키오스크에서는 메뉴명과 가격을 배열로 관리하고, 메뉴 목록을 확인하여, 특정 메뉴의 가격을 수정한다.
목표
- 문자열 포인터 배열을 사용하여 메뉴명을 저장할 수 있다.
- 정수형 배열과 포인터를 함께 사용할 수 있다.
- 포인터 연산을 이용하여 배열 값을 수정할 수 있다.
- 반복문을 사용하여 메뉴 목록을 출력할 수 있다.
- 함수로 기능을 분리하여 프로그램을 구현할 수 있다.
요구사항
다음 조건을 만족하는 프로그램을 작성하시오.
- 메뉴명 4개를 문자열 포인터 배열로 선언하시오.
(예: Americano, Latte, Mocha, Tea) - 각 메뉴의 가격을 저장할 정수형 배열을 선언하시오.
- 모든 메뉴를 출력하는 print_menu() 함수를 작성하시오.
출력 형식은 아래 예시와 같이 메뉴번호, 메뉴명, 가격이 함께 출력되어야 한다. - 메뉴 번호와 새로운 가격을 입력받아 해당 메뉴의 가격을 수정하는
update_price() 함수를 작성하시오. - update_price() 함수에서는 반드시
arr[i] 방식이 아닌 포인터 연산 (*(p + i)) 을 사용하시오. - 가격 수정 후 전체 메뉴를 다시 출력하시오.
출력예시
1. Americano - 3000원
2. Latte - 4000원
3. Mocha - 4500원
4. Tea - 2500원
가격을 수정할 메뉴 번호 입력: 2
새 가격 입력: 4500
수정된 메뉴 목록
1. Americano - 3000원
2. Latte - 4500원
3. Mocha - 4500원
4. Tea - 2500원
힌트
더보기
1. 배열 선언
char *menus[4] = {"Americano", "Latte", "Mocha", "Tea"};
int prices[4] = {3000, 4000, 4500, 2500};
2. print_menu() 함수
for (int i = 0; i < 4; i++) {
printf("%d. %s - %d원\n", i + 1, menus[i], prices[i]);
}
- 반복문 사용
- 메뉴번호 + 메뉴명 + 가격 출력
3. update_price() 함수
int *p = prices;
*(p + (menu_number - 1)) = new_price;
- 포인터 사용
4. main()
- 메뉴 출력
- 수정할 번호 입력
- 새 가격 입력
- 가격 수정 함수 호출
- 수정 후 다시 출력
예상코드
더보기
#include <stdio.h>
#define MENU_COUNT 4
char *menus[MENU_COUNT] = {
"Americano",
"Latte",
"Mocha",
"Tea"
};
int prices[MENU_COUNT] = {
3000, 4000, 4500, 2500
};
void print_menu(void)
{
for (int i = 0; i < MENU_COUNT; i++) {
printf("%d. %s - %d원\n",
i + 1,
menus[i],
prices[i]);
}
}
void update_price(int menu_number, int new_price)
{
int *p = prices;
*(p + (menu_number - 1)) = new_price;
}
int main(void)
{
int menu_number;
int new_price;
print_menu();
printf("\n가격을 수정할 메뉴 번호 입력: ");
scanf("%d", &menu_number);
printf("새 가격 입력: ");
scanf("%d", &new_price);
update_price(menu_number, new_price);
printf("\n수정된 메뉴 목록\n");
print_menu();
return 0;
}
'[1] 프로그래밍1 및 실습(C언어) > 9주차. 포인터와 배열' 카테고리의 다른 글
| [9주차][포인터와 배열] 1단계 연습문제 - 개념 (0) | 2026.04.24 |
|---|