JAVA 5강_Method_성적 처리 2문제

열라뽕따히·2024년 2월 4일

JAVA

목록 보기
29/79

[문제] 성적 처리 프로그램
main() 메서드에서는 키보드로 이름, 국어점수, 영어점수, 수학점수를 입력 받고
총점 메서드, 평균 메서드, 학점 메서드를 호출하여 성적을 처리한 후에 화면에 성적 결과를 출력해보자




============================코드============================

// 총점을 구하는 메서드  / 평균을 구하려면 총점의 값이 반환되어야 하기 때문에 void(x) --> int로 변경
	public static int total(int k, int e, int m) {
		
		return k + e + m;
		
	} // total() 메서드 end
	
	public static double average(int tot) {  // 학점을 구하려면 평균의 값이 반환되어야 함
		
		return tot / 3.0;
		
	} // average() 메서드 end
	
	public static String hakjum(double avg) {  // 학점을 구하려면 평균의 값이 반환되어야 함
		
		String grade = "";   // 빈 값으로 초기화한다는 뜻  or String grade = null; 도 가능
		
		if(avg >= 90) {
			grade = "A학점";
		}else if(avg >= 80) {
			grade = "B학점";
		}else if (avg >= 70) {
			grade = "C학점";
		}else if (avg >= 60) {
			grade = "D학점";
		}else if (avg >= 50) {
			grade = "E학점";
		}
		
		return grade;
		
	} // hakjum() 메서드 end

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		// 1. 메인 메서드에서는 이름, 국어점수, 영어점수, 수학점수를 키보드로 입력만 받자
		System.out.print("학생의 이름을 입력하세요 : ");
		String name = sc.next();
		
		System.out.print("국어점수를 입력하세요 : ");
		int kor = sc.nextInt();
		
		System.out.print("영어점수를 입력하세요 : ");
		int eng = sc.nextInt();
		
		System.out.print("수학점수를 입력하세요 : ");
		int mat = sc.nextInt();
		
		System.out.println();
		
		// 2. 총점을 구하자  ==> 총점 메서드 호출  ==> 인자를 넘겨주기
		int sum = total(kor , eng, mat);
		
		// 3. 평균을 구하자  ==> 평균 메서드 호출
		double avg = average(sum);
		
		// 4. 학점을 구하자  ==> 학점 메서드 호출
		String hakjum = hakjum(avg);
		
		// 5. 성적 결과를 화면에 출력해보자
		System.out.println("이   름 : " + name);
		System.out.println("국어점수 : " + kor + "점");
		System.out.println("영어점수 : " + eng + "점");
		System.out.println("수학점수 : " + mat + "점");
		System.out.println("총   점 : " + sum + "점");
		System.out.printf("평   균 : %.2f점 \n" , avg);
		System.out.println("학   점 : " + hakjum);
		
		sc.close();

	}

============================실행============================




[문제]
무한반복으로 개인별 성적을 처리해보자


============================코드============================
// 총점을 구하는 메서드  / 평균을 구하려면 총점의 값이 반환되어야 하기 때문에 void(x) --> int로 변경
		public static int total(int k, int e, int m) {
			
			return k + e + m;
			
		} // total() 메서드 end
		
		public static double average(int tot) {  // 학점을 구하려면 평균의 값이 반환되어야 함
			
			return tot / 3.0;
			
		} // average() 메서드 end
		
		public static String hakjum(double avg) {  // 학점을 구하려면 평균의 값이 반환되어야 함
			
			String grade = "";   // 빈 값으로 초기화한다는 뜻  or String grade = null; 도 가능
			
			if(avg >= 90) {
				grade = "A학점";
			}else if(avg >= 80) {
				grade = "B학점";
			}else if (avg >= 70) {
				grade = "C학점";
			}else if (avg >= 60) {
				grade = "D학점";
			}else if (avg >= 50) {
				grade = "E학점";
			}
			
			return grade;
			
		} // hakjum() 메서드 end

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		while(true) {   // 무한반복
			
		// 1. 메인 메서드에서는 이름, 국어점수, 영어점수, 수학점수를 키보드로 입력만 받자
			System.out.print("학생의 이름을 입력하세요 : ");
			String name = sc.next();
			
			System.out.print("국어점수를 입력하세요 : ");
			int kor = sc.nextInt();
			
			System.out.print("영어점수를 입력하세요 : ");
			int eng = sc.nextInt();
			
			System.out.print("수학점수를 입력하세요 : ");
			int mat = sc.nextInt();
			
			System.out.println();
			
		// 2. 총점을 구하자  ==> 총점 메서드 호출  ==> 인자를 넘겨주기
			int sum = total(kor , eng, mat);
			
		// 3. 평균을 구하자  ==> 평균 메서드 호출
			double avg = average(sum);
			
		// 4. 학점을 구하자  ==> 학점 메서드 호출
			String hakjum = hakjum(avg);
			
		// 5. 성적 결과를 화면에 출력해보자
			System.out.println("이   름 : " + name);
			System.out.println("국어점수 : " + kor + "점");
			System.out.println("영어점수 : " + eng + "점");
			System.out.println("수학점수 : " + mat + "점");
			System.out.println("총   점 : " + sum + "점");
			System.out.printf("평   균 : %.2f점 \n" , avg);
			System.out.println("학   점 : " + hakjum);
			System.out.println("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
			System.out.println();
			
			// 계속 진행할지, 종료를 할지 여부를 확인해야 함
			System.out.print("계속 진행할까요? (Y : 계속 / N : 종료) : ");
			
			String res = sc.next();
			
			if(res.equalsIgnoreCase("N")) {     // equalsIgnoreCase : 대소문자 구분 없이 사용 가능
				break;
			}
			
		}  // while 반복문 end
		
		System.out.println("수고 하셨습니다.");
		
		sc.close();

	}

============================실행============================





**어려웠던 점
-while문으로 무한반복을 만들 수 있다는 점을 기억하자
-생성한 메서드 내에 문자열을 넣을 시 문자열 변수명을 초기값을 설정하는 것을 생각해내는 것이 어려웠다.. 문자의 초기값은 ""로 설정!

0개의 댓글