\

해병 코딩

728x90
반응형

성적 처리 프로그램 다른 버전 

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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
 
import java.util.Scanner;//입력
 
class Name {
    Name(){
 
    }
    private String name;//변수 지정시 private 선언한 클래스만 주잇다
    // 그러기에 set, get을 지정해주어 다른 class에서도 사용하게 된다
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}
 
class Score {
    Score(){
 
    }
    private int kor, eng, math;
 
    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 setMath(int math) {
        this.math = math;
    }
    public int getMath() {
        return math;
    }
}
class Student {//총점과 평균을  전체 출력 구하는 함수를 구한다
    int sum;//과목 3개 더해주는거
    int total;//과목 3개더해는것을 더해주는 변수
    double avg;//평군
    Name name;// 지역변수
    Score score; 
    Student(){// 생성자를 만드는것이 좋다 
        name = new Name();//
        score = new Score();
    }
 
 
    public int getSum() {// 3과목의 점수는 얻어주는곳
        total = score.getKor()+score.getEng()+score.getMath();
        return total;
    }
 
    public double getAvg() {
        avg =  getSum() / 3.0;
        return avg;
    }
 
    public String printAll() {// 전체 출력하기 위한거//has~a 관계
        return "이름: "+name.getName()+" 국어: "+score.getKor()+"  영어: "+score.getEng()+
                " 수학: "+score.getMath()+" 총점: "+this.getSum()+
                " 평균: "+this.getAvg()+"\n";
    }
 
    // toString 으로 전체 출력 하는부분 수정 희망
    /*  @Override
    public String toString() {
        return "이름 : " + name.getName() + " 국어 : " + kor.getScore() + " 영어 : " + eng.getScore() + " 수학 : "
                + math.getScore() + " 총점 : " + this.getTotal() + " 평균 : " + this.getAvg() + "\n";
    }
 
    return super.toString();
}*/
}
 
public class GradeMng {
    static Scanner sc = new Scanner(System.in);//콘솔 입력 
    static Student[] st = new Student[50];// student 배열 객체 생선
    String who;// who 이름 누구를 수정 or 삭제 할것이냐 ->객체
    static int i=0;// i라는 변수를 만들어 주야한다-> case 1에서 쓰기 위해서 
    int j;
    static int num=0;
    
    public static void input(){//입력 // 
        st[i] = new Student();//객체를 생성 첫번째//student 안에 이름 과
        System.out.print("이름 입력 : ");
        st[i].name.setName(sc.next());//student 클래스에서 만들어준 name을로 값을 불러준다
        System.out.print("국어점수 입력 : ");
        st[i].score.setKor(sc.nextInt());
        System.out.print("영어점수 입력 : ");
        st[i].score.setEng(sc.nextInt());
        System.out.print("수학점수 입력 : ");
        st[i].score.setMath(sc.nextInt());
    }
    
    
    public static void main(String[] args) {
        
        
 
        
        
        Scanner sc = new Scanner(System.in);//콘솔 입력 
        Student[] st = new Student[50];// student 배열 객체 생선
        String who;// who 이름 누구를 수정 or 삭제 할것이냐 ->객체
        int i=0, j;// i라는 변수를 만들어 주야한다-> case 1에서 쓰기 위해서 
        int num=0;
        
        while(num!=6) {//!->not 6에서 while 문 탈출
            System.out.println("------------성적 관리 프로그램-------------");
            System.out.print("1.입력  2.전체출력  3.검색  4.수정  5.삭제  6.종료 : ");
 
            num = sc.nextInt();// 1~6까지 입력 할수있게 스케너 쓴다 
            switch(num) {
            case 1:
                st[i] = new Student();//객체를 생성 첫번째//student 안에 이름 과
                System.out.print("이름 입력 : ");
                st[i].name.setName(sc.next());//student 클래스에서 만들어준 name을로 값을 불러준다
                System.out.print("국어점수 입력 : ");
                st[i].score.setKor(sc.nextInt());
                System.out.print("영어점수 입력 : ");
                st[i].score.setEng(sc.nextInt());
                System.out.print("수학점수 입력 : ");
                st[i].score.setMath(sc.nextInt());
                i++;// 증가식  입력받은 값의 주소를 수를 늘려서 추가되게된다
                break;
 
            case 2://전체 출력
                Student temp ;// 
                for(j=0; j<st.length; j++) {
                    if(st[j]==null)//null 인셉션 에러
                        break;       // 50번 돌면서 null인부분찾느다    
                }
                for(int a=0; (a-2)<j-1; a++) {
                    for(int b=0; b<j-1; b++) {
                        if(st[b].getSum() <st[b+1].getSum()) {
                            //swap  출력 할때 총점이 높은 순으로 출력
                            temp = st[b];
                            st[b] = st[b+1];
                            st[b+1= temp;
                        }
                    }
                }
                for(int p=0; p<j; p++) {
                    System.out.println(st[p].printAll());
                }
                break;
            case 3://검색
                System.out.println();
                System.out.print("검색할 사람의 이름 : ");
                who = sc.next();// 
                for(j=0; j<st.length; j++) {
                    if(st[j].name.getName().equals(who)) {
                        break;
                    }
                }
                System.out.println(st[j].printAll());//
                break;
            case 4://수정
                System.out.print("수정할 사람의 이름 : ");
                who = sc.next();
                for(j=0; j<st.length; j++) {
                    if(st[j].name.getName().equals(who))
                        break;
                }
                System.out.print("수정할 내용은? 1.국어  2.영어  3.수학 : ");
                int k = sc.nextInt();
                if(k==1) {
                    System.out.print("국어점수 수정 : ");
                    st[j].score.setKor(sc.nextInt());
                }
                else if(k==2) {
                    System.out.print("영어점수 수정 : ");
                    st[j].score.setEng(sc.nextInt());
                }
                else if(k==3) {
                    System.out.print("수학점수 수정 : ");
                    st[j].score.setMath(sc.nextInt());
                }
                else
                    System.out.println("잘못된 입력입니다.");
                break;
            case 5://수정
                System.out.print("삭제할 사람의 이름 : ");
                who = sc.next();
                for(j=0; j<st.length; j++) {
                    if(st[j].name.getName().equals(who)) {
                        break;
                    }
                }
                st[j] = null;
                for(int shift=j; shift<st.length-1-j; shift++) {
                    st[shift] = st[shift+1];
                }
                st[st.length-1= null;
                i--;
                break;
                
            case 6://종료
                System.out.println("종료!!");
                break;
            }
        }
        sc.close();
    }
 
}
cs

2021.03.29 - [JAVA/java 성적관리 프로그램] - [JAVA]성적관리 프로그램_V1.0/변수 선언 /변수 사용하기

 

[JAVA]성적관리 프로그램_V1.0/변수 선언 /변수 사용하기

2021.03.29 - [JAVA/JAVA(자바)설치 및 툴 이용(ECLIPSE)] - [JAVA] 자바 설치 및 환경 하기 JDK 1.8 버전 [JAVA] 자바 설치 및 환경 하기 JDK 1.8 버전 www.oracle.com/kr/java/technologies/javase/javase-jdk8..

marine1188.tistory.com

728x90
반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band