C++
[java][성적 관리프로그램]
우주 코더
2018. 3. 21. 02:30
the space coding
[java][성적관리 프로그램]
package Day4 에서 코딩이 깔끔해 보이게 class 별로 나누어 주었습니다.
1. package Day4의Test class(main)입니다.
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 |
package Day4;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//컴퓨터에게 입력 해달라
Student[] st = new Student[50];//Student타입의 배열 을 생성
String who;//String who를 선언
int i=0, j;// int i=0(선언 과 동시에 i에 초기값을 설정), j(j 를 선언 );
int num=0;//int num=0; 선언과 동시에 초기 값으로 0을 설정
while(num!=6) {//num을 적용한 조건
System.out.print("1.입력 2.전체출력 3.검색 4.수정 5.삭제 6.종료 : ");//실행을 하게되면 첫번째로 나오는 것
num = sc.nextInt();// num의 값으로 sc.nextInt()을 넣어 줘서
switch(num) {//switch에서num을 조건 문으로 넣어준다.
case 1:// 입력 해서 저장하는 기능
st[i] = new Student();//st[i]에 new Student(); 객체를 넣어 준다.
System.out.print("이름 입력 : ");// 출력 next=입력?
st[i].name.setName(sc.next());// ex)김선영을 던져 준다.//생성자를 찾으러간다.
System.out.print("국어점수 입력 : ");//출력
st[i].score.setKor(sc.nextInt());//ex) 국어 점수 입력 :10을 던져 준다.//생성자를 찾으러간다.
System.out.print("영어점수 입력 : ");//출력
st[i].score.setEng(sc.nextInt());//ex) 영어 점수 입력 :20을 던져 준다.//생성자를 찾으러간다.
System.out.print("수학점수 입력 : ");//출력
st[i].score.setMath(sc.nextInt());//ex) 수학 점수 입력 :30을 던져 준다.//생성자를 찾으러간다.
i++;// i를 더해주므로써 인덱스 0공간에 입력한 부분을 저장하고 입력으로 다시 들어오게되면 후증가로 해서[i] 0에서1이됨 ,so 인덱스 1공간이 생긴다. 다른 공간에 입력
break;// 탈출하게된다.
case 2:// 전체 출력 하는 기능 다물어 보기
Student temp = new Student();//Student를 만나서 Student생성자를 찾게 된다.
for(j=0; j<st.length; j++) {// 배열
if(st[j]==null)
break;//입력 한것 에서
}
// 2번재
for(int a=0; a<j-1; a++) {// bubble sort 공부
for(int b=0; b<j-1; b++) {
if(st[b].getSum() < st[b+1].getSum()) {//getSum() 점수 합계
temp = st[b];//swap
st[b] = st[b+1];
st[b+1] = temp;
}
}
}
for(int p=0; p<j; p++) {//p= 새로 정의 입력 횟수
System.out.println(st[p].toString());//printAll()이 출력문을 반환 해주는 함 수 ;
}
break;//탈출하게 된다.
case 3:// 검색 기능
System.out.print("검색할 사람의 이름 : ");//출력
who = sc.next();// 누구 것을 수정 할지 위에 선언 한 who에 sc.next();를 넣어 준다.
for(j=0; j<st.length; j++) {//
if(st[j].name.getName().equals(who)) {//equals(who) 문자 열을 비교 할때씀
break;// 탈출하게 된다.
}
}//탈출 해서 내려 옴
System.out.println(st[j].toString());// 인덱스에 맞는 정보를 출력
break;//탈출하게 된다.
case 4:// 수정 기능
System.out.print("수정할 사람의 이름 : ");//출력// 어렵다.
who = sc.next();// 위에 선언 한 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();//K에sc.nextInt() 숫자 입력 하게 하는 기능 넣어줌
//여기서 부터 조건문
if(k==1) {//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;//null 로 만든다
for(int shift=j; shift<st.length-1-j; shift++) {//shift
st[shift] = st[shift+1];
}
st[st.length-1] = null;
//i--;
break;
case 6:
System.out.println("종료!!");
break;
}
}
sc.close();
}
} |
cs |
2. package Day4의Name class입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
package Day4;
class Name {// 이름 클래스
private String name;
public void setName(String name) {// ex)김선영을 받는 다.
this.name = name;//this.name= 받은 김선영을 넣어 주겠다.
}
public String getName() {
return name;//얻어낸 이름을 돌려 받겠다.
}
}
|
cs |
3. package Day4의Score class입니다.
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 |
package Day4;
class 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;
}
} |
cs |
4. package Day4의Sudent class입니다.
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 |
package Day4;
class Student {//Student 생성자 를 찯기위해 Student클래스로 옴
// 근데 Name객체를 만남 Name 생성자를 찾으러감
Name name ;
Score score;
// String total;
public Student () {
name=new Name();
score=new Score();
/* total= new String("이름: "+name.getName()+" 국어: "+score.getKor()+" 영어: "+score.getEng()+
" 수학: "+score.getMath()+" 총점: "+this.getSum()+
" 평균: "+this.getAvg()+"\n");*/
}
public int getSum() {// 합산
return score.getKor()+score.getEng()+score.getMath();
}
public double getAvg() {
return this.getSum() / 3.0;
}
@Override
public String toString() {
return "이름: "+name.getName()+" 국어: "+score.getKor()+" 영어: "+score.getEng()+
" 수학: "+score.getMath()+" 총점: "+this.getSum()+
" 평균: "+this.getAvg();
}
} |
cs |