본문 바로가기

개발일지/Java + Spring

[Java] 성적 입출력 - 클래스로 나누기, 소수점 n번째 자리


지금까지 배운 것으로 성적 입출력을 해봤다.

package Graid;

public class Print {
	int tot;
	double avg;
	String grad;
	
	void print1(String name, int k, int m, int e) {
		System.out.println("당신의 이름은 " + name + "입니다.");
		System.out.println("국어 성적 : " + k );
		System.out.println("수학 성적 : " + m );
		System.out.println("영어 성적 : " + e );
	}
	
	void tot(int k, int m, int e) {
		tot = k + m + e;
		System.out.println("총점 : " + tot);
	}
	void ave() {
		avg = tot/3.0;
		System.out.println("평균 : " + Math.round(avg*100)/100.0);
	}
	void grad() {
		if(avg>=90) grad = "A";
		else if(avg>=80) grad = "B"; 
		else if(avg>=70) grad = "C"; 
		else if(avg>=60) grad = "D"; 
		else grad = "F"; 
		System.out.println("학점 : " + grad);
	}
}
package Graid;

import java.util.Scanner;


public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("이름을 입력하세요 : ");
		String name = sc.next();
		System.out.print("국어 성적을 입력하세요 : ");
		int kor = sc.nextInt();
		System.out.print("수학 성적을 입력하세요 : ");
		int mat = sc.nextInt(); 
		System.out.print("영어 성적을 입력하세요 : ");
		int eng = sc.nextInt();
		
		System.out.println("-----------------------------");
		Print pt = new Print();
		pt.print1(name, kor, mat, eng);
		System.out.println("-----------------------------");
		pt.tot(kor, mat, eng);
		pt.ave();
		pt.grad();
		System.out.println("-----------------------------");
	}

}

 

이름을 입력하세요 : 홍길동
국어 성적을 입력하세요 : 96
수학 성적을 입력하세요 : 97
영어 성적을 입력하세요 : 96
-----------------------------
당신의 이름은 홍길동입니다.
국어 성적 : 96
수학 성적 : 97
영어 성적 : 96
-----------------------------
총점 : 289
평균 : 96.33
학점 : A
-----------------------------

초록색 부분은 입력 부분이고, 출력은 이렇게 된다. 


소수점 n번째까지 출력하고 싶다면?

System.out.println("평균 : " + Math.round(avg*100)/100.0);

 

Math.round() 메소드를 사용하면 됨 (a*100)/100.0 이렇게 넣으면 둘째 자리까지 나온다.