포스트

시험 점수 관리 프로그램 제작 방법

Java 기반의 점수 관리 프로그램

  • Tool :
    Java Eclipse


🔔 시험 점수 관리 프로그램

📌 프로그램 제작 기획

  • 학생들의 시험 점수를 관리할 수 있는 프로그램을 제작하려고 합니다.
  • 각 학생의 각 과목 당 시험 점수를 입력하고 출력할 수 있는 메서드를 생성하려고 합니다.
  • 과목별 시험 점수의 총점을 학생별로 구분하여 최고점자와 최저점자를 구분하려고 합니다.

📌 프로그램 핵심 기능

  • 학생들의 과목별 시험 점수를 입력할 수 있도록 설정하였습니다.
  • 각 학생별 시험 점수를 일괄적으로 관리하기 위해 각 과목의 시험 점수를 출력하였습니다.
  • 학생별 시험 점수의 총점을 계산하였습니다.
  • 학생별 시험 점수의 총점을 구분하여 최고점자와 최저점자를 구분하였습니다.

📌 프로그램 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import java.util.Scanner;

public class ScoreRanking {

	// 점수 입력 및 출력 메서드 생성
	// 1. 학생들의 과목별 점수를 입력할 수 있도록 설정하였습니다.
	// 2. 학생별 합산된 점수 중 최댓값과 최솟값을 출력하도록 설정하였습니다.
	// 3. 최댓값 또는 최솟값이 할당된 학생의 번호와 합산된 점수를 표시하였습니다.
	public static void main(String[] args) {

		// 학생 3명의 국어, 영어, 수학, 자바 점수를 참조할 메모리 공간을 생성하였습니다.
		int[][] lecture = new int[3][4];
		// 점수를 입력할 scan 변수를 정의(선언)하였습니다.
		Scanner scan = new Scanner(System.in);
		// 과목을 표현하기 위한 major 배열을 생성하였습니다.
		String[] major = {"국어", "영어", "수학", "자바"};
		
		// 점수 입력을 위한 for 반복문을 생성하였습니다.
		for(int i = 0; i < lecture.length; i++) {
			for(int j = 0; j < lecture[i].length; j++) {
				System.out.print((i+1) + "번째 학생의 " + major[j] + "점수 = ");
				// 점수는 직접 입력하여 생성할 수 있도록 설정하였습니다.
				lecture[i][j] = scan.nextInt();
			}
			// 각 학생의 각 과목 당 점수를 출력하였습니다.
			System.out.println((i+1) + "번 학생의 점수 = " + "국어 : " + lecture[i][0] + ", 영어 : " + lecture[i][1] + ", 수학 : " + lecture[i][2] + ", 자바 : " + lecture[i][3]);
		}
		
		// 최댓값을 초기화하였습니다.
		int maxScore = Integer.MIN_VALUE;
		// 최솟값을 초기화하였습니다.
		int minScore = Integer.MAX_VALUE;
		// 최댓값을 가지는 학생 번호를 초기화하였습니다.
		int maxScoreStudent = 0;
		// 최솟값을 가지는 학생 번호를 초기화하였습니다.
		int minScoreStudent = 0;
		// 총점을 참조하기 위한 변수를 생성하였습니다.
		int sum = 0;
		
		// 학생의 번호를 알기 위한 for 반복문을 생성하였습니다.
		for(int i = 0; i < lecture.length; i++) {
			
			// 점수 합산을 위한 for 반복문을 생성하였습니다.
			for(int j = 0; j < lecture[i].length; j++) {
				// sum 변수를 이용하여 한 학생(lecture[i])의 점수를 합산하였습니다.
				sum += lecture[i][j];
			}
						
			// 초기화 된 최댓값보다 학생의 총점이 클 경우 해당 총점을 최댓값으로 설정하였고 학생의 번호를 할당시켰습니다.  
			if (maxScore < sum) {
				maxScore = sum;
				maxScoreStudent = i+1;
			}
			// 초기화 된 최솟값보다 학생의 총점이 작을 경우 해당 총점을 최솟값으로 설정하였고 학생의 번호를 할당시켰습니다.
			if (minScore > sum) {
				minScore = sum;
				minScoreStudent = i+1;
			}
			// 다음 학생의 총점을 계산하기 위해 총점을 초기화하였습니다.
			// 단, maxScore 및 minScore에 대한 이전 학생의 총점은 변수에 할당시킨 상태입니다. 
			sum = 0;
			
		}
		
		// 최고점자의 번호와 총점을 출력하였습니다.
		System.out.println("최고점자 = " + maxScoreStudent + "번 학생, " + "총점 = " + maxScore);
		// 최저점자의 번호와 총점을 출력하였습니다.
		System.out.println("최저점자 = " + minScoreStudent + "번 학생, " + "총점 = " + minScore);
		
	}

}

// 출력 내용
// 1번째 학생의 국어점수 = 100
// 1번째 학생의 영어점수 = 100
// 1번째 학생의 수학점수 = 100
// 1번째 학생의 자바점수 = 100
// 1번 학생의 점수 = 국어 : 100, 영어 : 100, 수학 : 100, 자바 : 100
// 2번째 학생의 국어점수 = 50
// 2번째 학생의 영어점수 = 50
// 2번째 학생의 수학점수 = 50
// 2번째 학생의 자바점수 = 50
// 2번 학생의 점수 = 국어 : 50, 영어 : 50, 수학 : 50, 자바 : 50
// 3번째 학생의 국어점수 = 10
// 3번째 학생의 영어점수 = 10
// 3번째 학생의 수학점수 = 10
// 3번째 학생의 자바점수 = 10
// 3번 학생의 점수 = 국어 : 10, 영어 : 10, 수학 : 10, 자바 : 10
// 최고점자 = 1번 학생, 총점 = 400
// 최저점자 = 3번 학생, 총점 = 40




이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
<>