본문 바로가기

BackEnd/Java

[java] 클래스를 이용한 문제 풀이

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
반응형