hyeonga_code

Java_성적 관리 프로그램 작성하기 본문

Java

Java_성적 관리 프로그램 작성하기

hyeonga 2023. 10. 30. 07:59
반응형


- 성적 입력받아 연산하는 클래스 작성
=====

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
package oop.sungjuk;
 
import java.util.Scanner;
 
public class basieEx {
 
    public static int input() {
        // 매개 변수는 없고 반환형이 int인 'input' 메소드를 선언
        Scanner in = new Scanner(System.in);    // 입력 받는 객체 생성
        System.out.print("Input number: ");        // 출력됨
        int num = in.nextInt();                    // 입력 받음
        return num;                                // 입력받은 num을 반환
    }
 
    public static int sum(int a, int b) {
        // 매개 변수가 있고 반환형이 int 인 'sum' 메소드를 선언
        return a + b;
    }
 
    public static void output(int a, int b, int c) {
        // 매개 변수가 있고 반환형이 없는 'output' 메소드 선언
        System.out.printf("%d + %d = %d \n", a, b, c);
    }
 
    public static void intro() {
        // 매개 변수가 없고, 반환형도 없는 'intro' 메소드 선언
        System.out.println("+ Sum + ");
    }
 
    public static void main(String[] args) {
        intro();                        // intro() 메소드 호출
        int num1 = input();                // input() 메소드 호출
            // 반환된 num 값이 num1 값으로 지정됨
        int num2 = input();                // input() 메소드 호출
            // 반환된 num 값이 num2 값으로 지정됨
        int tot = sum(num1, num2);        // sum(a, b)메소드 호출
            // 매개 변수의 개수가 일치하는 메소드만 불러올 수 있음    
        
        System.out.println(tot);        // sum()메소드의 반환값을  출력
        
        output(num1, num2, tot);        // output(a, b, c) 메소드 호출
    }
}




 - getter와 setter를 사용하여 성적 순위 출력
=====

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
import java.util.*;
 
class Member {
    String name;
    private int kor, eng;
    private int tot;
    private int rank;
 
    Member(String name, int kor, int eng) {
        // 생성자 선언
        this.name = name;
        this.kor = kor;
        this.eng = eng;
        this.tot = kor + eng;
    }
    public String getName() {
        return name;
        // 이름 변경 불가
    }
    public void setKor(int kor) {
        this.kor = kor;
    }
    public int getKor() {
        return kor;
    }
    public void setEng(int eng) {
        this.eng = eng;
    }
    public int getEng() {
        return eng;
    }
    public void setTot() {
        tot = kor + eng;
    }
    public int getTot() {
        return tot;
    }
    public int getRank() {
        return rank;
    }
    public void clearRank() {
        rank = 1;
    }
    public void plusRank() {
        rank++;
    }
 
    void disp() {
        // 출력
        System.out.println(name + "'s total score : " + tot + " | Rank : " + rank);
    }
}
 
public class same {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 입력 기능
        System.out.print("Input people count: ");
        int people = in.nextInt();
        // 인원수 입력 받기 
        Member[] mb = new Member[people];    // 객체 선언부
        // 입력받은 인원수 크기의 배열 생성
 
        for (int i = 0; i < people; i++) {
            // 인원 수 만큼 입력 받기
            System.out.print("Input name: ");
            String name = in.next();
            System.out.printf("Input %s's kor: ", name);
            int kor = in.nextInt();
            System.out.printf("Input %s's eng: ", name);
            int eng = in.nextInt();
            mb[i] = new Member(name, kor, eng);    // 객체 생성부
        }
 
        for (int i = 0; i < people; ++i) {
            // i = 내 성적
 
            mb[i].clearRank();
            for (int j = 0; j < people; ++j) {
                // j = 다른 학생 성적
                if (mb[i].getTot() < mb[j].getTot()) {
                    // 내 성적이 다른 학생 성적의 총 점보다 작으면
                    mb[i].plusRank();
                    // 내 순위를 하나 올린다.
                }
            }
        }
 
        for (int i = 0; i < people; ++i) {
            mb[i].disp();
        }
    }
}

 

반응형