반응형

오늘 아침에 간단하게 문제를 풀어보았다.

문제는 다음과 같다.

 

● 학생 관리 프로그램을 만들고자 한다.  아래 지시사항들을 수행할 수 있는 프로그램을 작성하시오.

1.학생의 이름, 학번, 성별을 저장하는 class를 작성하시오.

2.다음 학생들에 대한 정보를 저장할 수 있는 변수들을 생성하시오.

  • 이름: 호랑이, 학번:2009038033, 성별: 남
  • 이름: 고양이, 학번: 2007012034, 성별: 여

3. 해당 학생들을 하나의 배열에 저장하시오.

4. 이름이 호랑이인 학생의 학번을 2019038033으로, 이름이 고양이인 학생의 이름과 성별을 변경하시오.

5. 최종 완성된 배열을 화면에 출력하시오.(이름, 학번, 성별이 나타나도록 출력)

 

 

● 주어진 문제를 해결하기 전에

먼저 같은 패키지 안에 새로운 class인 Student를 생성하여 이름과 학번, 성별에 관하여 name, number, gender로  메소드와 매개변수를 주었고 4번과 5번을 풀기 위해 setNumber와 setName, setGender 메소드를 생성하였다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package morning0629;
 
public class Student {
    String name;
    int number;
    String gender;
    
    public Student(String n, int num, String g) {
        name=n;
        number=num;
        gender=g;
    }
    public void setNumber(int i){
        number=i;
    }
    public void setName(String n) {
        name=n;
        
    }
    public void setGender(String n) {
        gender=n;
    }
}
cs

 

● 1~3번 문제를 해결하기 위해

class를 생성한 후에 package morning0629 의 class morning에  ArrayList 모듈을 가져온 후에 class Student를 활용하여  객체 배열인 ArrayList<Student> students = new ArrayList<Student>(); 를 생성시켜주었다.

그리고 배열 안에 각각의 이름과 학번, 성별을 저장하고 출력하였다. 

 

 

1
2
3
4
5
6
7
8
ArrayList<Student> students = new ArrayList<Student>(); //배열 목록? 객체 배열 (ArrayList) 생성
        students.add(new Student("호랑이",2009038033,"남"));
        students.add(new Student("고양이",2007012034,"여"));
        
        System.out.println("첫 번째~세 번째 문제");
        for(Student item:students) {
            System.out.println(String.format("이름:%s, 학번:%d, 성별:%s",item.name,item.number,item.gender));
        }
cs

 

● 4~5번 문제를 해결하기 위해

if 조건문을 사용하여 students.get(i).name=="호랑이" 에 만족할 때의 i번째 배열의 학번을 변경하고 저장하였다.

마찬가지로  students.get(i).name=="고양이" 에 만족할 때 이름과 성별을 변경하고 저장하였다.

그 후에 for 문을 활용하여 for(Student item:students)으로 한번에 배열을 출력하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
System.out.println("학번 바꾸기, 이름 바꾸기, 성별 바꾸기"); 
        System.out.println();
        for(int i=0; i<students.size(); i++) {
            if(students.get(i).name=="호랑이") {
                students.get(i).setNumber(2019038033);
            }
            if(students.get(i).name=="고양이") {
                students.get(i).setName("kobalja");
                students.get(i).setGender("남");
            }
        }
        System.out.println("네 번째~다섯 번째 문제");
        for(Student item:students) {
            System.out.println(String.format("이름:%s, 학번:%d, 성별:%s",item.name,item.number,item.gender));
        }
cs

 

 

문제를 해결하였고 전체코드와 결과이다.

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
package morning0629;
 
import java.util.ArrayList;
import java.util.Scanner;
 //for(클래스 item: 배열이름)
//배열이름.add(new 클래스(메서드의 매개변수));
// 배열의 사이즈를 이용한 for문으로 배열 변화주기
public class morning { 
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList<Student> students = new ArrayList<Student>(); //배열 목록? 객체 배열 (ArrayList) 생성
        students.add(new Student("호랑이",2009038033,"남"));
        students.add(new Student("고양이",2007012034,"여"));
        
        System.out.println("첫 번째~세 번째 문제");
        for(Student item:students) {
            System.out.println(String.format("이름:%s, 학번:%d, 성별:%s",item.name,item.number,item.gender));
        }
        System.out.println();
 
        System.out.println("학번 바꾸기, 이름 바꾸기, 성별 바꾸기"); 
        System.out.println();
        for(int i=0; i<students.size(); i++) {
            if(students.get(i).name=="호랑이") {
                students.get(i).setNumber(2019038033);
            }
            if(students.get(i).name=="고양이") {
                students.get(i).setName("kobalja");
                students.get(i).setGender("남");
            }
        }
        System.out.println("네 번째~다섯 번째 문제");
        for(Student item:students) {
            System.out.println(String.format("이름:%s, 학번:%d, 성별:%s",item.name,item.number,item.gender));
        }
        
    }
 
}
cs

실행 결과 문제에서 제시한 답으로 출력되었다.

코드 실행 결과

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기