java연습문제 - 메서드 사용 : 학생 수 , 점수 , 입력받아 최고점수, 평균점수 나타내는 프로그램

imjingu·2023년 8월 10일
0

개발공부

목록 보기
363/481
package chapter20230809;
import java.util.*;
public class test12 {
	
	static boolean run = true; // 반복문의 조건으로 사용 -> 값이 false가 된다면 반복문이 종료
    static int studentNum = 0; // 학생수
    static int[] scores = null; // 점수를 입력 받을 빈 배열 생성. 사용자에게 입력받은 학생수를 기준으로 배열 생성.
    static int max = 0; // 최고점수 나타내기 위해 저장
    static int average = 0; // 평균 점수 나타내기 위해 저장
    static Scanner scanner = new Scanner(System.in);

	public static void main(String[] args) {
		/* 키보드로 부터 학생 수와 각 학생들의 점수를 입력받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다.
        실행결과를 보고 알맞게 작성해 보세요. */
        
        while (run) {
            System.out.println("-----------------------------------------------------");
            System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
            System.out.println("-----------------------------------------------------");
            System.out.print("선택> ");
            int selectNo = scanner.nextInt();
            if (selectNo == 1) {
                // 작성 위치. 학생수를 입력 받아서 배열 생성 
            	inputStudentNum(); {
            	}
            	
            } else if (selectNo == 2) {
                // 작성 위치. 생성된 배열의 갯수 만큼 점수 입력
            	inputScores();
            	
            } else if (selectNo == 3) {
                // 작성 위치. 입력받은 배열의 값을 출력
            	printScores();
            	
            } else if (selectNo == 4) {
                // 작성 위치. 최고 점수, 평균 점수 출력
            	printAnalysis();
            	
            } else if (selectNo == 5) {
                // 작성 위치. run 값 변경
            	setRun();
            }
        }
        System.out.println("프로그램 종료");

	}
		public static void inputStudentNum() {
    	System.out.print("학생수> ");
		studentNum = scanner.nextInt();
		scores = new int [studentNum]; // scores에 studentNum으로 받은 숫자수 만큼 배열의 인덱스로 넣어줌
	}
		public static void inputScores() {
		for(int i = 0; i < scores.length; i++) {
    		System.out.print("각 학생 점수> ");
    		scores[i] = scanner.nextInt(); // scores에 i 값을 이용해 각 인덱스에 점수를 넣어줌
    	}
	}
		public static void printScores() {
			for(int i = 0; i < scores.length; i++) {
        		System.out.println("학생" +"["+ i +"] "+ scores[i]);
        	}
		}
		public static void printAnalysis() {
			for(int i = 0; i < scores.length; i++) {
        		max = scores[i] > max ? scores[i] : max;
        		average += scores[i];
        	}
        	System.out.println("최고 점수는 " + max + " 이며" + " 평균 점수는 " + (double)average/studentNum + " 입니다.");
		}
		public static void setRun() {
			run = false;
		}
		

}

0개의 댓글