BackEnd/Java
[java] 클래스를 이용한 문제 풀이
bobo12
2023. 1. 10. 18:13
728x90
문제)
아래는 Student 클래스를 호출하여 객체를 생성 후 필드에 값을 입력하여 아래와 같이 출력을 한 프로그램이다.
학생의 성적은 과제 점수와 시험 점수로 이루어진다. 총점에 과제 점수와 시험 점수의 반영률은 각각 40%와 60%이다. Student 클래스를 작성해보시오.
결과)
이름 : 선남
과제 점수 : 91
시험 점수 : 84
학점 : B
이름 : 선녀
과제 점수 : 86
시험 점수 : 95
학점 : A
정답 코드)
public class Student { String name; int assignmentsScore; int examScore; char grade; public String toString(){ String str = "" ; int score = (int)(this.assignmentsScore * 0.4 + this.examScore * 0.6) / 10; switch(score) { case 9 : this.grade = 'A'; break; case 8 : this.grade = 'B'; break; case 7 : this.grade = 'C'; break; case 6 : this.grade = 'D'; break; default : this.grade = 'F'; break; } str += "이름 : " + this.name + "\n과제 점수 : " + assignmentsScore + "\n시험 점수 :" + this.examScore + "\n학점 : " + this.grade + "\n"; return str; } }
public class StudentDriver { public static void main(String[] args) { Student stud1 = new Student(); stud1.name = "선남"; stud1.assignmentsScore = 91; stud1.examScore = 84; System.out.println(stud1.toString()); Student stud2 = new Student(); stud2.name = "선녀"; stud2.assignmentsScore = 86; stud2.examScore = 95; System.out.println(stud2.toString()); } }
추가 코드(Student class 변경)
public class Student { String name; int assignmentsScore; int examScore; public char getGrade() { int score = (int)(this.assignmentsScore*0.4 + this.examScore*0.6)/10; char grade; switch(score) { case 9 : grade = 'A'; break; case 8 : grade = 'B'; break; case 7 : grade = 'C'; break; case 6 : grade = 'D'; break; default : grade = 'F'; break; } return grade; } public String toString(){ String str = "" ; str += "이름 : " + this.name + "\n"; str += "과제 점수 : " + this.assignmentsScore + "\n"; str += "시험 점수 : " + this.examScore + "\n"; str += "학점 : " + getGrade() + "\n"; return str; } }
728x90