C

[C언어] 실습: 커피 자판기 프로그램 구현하기

sweetnew 2021. 3. 28. 23:31
반응형

커피 자판기 프로그램 구현하기


<입력 및 출력 형식>

=== Coffee Machine ===

1. 블랙커피(컵, 물, 커피)

2. 프림커피(컵, 물, 커피, 프림)

3. 밀크커피(컵, 물, 커피, 프림, 설탕)

4. 설탕커피(컵, 물, 커피, 설탕)

5. 재료보충

======================

<기본 입출력 현황 - 3개씩>

cup: ###

water: ###

coffee: ###

crime: ###

sugar: ###

== MENU ==

1. 블랙커피

2. 프림커피

3. 밀크커피

4. 설탕커피

5. 재료 현황 및 보충

6. 작업종료

=========

메뉴:

 

#include<stdio.h>

int main(){
   int menu;
   char mat_name[5][7] = {"CUP", "WATER", "COFFEE", "CRIME", "SUGAR"};   // 재료의 이름을 이차원배열로 선언해준다.
   int mat[5] = {3, 3, 3, 3, 3};                                         // 재료 수량을 3으로 초기화 해준다.
   char ch;

   do{
      printf("\n== MENU ==\n");
      printf("1. 블랙커피\n");
      printf("2. 프림커피\n");
      printf("3. 밀크커피\n");
      printf("4. 설탕커피\n");
      printf("5. 재료현황 및 보충\n");
      printf("6. 작업종료\n");
      printf("===========\n");
      printf("메뉴 : ");
      scanf("%d", &menu);

      if(menu == 1){
         if(mat[0] <= 0 || mat[1] <= 0 || mat[2] <= 0)
            printf("재료가 부족합니다.\n");
         else{
            mat[0]--;
            mat[1]--;
            mat[2]--;
         }
      }
      else if(menu == 2){
         if(mat[0] <= 0 || mat[1] <= 0 || mat[2] <= 0 || mat[3] <= 0)
            printf("재료가 부족합니다.\n");
         else{
            mat[0]--;
            mat[1]--;
            mat[2]--;
            mat[3]--;
         }
      }
      else if(menu == 3){
         if(mat[0] <= 0 || mat[1] <= 0 || mat[2] <= 0 || mat[3] <= 0 || mat[4] <= 0)
            printf("재료가 부족합니다.\n");
         else{
            mat[0]--;
            mat[1]--;
            mat[2]--;
            mat[3]--;
            mat[4]--;
         }
      }
      else if(menu == 4){
         if(mat[0] <= 0 || mat[1] <= 0 || mat[2] <= 0 || mat[4] <= 0)
            printf("재료가 부족합니다.\n");
         else{
            mat[0]--;
            mat[1]--;
            mat[2]--;
            mat[4]--;
         }
      }
      else if(menu == 5){
         for(int i = 0; i < 5; i++){
            printf("%s : ", mat_name[i]);
            for(int j = 0; j < mat[i]; j++)
               printf("#");
            printf("\n");
         }
         getchar();
         printf("충전 [Y / N] :");
         scanf("%c", &ch);

         if(ch == 'Y' || ch == 'y')
            for(int i = 0; i < 5; i++)
               mat[i] = 3;
      }
      else
         printf("메뉴 선택이 잘못되었습니다.\n");
   } while(menu != 6);

   return 0;
}

 

▲ 실행(메뉴)

 

▲ 실행(재료 부족)

 

▲ 실행(재료 보충)

반응형