728x90
public void practice9(){
// 중간고사, 기말고사, 과제점수, 출석회수를 입력하고 Pass 또는 Fail을 출력하세요.
// 평가 비율은 중간고사 20%, 기말고사 30%, 과제 30%, 출석 20%로 이루어져 있고
// 이 때, 출석 비율은 출석 회수의 총 강의 회수 20회 중에서 출석한 날만 따진 값으로 계산하세요.
// 70점 이상일 경우 Pass, 70점 미만이거나 전체 강의에 30% 이상 결석 시 Fail을 출력하세요.
System.out.print("중간 고사 점수 : ");
int midterm = sc.nextInt();
System.out.print("기말 고사 점수 : ");
int finals = sc.nextInt();
System.out.print("과제 점수 : ");
int score = sc.nextInt();
System.out.print("출석 회수 : ");
int attendance = sc.nextInt();
double mid_proportion = midterm*0.2; // 20%를 치환하면 *0.2
double finals_proportion = finals*0.3;
double score_proportion = score*0.3;
double attendance_proportion = (100/20)*attendance*0.2;
double sum = mid_proportion+finals_proportion+score_proportion+attendance_proportion;
// 100/20*attendance <= 0.7 ?
System.out.println("================= 결과 =================");
if(sum>=70) {
System.out.printf("중간 고사 점수(20) : %.1f%n",mid_proportion);
System.out.printf("기말 고사 점수(30) : %.1f%n",finals_proportion);
System.out.printf("과제 점수 (30) : %.1f%n",score_proportion);
System.out.printf("출석 점수 (20) : %.1f%n",attendance_proportion);
System.out.printf("총점 : %.1f%n",sum);
System.out.println("PASS");
}else if (attendance*(100/20) <= 70 ) { // 비율 계산의 0.7이 아닌 출
System.out.printf("Fail [출석 회수 부족 (%d/20)]",attendance);
}else if (sum<70) {
System.out.printf("중간 고사 점수(20) : %.1f%n",mid_proportion);
System.out.printf("기말 고사 점수(30) : %.1f%n",finals_proportion);
System.out.printf("과제 점수 (30) : %.1f%n",score_proportion);
System.out.printf("출석 점수 (20) : %.1f%n",attendance_proportion);
System.out.printf("총점 : %.1f%n",sum);
System.out.println("Fail [점수 미달]");
}
}
728x90
반응형
'small steps > 1일 1코딩 - 코딩을 내 몸처럼' 카테고리의 다른 글
[1일1코딩] [Java] 생성자(constructor) + this 키워드 (0) | 2022.02.14 |
---|---|
[1일1코딩] [Java] 시작 숫자, 공차 → 규칙적 증가&감소 프로그램 식 (0) | 2022.02.14 |
[1일1코딩] [Java] 자동 형변환(casting) (0) | 2022.02.12 |
[1일1코딩] [Java] 전위 증가 연산자(전치), 후위 증가 연산자(후치) (0) | 2022.02.11 |
[1일1코딩] [Java] Scanner + printf()소수점 + 형변환(Casting) (0) | 2022.02.10 |