[[TableOfContents]] == 개요 == 참가자 : [원준연], [임기찬], [최필립], [홍성현] 일시 : 14/04/10 15:00~16:15 --뭐가 이리 짧아-- == 내용 == * 함수 * 함수의 개념 * 사용하는 이유 * 선언하는 법 * 주의사항 * 실습 == 과제 == * --사골국물처럼 우려낸-- 성적 통계 프로그램. * 입력받은 세 명의 학생들의 성적을 가로 그래프로 보여주는 프로그램.(세로 그래프로 구현한다면 중간고사 끝나는 날 밥을 사겠다!) * 과목은 언, 수, 외, 탐. 그리고 평균에 대한 그래프도 보여줄 것. * 100점 만점. * 5점당 * 한 개로, 100점이면 20개이며 5점당 1개씩 줄어든다.(즉, 5 단위로 올림처리할 것) * 그래프를 그리는 과정은 반드시 함수로 추상화해 줄 것. 그 외에는 편한대로 함수로 해도 되고 안해도 됨. * 되도록이면 배열도 써먹었으면 좋겠음. * 출력예시 {{{ (입력 88/69/85/77) 아무개 언어 ****************** 수리 ************** 외국어 ***************** 탐구 **************** 평균 **************** }}} === 임기찬 === {{{ #include #define GRAPH 5 // 이 숫자당 별 1개로 그래프 그림. #define NUM 3 // 이 숫자만큼 학생수를 입력받음. void draw(int kor, int math, int eng, int rea, int ave); int main() { char stu[NUM][20] = { 0, { 0, } }; int kor[NUM] = { 0, }, math[NUM] = { 0, }, eng[NUM] = { 0, }, rea[NUM] = { 0, }, ave[NUM] = { 0, }; int i, j; for (i = 0; i < NUM; i++){ printf("%d번째 학생입니다. \n", i + 1); printf("이름을 입력해 주세요 : "); gets(stu[i]); while (1){ printf("국어 점수를 입력해 주세요. : "); j = scanf("%d", &kor[i]); if (j == 0 || kor[i] < 0 || kor[i] > 100) { printf("잘못된 입력입니다 \n"); printf("다시 입력해 주세요. \n"); fflush(stdin); } else break; } while (1) { printf("수학 점수를 입력해 주세요. : "); j = scanf("%d", &math[i]); if (j == 0 || math[i] < 0 || math[i] > 100){ printf("잘못된 입력입니다. \n"); printf("다시 입력해 주세요. \n"); fflush(stdin); } else break; } while (1) { printf("영어 점수를 입력해 주세요. : "); j = scanf("%d", &eng[i]); if (j == 0 || eng[i] < 0 | eng[i] > 100){ printf("잘못된 입력입니다. \n"); printf("다시 입력해 주세요. \n"); fflush(stdin); } else break; } while (1) { printf("탐구 점수를 입력해 주세요. : "); j = scanf("%d", &rea[i]); if (j == 0 || rea[i] < 0 || rea[i] > 100){ printf("잘못된 입력입니다. \n"); printf("다시 입력해 주세요. \n"); fflush(stdin); } else break; } printf("\n"); fflush(stdin); ave[i] = (kor[i] + math[i] + eng[i] + rea[i]) / 4; } for (i = 0; i < NUM; i++){ printf("%d번째 학생입니다. \n", i + 1); printf("이름 : %s \n\n", stu[i]); draw(kor[i], math[i], eng[i], rea[i], ave[i]); printf("\n"); } return 0; } void draw(int kor, int math, int eng, int rea, int ave){ int x, y = 100 / GRAPH, kg, mg, eg, rg, ag; kg = (kor + 4) / GRAPH, mg = (math + 4) / GRAPH, eg = (eng + 4) / GRAPH; rg = (rea + 4) / GRAPH, ag = (ave + 4) / GRAPH; //올림 하기 위해 +4 for (x = 1; x <= 100 / GRAPH; x++){ printf("%d\t", y*GRAPH); if (kg >= y) printf("*\t"); else printf("\t"); if (mg >= y) printf("*\t"); else printf(" \t"); if (eg >= y) printf("*\t"); else printf(" \t"); if (rg >= y) printf("*\t"); else printf(" \t"); if (ag >= y) printf("*\n"); else printf(" \n"); y--; } printf("0\t국어\t수학\t영어\t탐구\t평균\n"); printf("\t%d\t%d\t%d\t%d\t%d\n", kor, math, eng, rea, ave); } }}} * 5 단위로 올림하라니까;;그거만 예외처리를 제외하면 거의 정답. 범위 제한이나 잘못된 입력에 대한 예외처리는 안했네. 설계가 아직 미숙한거는 어쩔 수 없지만 잘했어 잘했어 - [원준연] * 내일 ~~한국사 시간에~~ 고쳐보도록 노력해 볼게요. === 최필립 === {{{ Write your source code here }}} === 홍성현 === {{{ 원래 아이디어는 찔끔찔끔 써줘야 제맛 별 그리는거 if문으로 일일이 때려박기는 어려울터이니 a=a-5 이런식으로 해서 a<0이 되기 전까지 반복문으로 삥삥 돌리구 세로 그래프 출력하려면 자릿수 맞춰서 때려박아봐야징! 함수 이해를 제대로 못했어요.. -_.. #include int main() { int i=0,kor; char c_kor[20]={0,}; printf("국어 성적을 입력하세요\n"); scanf("%d",&kor); for(kor+4;kor>0;kor-5) {c_kor[i]='*'; printf("%c",c_kor[i]); i++;} return 0; } 함수를 포기하고 이런식으로 해보려 했는데 첫큐부터 막혀서 지금 못자고있네요 }}} ---- [새싹교실/2014], [새싹교실/2014/배반]