학생의 성적을 저장하고 검색하고 수정하고 삭제하고 전체 출력할 수 있는 기능을 만들어

1. 추가(이름, 국,영,수)
2. 검색 (이름)
3. 수정 (이름 -> 국영수 점수 수정)
4. 삭제 (이름)
5. 전체 출력
6. 종료

 

* ArrayList / Vector 사용

 

 

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
 
public class Student {
    String name;
    int kor;
    int eng;
    int math;
    
    public Student(String name, int kor, int eng, int math) {        //매개변수 3개 받는 생성자
        this.name = name;
        this.kor = kor;
        this.eng = eng;
        this.math = math;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getKor() {
        return kor;
    }
 
    public void setKor(int kor) {
        this.kor = kor;
    }
 
    public int getEng() {
        return eng;
    }
 
    public void setEng(int eng) {
        this.eng = eng;
    }
 
    public int getMath() {
        return math;
    }
 
    public void setMath(int math) {
        this.math = math;
    }
    
    public int total() {
        return kor + math+eng;
    }
    
    public float avg() {
        return (kor + math+eng);
    }
 
    @Override
    public String toString() {
        String str =name+"   "+ kor+"   "+math+"   "+eng+"   ";
        return str;
    }
    
    
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

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
import java.util.ArrayList;
import java.util.Scanner;
 
/*
 * 1. 추가(이름, 국,영,수)
 * 2. 검색 (이름)
 * 3. 수정 (이름 -> 국영수 점수 수정)
 * 4. 삭제 (이름)
 * 5. 전체 출력
 * 6. 종료
 * 
 * */
public class Grade {
    
    arraylist <Student> st;
     
    Grade(){
        st = new arraylist<Student>();                                //arraylist를 Student 클래스 타입으로 가져옴
    }
    
    static int checkIndex(Vector<Student> st2, String name) {        //이름 검색 시 해당하는 학생 인덱스 찾기 위한 메소드
        int index = 70;
        for (int i = 0; i < st2.size(); i++) {                        //st 크기만큼 반복
            if(st2.get(i).name.equals(name)) {                        //st에 저장된 이름과 입력된 이름 같을 때
                index = i;                                            //index 값으로 대입
            }else index=-1;
        }
        return index;                                                //반환
    } 
    
    
    public static void main(String[] args) {
        
        Grade g = new Grade();                                        //객체 선언
        Scanner sc = new Scanner(System.in);
        int num = 0;
        
        do {                                                        //6입력 전까지 반복
            System.out.println("1.입력   2.검색   3.수정   4.삭제   5.전체 출력   6.종료");
            num = sc.nextInt();
            
            switch(num) {                                            //사용하는 기능을 버튼으로 받아 case로 실행
            case 1:                                                    //이름과 성적 입력
                System.out.println("이름, 국어, 영어, 수학 순으로 입력하세요 :");
                g.st.add(new Student(sc.next(), sc.nextInt(), sc.nextInt(), sc.nextInt()));    //생성자에 바로 넣기
                break;
                
            case 2:                                                    //검색 시
                System.out.println("검색할 학생의 이름을 입력하세요 :");
                String name = sc.next();
                int index = checkIndex(g.st,name);                    //이름과 같은 인덱스 찾기
                System.out.println( g.st.toString());
                
                break;
            case 3:                                                    //수정시
                System.out.println("수정할 학생의 이름을 입력하세요 : ");
                String changename = sc.next();
                int changeIndex = checkIndex(g.st,changename);        //이름과 같은 인덱스 찾기
                System.out.println("변경할 성적 1. 국어 2. 수학 3. 영어");
                int changnum = sc.nextInt();
                if(changnum== 1) {
                    System.out.println("변경할 점수 : ");
                    g.st.get(changeIndex).setKor(sc.nextInt());        //set 메소드 이용하여 값 변경
                }else if(changnum == 2) {
                    System.out.println("변경할 점수 : ");
                    g.st.get(changeIndex).setMath(sc.nextInt());    //set 메소드 이용하여 값 변경
                }else if(changnum== 3) {
                    System.out.println("변경할 점수 : ");
                    g.st.get(changeIndex).setEng(sc.nextInt());        //set 메소드 이용하여 값 변경
                }
                else System.out.println("학생이 없습니다.");
                    
                break;
            case 4:                                                 //삭제 시
                System.out.println("삭제할 학생의 이름을 입력하세요 : ");
                String deletename = sc.next();
                int deleteIndex = checkIndex(g.st,deletename);        //이름과 같은 인덱스 찾기
                g.st.remove(deleteIndex);                            //remove 이용하여 삭제
                break;    
            case 5:
                System.out.println("--------------전체 학생---------------");
                
                for (int i = 0; i < g.st.size(); i++) {
                    System.out.println(g.st.get(i).toString()+ g.st.get(i).total() + "   "+g.st.get(i).avg());                    //toString 이용하여 전체 성적 출력
                }
                break;    
            }
            
        }while(num != 6);
 
    }
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

'JAVA' 카테고리의 다른 글

람다식_2  (0) 2019.06.20
람다식  (0) 2019.06.20
제네릭 예제_제네릭 클래스  (0) 2019.06.20
제네릭 예제  (0) 2019.06.20
제네릭  (0) 2019.06.20

+ Recent posts