반응형
학점 계산기
학점 계산 방법
학점 예상에 필요한 자료 이와 같습니다:
-
이전 학기까지의 평균 점수 (4.5 만점)
-
이전 학기까지의 이수 크레딧 수 (전공 과목(CREDIT_MAJOR)은 3학점, 교양 과목(CREDIT_GENERAL)은 2학점)
-
이번 학기 과목별 예상 성적
이번 학기 점수 계산 방법
이번 학기의 평균 점수는 57.5 / 14의 결과값인 4.1071428571입니다.
전체 점수 예상
위의 계산법을 응용합니다. 이전 학기까지의 평균 점수 * 이전 학기까지의 크레딧 수를 하면 이전 학기까지의 총 점수를 구할 수 있겠죠?
예를 들어서 이전 학기까지의 평균 점수가 4.0이고 이수 크레딧 수가 100이라고 가정합시다. 그러면 총 점수는 400이죠? 위의 표에 나와있는대로 이번 학기 성적을 받았다면 이제 총 점수(이전 학기까지의 총 점수 + 이번 학기의 총 점수)는 457.5, 총 이수 크레딧 수(이전 학기까지의 크레딧 수 + 이번 학기의 크레딧 수)는 114입니다. 따라서 예상 전체 점수는 457.5 / 114의 결과값인 4.0131578947인 거죠!
package Ex0603;
public class Course {
public static final int CREDIT_MAJOR = 3;
public static final int CREDIT_GENERAL = 2;
public final String name;
public final int credit;
public final String grade;
public Course(String name, int credit, String grade) {
this.name = name;
this.credit = credit;
this.grade = grade;
}
public double getScore() {
switch (grade) {
case "A+":
return 4.5;
case "A":
return 4;
case "B+":
return 3.5;
case "B":
return 3;
case "C+":
return 2.5;
case "C":
return 2;
case "D+":
return 1.5;
case "D":
return 1;
case "F":
return 0;
}
return -1;
}
}
package Ex0603;
import java.util.ArrayList;
public class GradeCalculator {
public final String name;
public final double currentScore;
public final int currentCredit;
private final ArrayList<Course> courses = new ArrayList<>();
public GradeCalculator(String name, double currentScore, int currentCredit) {
this.name = name;
this.currentScore = currentScore;
this.currentCredit = currentCredit;
}
public void addCourse(Course course) {
courses.add(course);
}
public void print() {
System.out.println("직전 학기 성적: " + currentScore + " (총 " + currentCredit + "학점)");
double scoreSum = 0;
int creditSum = 0;
for (Course c : courses) {
scoreSum += c.getScore() * c.credit;
creditSum += c.credit;
}
System.out.println("이번 학기 성적: " + (scoreSum / creditSum) + " (총 " + creditSum + "학점)");
double totalScore = currentScore * currentCredit + scoreSum;
int totalCredit = currentCredit + creditSum;
System.out.println("전체 예상 학점: " + (totalScore / totalCredit) + " (총 " + totalCredit + "학점)");
}
}
본 내용은 Codeit의 '자바 기초' 강의를
참고하여 작성한 내용입니다.
반응형
'Languages > Java' 카테고리의 다른 글
[자바 중급 개념] 01. 상속 (0) | 2021.03.05 |
---|---|
[자바 객체 지향 프로그래밍] 06. 기말고사: 자바 실무 프로젝트 (0) | 2021.03.04 |
[자바 객체 지향 프로그래밍] 06. 기말고사: 자바 실무 프로젝트 (0) | 2021.03.04 |
[자바 객체 지향 프로그래밍] 06. 기말고사: 자바 실무 프로젝트 (0) | 2021.03.04 |
[자바 객체 지향 프로그래밍] 05. 자바, 더 간편하게! (0) | 2021.03.03 |