안녕하세요! 두부쌤
입니다~ 
오늘은 제가 예전에 ‘프로그래밍’ 과목에서 진행한 간단한 모둠 프로젝트를 소개해 보려고 합니다~
바로 시작하겠습니다!
■ 프로젝트 소개
Dev-C++를 활용하여 C언어로 모둠별로 다양한 기능을 나누어 구현하고(모듈 구현),
이를 통합하여(구글 드라이브/깃허브/USB 등 활용) 하나의 프로그램을 완성하는 프로젝트입니다.
구름 EDU 플랫폼을 통해 프로젝트에 대한 소개, 역할, 기본 예제 코드, 진행 순서 등을 모둠별로 확인하며 진행할 수 있도록 설계했습니다.
•
학생 수준: 변수부터 제어문까지 학습, (함수 정의, 배열 등은 학습X)
•
프로그램 주제 (아래는 예시이고 모둠별로 주제를 자유롭게 정해도 됩니다.)
주제 | 기능 |
건강 프로그램 | 1. 홈 메뉴 2. BMI 계산 3. 기초 대사량 계산 4. 하루 권장 칼로리 계산 |
ATM 프로그램 | 1. 홈 메뉴 2. 잔액 확인 3. 내 계좌 입금 4. 타 계좌 송금 5. 송금 |
퀴즈 프로그램 | 1. 홈 메뉴 2. 퀴즈 출제 3.점수 계산 4. 정답 확인 |
가위바위보 프로그램 | 1. 홈 메뉴 2. 컴퓨터와 대결 3. 승률 확인 4. 점수 초기화 |
•
프로젝트 순서
1.
주제 선정
2.
모둠원 각자가 구현할 기능 정하기(역할 분담)
3.
기능 구현을 위한 알고리즘 작성하기
4.
구름EDU 수업 자료, 교과서 등을 참고하여 기능 구현하기(각각 독립적인 main.c)
5.
오류 수정하며 정상적으로 실행 되는지 확인하기
6.
하나의 프로그램으로 합치기(4번에서 만든 독립적인 main.c들을 각각의 모듈명으로 바꾸고 통합)
7.
통합한 프로그램을 실행하며 모든 기능이 잘 작동되는지 점검
8.
프로그램 제출 및 프로젝트 소감문 작성
이제 프로그램의 기본 코드를 소개해 보겠습니다.
모든 프로그램의 코드를 하나하나 다루기보다는 건강 프로그램을 예시로 해서 전체적인 흐름을 보여드릴게요! 나머지 프로그램들도 예시를 참고하셔서 구성하시면 될 것 같습니다~~
■ 건강 프로그램 
[1] 메뉴 구성
1.
홈 메뉴
: 기본적인 홈 구성입니다.
#include <stdio.h>
int main() {
int menu;
int running=1;
printf("*************************************************\n");
printf("건강 프로그램입니다. 메뉴를 선택하세요.\n");
printf("1.BMI 계산 2.기초대사량 계산 3. 하루 권장 칼로리 계산 99. 종료\n");
printf("*************************************************\n");
while(running){
printf("\n메뉴 입력(숫자) : ");
if (scanf("%d", &menu) != 1) {
printf("잘못된 입력입니다. 숫자를 입력하세요.\n");
while (getchar() != '\n');
continue;
}
switch(menu){
case 1:
printf("BMI 계산을 선택했습니다.\n");
//모듈 작성
break;
case 2:
printf("기초 대사량 계산을 선택했습니다.\n");
//모듈 작성
break;
case 3:
printf("하루 권장 칼로리 계산을 선택했습니다.\n");
//모듈 작성
break;
case 99:
printf("프로그램을 종료합니다.\n");
running=0;
break;
default:
printf("잘못입력했습니다.\n");
break;
}
}
return 0;
}
C
복사
모듈 작성 부분은 추후 모둠원들이 만든 모듈을 입력하면 됩니다.
2.
BMI 계산
#include <stdio.h>
//BMI 계산
int main() {
float height, weight, bmi;
printf("[BMI 계산]\n");
printf("키(cm)를 입력하세요: ");
scanf("%f", &height);
printf("몸무게(kg)를 입력하세요: ");
scanf("%f", &weight);
bmi = weight/((height/100)*(height/100)); //height는 cm를 m로 바꿔서 계산
printf("BMI = %.2f\n", bmi);
if (bmi < 18.5)
printf("저체중입니다.\n");
else if (bmi < 23)
printf("정상 체중입니다.\n");
else if (bmi < 25)
printf("과체중입니다.\n");
else
printf("비만입니다.\n");
return 0;
}
C
복사
3.
기초대사량 계산
#include <stdio.h>
//기초대사량(bmr) 계산
int main() {
int age;
float height, weight, bmr;
char gender;
printf("[기초대사량 계산]\n");
while (1) {
printf("성별을 입력하세요 (M/F): ");
scanf(" %c", &gender);
if (gender=='M' || gender=='m') {
bmr=66.47+(13.75*weight)+(5.0*height)-(6.76*age);
}
else if (gender=='F' || gender=='f') {
bmr=655.1+(9.56*weight)+(1.85*height)-(4.68*age);
}
else {
printf("성별 입력 오류. 다시 입력하세요.\n");
continue;
}
printf("나이: ");
scanf("%d", &age);
printf("키(cm): ");
scanf("%f", &height);
printf("몸무게(kg): ");
scanf("%f", &weight);
printf("기초대사량은 %.2f kcal입니다.\n", bmr);
break;
}
return 0;
}
C
복사
4.
하루 권장 칼로리 계산
#include <stdio.h>
// 하루 권장 칼로리 계산기
int main() {
float bmr,cal;
int act;
printf("[하루 권장 칼로리 계산기]\n");
printf("기초대사량을 입력하세요: ");
scanf("%f",&bmr);
while(1) {
printf("활동 수준을 선택하세요:\n");
printf("1. 가벼운 활동\n");
printf("2. 보통 활동\n");
printf("3. 활동량 많음\n");
printf("4. 활동량이 매우 많음\n");
printf("선택 (1~4): ");
scanf("%d",&act);
switch(act) {
case 1:
cal=bmr*1.2;
break;
case 2:
cal=bmr*1.55;
break;
case 3:
cal=bmr*1.725;
break;
case 4:
cal=bmr*1.9;
break;
default:
printf("잘못된 입력입니다. 1~4 중에서 선택하세요.\n");
continue;
}
printf("하루 권장 섭취 칼로리는 %.2f kcal입니다.\n",cal);
break;
}
return 0;
}
C
복사
[2] 프로그램 합치기
다음으로 모둠원이 만든 기능을 하나의 프로그램으로 합치는 과정에 대해 보여드리겠습니다.
1.
왼쪽 메뉴에서 프로젝트 오른쪽 클릭 - 프로젝트에 추가
2.
파일 선택 후 열기
3.
추가 된 파일에서 main 함수 변경
각각의 파일에서 main 함수 이름을 해당 기능 이름(모듈 이름)으로 변경,
반환형을 int → void, 매개변수는 void로 지정, return 0; 문장은 제거합니다.
만약 필요하다면 지역변수를 전역변수로 바꾸는 과정도 진행합니다.
4.
홈 메뉴에서 switch 문에 해당 모듈 입력
이런 식으로 해당 부분에 모듈을 작성해주면 됩니다.
[실행 화면]
나머지 모듈도 이렇게 진행하였습니다~ 
[3] 발표 및 프로젝트 활동 소감
프로젝트를 진행한 후 모둠별로 프로젝트에 대해 발표하는 시간을 갖고,
구글폼으로 간단한 소감문(자기 평가서)을 받아 생기부를 작성할 때 참고했습니다.
[프로젝트 활동 소감 질문 예시]
•
학번 이름을 쓰세요.
•
프로젝트 주제를 쓰세요.
•
맡은 역할을 쓰세요.(모둠장, 모둠원으로 ~~기능을 구현함.)
•
활동 중 힘들었던 점이나 개선해야 할 점을 써주세요.
•
활동 후 새롭게 알게 된 내용을 쓰세요.
•
활동 후 향상된 역량을 구체적인 근거를 들어 쓰세요.
•
추가적으로 탐구하고 싶은 내용/ 구현하고 싶은 기능을 쓰세요.
•
활동 소감을 간단하게 써주세요.
■ 끝으로…
C언어로 프로그래밍 수업을 진행하며, 어떻게 하면 아이들이 즐겁게 프로그래밍을 배울 수 있을지 고민을 많이 했습니다. 많은 선생님들께서도 그렇듯, 저도 마찬가지로 단순히 문법을 설명하고 실습하게 하는 받아쓰기 식 수업이 되는 것을 굉장히 꺼려합니다…
그래서 스스로 학습할 수 있는 플랫폼, 문제를 풀며 학습할 수 있는 코드업, 오늘 소개해드린 프로젝트형 수업 등 다양한 시도해 보고 있습니다.
오늘 소개해드린 프로젝트형 수업은 아이들이 서로 소통하며 정말 즐겁게 참여한 수업이었습니다. 입시에 많이 지쳐있는 고3 학생들인데도, 질문도 많이 하고 서로 머리를 맞대어 오류를 해결하는 모습을 보니 저 또한 정말 신이 나더라고요~
이 활동이 선생님들께서 더욱 풍성하고 활기찬 수업을 설계하시는데 작은 도움이 됐으면 좋겠습니다!
감사합니다! 다음에 뵙겠습니다~~ 