-  -

과 목 명

프로그래밍 기초

조건문을 활용한 BMI 판정

프로그램 설계 및 구현

과 제 보 고 서

목      차

Ⅰ. 서론	2

Ⅱ. 프로그램 개요 및 설계	2

1. 주제 선정 배경

2. 요구사항 및 전체 흐름

Ⅲ. 프로그램 구현	3

1. 개발 환경

2. 전체 소스코드

3. 코드 설명

4. 실행 결과

Ⅳ. 확장 가능한 기능	5

Ⅴ. 결론	6

Ⅵ. 참고문헌	6

Ⅰ. 서론

조건문은 프로그램이 특정 상황에 따라 서로 다른 실행 경로를 선택하도록 하는 프로그래밍의 가장 기본적이면서도 핵심적인 제어 구조이다. if 문은 단일 조건의 참·거짓에 따라 실행 흐름을 분기하며, 다중 if 문(if-else if-else)은 여러 조건을 순차적으로 검사하여 해당하는 범위에 맞는 처리를 수행한다. 한편 switch 문은 하나의 변수 값에 따라 여러 개의 선택지 중 하나를 실행하는 다중 분기 구조로, 메뉴 선택과 같이 명확히 구분되는 경우의 수를 처리할 때 유용하게 활용된다.

본 과제에서는 이러한 조건문의 개념을 실제 프로그램으로 구현하기 위해, 사용자의 키와 몸무게를 입력받아 체질량지수(BMI, Body Mass Index)를 계산하고 그 결과에 따라 체중 상태를 판정하는 프로그램을 작성하였다. 해당 프로그램은 다중 if 문을 이용한 BMI 구간별 판정과, switch 문을 이용한 메뉴 선택 기능을 함께 포함하여 두 가지 조건문 구조를 모두 다루도록 설계하였다.

Ⅱ. 프로그램 개요 및 설계

1. 주제 선정 배경

BMI는 키와 몸무게라는 두 가지 수치로부터 하나의 지표를 계산하고, 그 지표의 범위에 따라 명확하게 구분되는 여러 단계의 결과(저체중, 정상, 과체중, 비만, 고도비만)를 도출한다는 점에서 다중 if 문의 활용을 설명하기에 적합한 주제이다. 또한 프로그램이 반복적으로 계산을 수행하거나 종료할 수 있도록 메뉴 방식을 추가함으로써, switch 문을 자연스럽게 함께 다룰 수 있다는 점에서 본 주제를 선정하였다.

2. 요구사항 및 전체 흐름

프로그램은 먼저 사용자에게 '① BMI 계산하기, ② 프로그램 종료' 중 하나를 선택하도록 메뉴를 출력한다. 사용자가 1을 선택하면 키와 몸무게를 입력받아 BMI를 계산한 뒤, 다중 if 문을 통해 저체중부터 고도비만까지 다섯 단계 중 해당하는 판정 결과를 출력하고 다시 메뉴로 돌아간다. 사용자가 2를 선택하면 프로그램이 종료되며, 그 외의 값을 입력할 경우 잘못된 입력임을 안내하고 다시 메뉴를 표시한다.

Ⅲ. 프로그램 구현

1. 개발 환경

본 프로그램은 C언어로 작성되었으며, GCC 컴파일러 환경에서 표준 입출력 함수(printf, scanf)만을 사용하여 구현하였다. 별도의 외부 라이브러리 없이 표준 C 문법만으로 실행 가능하도록 작성하여, 초급 프로그래밍 학습자도 쉽게 이해하고 실습할 수 있도록 하였다.

2. 전체 소스코드

#include <stdio.h>

int main(void) {

float height, weight, bmi;

int choice;

while (1) {

printf("\n===== BMI 판정 프로그램 =====\n");

printf("1. BMI 계산하기\n");

printf("2. 프로그램 종료\n");

printf("메뉴를 선택하세요: ");

scanf("%d", &choice);

switch (choice) {

case 1:

printf("키(cm)를 입력하세요: ");

scanf("%f", &height);

printf("몸무게(kg)를 입력하세요: ");

scanf("%f", &weight);

height = height / 100;

bmi = weight / (height * height);

printf("당신의 BMI 지수는 %.2f 입니다.\n", bmi);

if (bmi < 18.5) {

printf("판정 결과: 저체중입니다.\n");

} else if (bmi < 23.0) {

printf("판정 결과: 정상 체중입니다.\n");

} else if (bmi < 25.0) {

printf("판정 결과: 과체중입니다.\n");

} else if (bmi < 30.0) {

printf("판정 결과: 비만입니다.\n");

} else {

printf("판정 결과: 고도비만입니다.\n");

}

break;

case 2:

printf("프로그램을 종료합니다.\n");

return 0;

default:

printf("잘못된 입력입니다. 다시 선택해주세요.\n");

break;

}

}

return 0;

}

3. 코드 설명

전체 프로그램은 while(1) 무한 반복문 안에서 switch 문을 통해 사용자의 메뉴 선택(1: 계산, 2: 종료)을 처리한다. case 1에서는 사용자로부터 키와 몸무게를 입력받아 BMI 값을 계산한 뒤, if-else if-else 형태의 다중 if 문을 이용하여 계산된 BMI 값이 18.5 미만이면 저체중, 23.0 미만이면 정상 체중, 25.0 미만이면 과체중, 30.0 미만이면 비만, 그 이상이면 고도비만으로 판정하여 출력한다. case 2에서는 종료 메시지를 출력한 뒤 return 0을 통해 프로그램을 종료하며, 어느 경우에도 해당하지 않는 default에서는 잘못된 입력임을 안내한 뒤 다시 메뉴로 돌아가도록 하였다. 이처럼 switch 문은 메뉴 선택과 같이 명확한 경우의 수를 분기하는 데, 다중 if 문은 연속된 수치 범위를 단계적으로 판정하는 데 각각 적합하게 사용되었음을 확인할 수 있다.

4. 실행 결과

아래는 키 172cm, 몸무게 78kg을 입력했을 때의 실행 결과 예시이다.

===== BMI 판정 프로그램 =====

1. BMI 계산하기

2. 프로그램 종료

메뉴를 선택하세요: 1

키(cm)를 입력하세요: 172

몸무게(kg)를 입력하세요: 78

당신의 BMI 지수는 26.37 입니다.

판정 결과: 비만입니다.

===== BMI 판정 프로그램 =====

1. BMI 계산하기

2. 프로그램 종료

메뉴를 선택하세요: 2

프로그램을 종료합니다.

Ⅳ. 확장 가능한 기능

본 프로그램은 조건문의 기본적인 활용을 보여주는 데 목적을 두고 있어 기능이 단순하지만, 다음과 같은 방향으로 확장할 수 있다.

1. 표준체중 및 감량·증량 목표치 안내

판정 결과가 과체중 이상일 경우, 표준체중과의 차이를 계산하여 감량이 필요한 체중을 함께 안내하는 기능을 추가할 수 있다. 이는 다중 if 문 내부에 추가적인 계산식을 삽입하는 방식으로 손쉽게 구현할 수 있다.

2. 연령·성별을 고려한 판정 기준 세분화

현재는 성인을 기준으로 한 고정된 BMI 구간을 사용하고 있으나, 연령대와 성별에 따라 다른 판정 기준을 적용하도록 중첩 if 문 또는 switch 문을 추가하여 보다 정교한 판정이 가능하도록 확장할 수 있다.

3. 계산 이력 저장 및 조회 기능

배열이나 파일 입출력을 활용하여 사용자가 계산한 BMI 이력을 저장하고, 메뉴에 '이력 조회' 항목을 추가하여 이전 계산 결과와 비교할 수 있는 기능으로 확장할 수 있다. 이 경우 switch 문의 case를 하나 더 추가하는 방식으로 자연스럽게 메뉴를 확장할 수 있다.

4. 입력값 유효성 검사 추가

음수나 비정상적으로 큰 값이 입력되는 경우를 대비하여, if 문을 이용한 입력값 범위 검증 로직을 추가함으로써 프로그램의 안정성을 높이는 방향으로도 확장할 수 있다.

Ⅴ. 결론

본 과제에서는 다중 if 문과 switch 문을 함께 활용하여 BMI를 계산하고 체중 상태를 판정하는 간단한 프로그램을 설계·구현하였다. switch 문은 메뉴 선택과 같이 명확히 구분되는 경우의 수를 처리하는 데, 다중 if 문은 연속된 수치 범위를 단계적으로 판정하는 데 각각 적합하다는 점을 실제 코드를 통해 확인할 수 있었다. 이러한 조건문의 조합은 이후 표준체중 안내, 세분화된 판정 기준, 이력 관리, 입력값 검증 등 다양한 기능으로 확장 가능하며, 조건문에 대한 이해는 이후 반복문·배열·함수 등 보다 복잡한 프로그램 구조를 학습하는 데에도 중요한 기초가 된다.

Ⅵ. 참고문헌

Kernighan, B. W., & Ritchie, D. M. (1988). The C Programming Language (2nd ed.). Prentice Hall.

King, K. N. (2008). C Programming: A Modern Approach (2nd ed.). W. W. Norton & Company.

천정아 (2019). C언어 프로그래밍. 한빛아카데미.

⚠ 주의사항

본 자료는 학점은행제 과제 참고용 샘플입니다.

위 학습 자료를 그대로 제출할 경우 모사율(표절률)로 인하여 성적 불이익 또는 해당 과목 0점 처리될 수 있습니다.

반드시 본인의 언어로 수정·재작성하여 제출하시기 바랍니다.

📌 과제 수정이 어려우신가요?

국민원격교육관리센터에서 1:1 과제 수정 도움을 드립니다. 아래 연락처로 문의해 주세요.

📞 전화: 050-7878-7044

💬 카카오톡: @국민원격교육관리센터

🕐 운영시간: 평일 10:00–19:00

🌐 웹사이트: korealms.co.kr