학생의 성적을 저장하고 검색하고 수정하고 삭제하고 전체 출력할 수 있는 기능을 만들어
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("검색할 학생의 이름을 입력하세요 :");
int index = checkIndex(g.st,name); //이름과 같은 인덱스 찾기
System.out.println( g.st.toString());
break;
case 3: //수정시
System.out.println("수정할 학생의 이름을 입력하세요 : ");
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
|