4. 성공습관지수 검사 프로그램 만들기
페이지 정보
작성자 관리자 댓글 0건 조회 2,602회 작성일 22-11-28 21:38본문
4. 성공습관지수 검사 프로그램 만들기
1. 분석
문항관리에서 문항을 입력하여 파일 저장하였습니다.
성공습관지수 검새 프로그램에서는 저장한 파일에서 문항을 불러와 검사 프로그램을 만들어 봅니다.
2. 소스코딩
프로젝트 명 : buja_test
1단계) 파일에서 문항 불러와 배열에 저장하기
#include <stdio.h>
char test_list[16][200]={}; // 문항을 저장할 전역변수
void load_list() {
FILE *fp;
int i, j;
char ch;
fp = fopen("c:\\temp\\test_list.txt", "r");
i = 0;
j = 0;
while(1) {
ch = fgetc(fp);
if(ch == '\n') { // 문장의 끝일
test_list[i][j] = '\0';
i++;
j = 0;
} else if(ch == EOF) { // 파일의 끝일 때
test_list[i][j] = '\0';
break;
} else {
test_list[i][j] = ch;
j++;
}
}
fclose(fp);
}
int main(int argc, char *argv[]) {
int num, i, j;
// test_list[16][200] 배열에 문항을 파일에서 불러온다.
load_list();
// 불러온 문항을 이용하여 검사프로그램을 만든다.
for(i = 0; i< 16; i++) {
printf("%d. %s\n", i+1, test_list[i]);
}
return 0;
}
실행하여 결과를 확인합니다.
2단계) 응답 선택 문항을 출력합니다.
#include <stdio.h>
char test_list[16][200]={}; // 문항을 저장할 전역변수
void load_list() {
FILE *fp;
int i, j;
char ch;
fp = fopen("c:\\temp\\test_list.txt", "r");
i = 0;
j = 0;
while(1) {
ch = fgetc(fp);
if(ch == '\n') { // 문장의 끝일
test_list[i][j] = '\0';
i++;
j = 0;
} else if(ch == EOF) { // 파일의 끝일 때
test_list[i][j] = '\0';
break;
} else {
test_list[i][j] = ch;
j++;
}
}
fclose(fp);
}
int main(int argc, char *argv[]) {
int num, i, j;
char a[5][100]={
"(1) 매우 그렇다"
,"(2) 대체로 그렇다"
,"(3) 보통이다"
,"(4) 별로 그렇지 않다"
,"(5) 전혀 그렇지 않다"
};
// test_list[16][200] 배열에 문항을 파일에서 불러온다.
load_list();
// 불러온 문항을 이용하여 검사프로그램을 만든다.
for(i = 0; i< 16; i++) {
printf("%d. %s\n", i+1, test_list[i]);
for(j = 0; j< 5; j++) {
printf("\t%s\n", a[j]);
}
}
return 0;
}
실행하여 답변을 위한 선택 문항이 출력되는 지 확인한다.
3단계) 각 문항에 대해 답변을 입력하여 저장하고 입력한 답변을 출력한다.
#include <stdio.h>
char test_list[16][200]={}; // 문항을 저장할 전역변수
void load_list() {
FILE *fp;
int i, j;
char ch;
fp = fopen("c:\\temp\\test_list.txt", "r");
i = 0;
j = 0;
while(1) {
ch = fgetc(fp);
if(ch == '\n') { // 문장의 끝일
test_list[i][j] = '\0';
i++;
j = 0;
} else if(ch == EOF) { // 파일의 끝일 때
test_list[i][j] = '\0';
break;
} else {
test_list[i][j] = ch;
j++;
}
}
fclose(fp);
}
int main(int argc, char *argv[]) {
int num, i, j;
int ans[16] = {}; // 답변을 저장할 배열 변수
char a[5][100]={
"(1) 매우 그렇다"
,"(2) 대체로 그렇다"
,"(3) 보통이다"
,"(4) 별로 그렇지 않다"
,"(5) 전혀 그렇지 않다"
};
// test_list[16][200] 배열에 문항을 파일에서 불러온다.
load_list();
// 불러온 문항을 이용하여 검사프로그램을 만든다.
for(i = 0; i< 16; i++) {
printf("%d. %s\n", i+1, test_list[i]);
for(j = 0; j< 5; j++) {
printf("\t%s\n", a[j]);
}
printf("선택 (1~5) ? ");
scanf("%d", &ans[i]);
}
printf("\n========================================\n");
for(i=0; i<16; i++) {
printf("%d ", ans[i]);
}
printf("\n========================================\n");
return 0;
}
3. 실행
반복적으로 실행하면서 오류와 보완해야할 점을 찾아서 수정합니다.
1. 하루 30분이상 책을 읽는다
(1) 매우 그렇다
(2) 대체로 그렇다
(3) 보통이다
(4) 별로 그렇지 않다
(5) 전혀 그렇지 않다
선택 (1~5) ? 1
2. 책 읽는 것을 좋아한다
(1) 매우 그렇다
(2) 대체로 그렇다
(3) 보통이다
(4) 별로 그렇지 않다
(5) 전혀 그렇지 않다
선택 (1~5) ? 1
................... 생략 ..................
15. 한 달에 10시간 이상 봉사활동을 한다
(1) 매우 그렇다
(2) 대체로 그렇다
(3) 보통이다
(4) 별로 그렇지 않다
(5) 전혀 그렇지 않다
선택 (1~5) ? 1
16. 매달 2권 이상의 비문학 서적을 읽는다
(1) 매우 그렇다
(2) 대체로 그렇다
(3) 보통이다
(4) 별로 그렇지 않다
(5) 전혀 그렇지 않다
선택 (1~5) ? 1
========================================
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
========================================
4. 과제 : 검사프로그램 수정하기
과제1) 입력한 답변의 합계를 구하여 출력한다.
int tot = 0;
tot = tot + ans[i];
printf("함계 = %d\n", tot);
위의 코드를 참고하여 완성합니다.
입력한 값이 "1)매우그렇다"이면 5점을 더하고, "5)전혀 그렇지 않다"이면 1점을 더하여 합계를 구합니다.
과제2) 합계점수를 환산점수로 바꾸어 줍니다.
float score = 0;
score = 환산공식 :
printf("점수 = %d\n", score);
각문항당 배점을 구하는 방식으로 공식을 찾아봅니다.
모든 문항을 1을 선택하면 5점을 합하기 때문에 80점이고,
5을 선택하면 1점이 16문항이므로 16점입니다.
따라서 16점에서 80점의 합계가 나옵니다.
이점수를 0점에서 100점 범위로 환산해줍니다.
