2022-03-11-C-Chap6-문제13
학점 산출 계산기
나의 학점이 어떻게 나올지 미리 예상해보기 위해 계산기를 만들어 보자! 다음 조건에 맞추어 결과화면과 같이 출력이 되도록 프로그램을 작성하십시오.
조건
- 입력 받는 값은 정수형이다.
- 수업시수는 몇 강인지를 묻는 것이미르 17주차 수업 기준으로, 주 1회 수업인 경우 총 17강이며, 주 2회 수업을 경우 총 34강이다.
- 지각 3회당 결석 1회이며, 결석이 수업시수 1/5 이상인 경우, 출석미달로 학점은 ‘F’가 된다.
- 전체 성적에서, 출결은 10%, 중간고사는 30%, 기말고사 40%, 과제 점수 20%로 책정하여 점수를 낸다.
- 시험 점수는 100점 만점이며, 과제 점수는 10점 만점이다.
- 모든 입력 결과로, 전체 성적 점수(총 점수)와 학점을 출력한다.
- 학점은 전체 성적 점수에서 절대 평가이며, 80점 이상인 경우 ‘A’, 이 미만 60점 이상인 경우 ‘B’, 이 미만은 ‘C’이다.
입력 예
17 1 1 55 70 10
34 9 2 45 35 7
17 3 4 25 66 2
출력 예
74.38 B
51.21 C
F
Source
#include<stdio.h>
int main(void) {
int fre = 0, lat = 0, abs = 0, mid = 0, fin = 0, hw = 0;
printf("수업시수(강): ");
scanf("%d", &fre);
printf("\n[출결] (10\%)\n지각(지각 3회 = 결석 1회): ");
scanf("%d", &lat);
printf("결석(수업시수 1/5 이상 F): ");
scanf("%d", &abs);
printf("\n[시험] (30\%/40\%)\n중간고사 점수(100점만점): ");
scanf("%d", &mid);
printf("기말고사 점수(100점만점): ");
scanf("%d", &fin);
printf("\n[기타\ (20\%)\n과제 점수(10점만점): ");
scanf("%d", &hw);
if ((lat / 3 + abs) >= fre / 5) {
printf("출결 미달이므로 나의 학점은 F이다.");
return 0;
}
float result = 0;
//result = (fre - (lat / 3 + abs)) / fre * 10 + mid * 0.3 + fin * 0.4 + hw * 2;
if (result >= 80)
printf("나의 총 점수는 %.2f점이므로 학점은 A 이다!", result);
else if (result >= 60)
printf("나의 총 점수는 %.2f점이므로 학점은 B 이다!", result);
else
printf("나의 총 점수는 %.2f점이므로 학점은 C 이다!", result);
return 0;
}