[국비학원 기록/자바] 스캐너, 2차원 배열 활용한 학생 5명의 성적 출력 프로그램 구현하기
my code archive
article thumbnail
반응형
스캐너, 2차원 배열 활용한 학생 5명의 성적 출력 프로그램 구현하기

 

<조건>

  • 학생은 5명이다. 5명을 넘어가면 "더 이상 입력할 수 없습니다." 메세지 출력
  • 학생 번호는 1~5번 사이이다.
  • 과목은 국어, 영어, 수학 총 3과목이 있다.
  • 1.입력 2.출력 3.종료 옵션이 있고 입력 전에 2번을 누르면 "아직 입력된 정보가 없습니다." 메세지 출력
구현 코드
1. 조건을 충족하기 위한 상수 구현

2. 각각 필요한 배열 생성

3. [1. 입력 2. 출력 3. 종료] 전체 조건문 형식은 이렇게 된다.
Scanner scan = new Scanner(System.in);

if(userChoice ==1){



}else if(userChoice == 2){


}else if(user Choice == 3){
	System.Out.println("사용해 주셔서 감사합니다.");
    break;   //프로그램 종료
}

scan.close();  //스캐너 종료
4. 전체 코드
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import java.util.Scanner;
 
public class GradeSystem {
 
    static final int STUDENT_SIZE = 5;
    static final int SUBJECT_SIZE = 3;
 
    // 학생 번호는 1~5 사이이다.
    static final int ID_MIN = 1;
    static final int ID_MAX = 5;
 
    static final int SCORE_MIN = 0;
    static final int SCORE_MAX = 100;
 
    static final int POS_KOREAN = 0;
    static final int POS_ENGLISH = 1;
    static final int POS_MATH = 2;
 
    public static void main(String[] args) {
 
        Scanner scan = new Scanner(System.in);
 
        // 번호용 배열
        int[] idArray = new int[STUDENT_SIZE];
        // 이름용 배열
        String[] nameArray = new String[STUDENT_SIZE];
        // 점수용 배열
        int[][] scoreArray = new int[STUDENT_SIZE][SUBJECT_SIZE];
 
        // 각 배열에 입력할 인덱스
        int idx = 0;
 
        while (true) {
            System.out.println("1.입력 2.출력 3.종료");
            System.out.print(">");
            int userChoice = scan.nextInt();
 
            if (userChoice == 1) {
                if (idx < STUDENT_SIZE) {
                    int tempInput = 0;
                    System.out.println("번호:");
                    tempInput = scan.nextInt();
 
                    while (!(tempInput >= ID_MIN && tempInput <= ID_MAX)) {
                        System.out.println("잘못 입력하셨습니다.");
                        System.out.print("번호 : ");
                        tempInput = scan.nextInt();
                    }
                    idArray[idx] = tempInput;
 
                    // scan.nextLine();
                    System.out.print("이름:");
                    scan.nextLine();
                    nameArray[idx] = scan.nextLine();
 
                    // 국어 점수
                    System.out.print("국어:");
                    tempInput = scan.nextInt();
 
                    while (!(tempInput >= SCORE_MIN && tempInput <= SCORE_MAX)) {
                        System.out.println("잘못 입력하셨습니다.");
                        System.out.print("국어:");
                        tempInput = scan.nextInt();
                    }
                    scoreArray[idx][POS_KOREAN] = tempInput;
 
                    // 영어 점수
                    System.out.print("영어:");
                    tempInput = scan.nextInt();
 
                    while (!(tempInput >= SCORE_MIN && tempInput <= SCORE_MAX)) {
                        System.out.println("잘못 입력하셨습니다.");
                        System.out.print("영어:");
                        tempInput = scan.nextInt();
                    }
                    scoreArray[idx][POS_ENGLISH] = tempInput;
 
                    // 수학 점수
                    System.out.print("수학:");
                    tempInput = scan.nextInt();
 
                    while (!(tempInput >= SCORE_MIN && tempInput <= SCORE_MAX)) {
                        System.out.println("잘못 입력하셨습니다.");
                        System.out.print("수학:");
                        tempInput = scan.nextInt();
                    }
                    scoreArray[idx][POS_MATH] = tempInput;
                    idx++;
 
                } else {
                    System.out.println("더이상 입력하실 수 없습니다.");
                }
 
            } else if (userChoice == 2) {
                
                if (idx==0) {
                    System.out.println("아직 입력된 정보가 없습니다.");
                } else {
                    
                    System.out.println("-----------------");
                
                    for(int i=0;i<idx;i++) {
                        int id = idArray[i];
                        String name = nameArray[i];
                        
                        int kor = scoreArray[i][POS_KOREAN];
                        int eng = scoreArray[i][POS_ENGLISH];
                        int math = scoreArray[i][POS_MATH];
                        
                        int sum = eng + kor + math;
                        double avg = (double) sum / SUBJECT_SIZE;
 
                        System.out.println("----" + (i+1+ "번 학생의 정보----");
                        System.out.printf("번호: %03d번 이름:%s\n", id, name);
                        System.out.printf("국어: %03d점 영어: %03d점 수학: %03d점\n", kor, eng, math);
                        System.out.printf("총점: %03d점 평균:%06.2f점\n", sum, avg);
                    }
                    System.out.println("-----------------");
                    System.out.println();
                }
                
            } else if (userChoice == 3) {
                System.out.println("사용해주셔서 감사합니다.");
                break;
            }
 
        }
 
        scan.close();
 
    }
 
}
cs
5. 출력 화면

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형