Java

[Java] 예제3 (학생 관리 프로그램)

에띠 2022. 4. 17. 15:36
728x90

학생 관리 프로그램을 만들어보자.

결과
메뉴를 선택하세요.(1. 입력 2. 출력 3. 검색 4. 삭제 5. 수정 6. 종료) > 1
학번을 입력하세요 : 10000
반을 입력하세요 : 1
이름을 입력하세요 : 김사과
나이를 입력하세요 : 20
연락처를 입력하세요 : 010-1111-1111

메뉴를 선택하세요.(1. 입력 2. 출력 3. 검색 4. 삭제 5. 수정 6. 종료) > 2
학번 : 10000
반 : 1
이름 : 김사과
나이 : 20
연락처 : 010-1111-1111
....

메뉴를 선택하세요.(1. 입력 2. 출력 3. 검색 4. 삭제 5. 수정 6. 종료) > 3
학번을 입력하세요 : 10000
학번 : 10000
반 : 1
이름 : 김사과
나이 : 20
연락처 : 010-1111-1111
✅ 찾지 못했을 경우 -> "찾는 학생의 정보가 없습니다."

메뉴를 선택하세요.(1. 입력 2. 출력 3. 검색 4. 삭제 5. 수정 6. 종료) > 4
삭제할 학생의 학번을 입력하세요 : 10000
삭제되었습니다.

메뉴를 선택하세요.(1. 입력 2. 출력 3. 검색 4. 삭제 5. 수정 6. 종료) > 5
수정할 학생의 학번을 입력하세요 : 10000
반을 입력하세요 : 1
이름을 입력하세요 : 김사과
나이를 입력하세요 : 20
연락처를 입력하세요 : 010-1111-1111

수정되었습니다

 

 

student 클래스

public class Student {
    private long stuNum;
    private int classNum;
    private String name;
    private int age;
    private String phone;

    public Student(long stuNum, int classNum, String name, int age, String phone) {
        this.stuNum = stuNum;
        this.classNum = classNum;
        this.name = name;
        this.age = age;
        this.phone = phone;
    }

    public long getStuNum() {
        return stuNum;
    }

    public void setStuNum(int stuNum) {
        this.stuNum = stuNum;
    }

    public int getClassNum() {
        return classNum;
    }

    public void setClassNum(int classNum) {
        this.classNum = classNum;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "[ " + name + " | " + "학번 : " + stuNum + ", 반 : " +
                classNum + ", 나이 : " + age + ", 연락처 : " + phone + " ] ";
    }
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class Homework2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Student> students = new ArrayList<>();
        int classNum, age;
        String name, phone;
        long stuNum;

        while(true) {
            System.out.print("메뉴를 선택하세요.(1. 입력 2. 출력 3. 검색 4. 삭제 5. 수정 6. 종료) : ");
            int choice = sc.nextInt();

            if (choice == 6) {
                System.out.println("프로그램을 종료합니다.");
                break;
            }
            switch (choice) {
                case 1:
                    System.out.print("학번을 입력하세요 : ");
                    stuNum = sc.nextLong();
                    System.out.print("반을 입력하세요 : ");
                    classNum = sc.nextInt();
                    System.out.print("이름을 입력하세요 : ");
                    name = sc.next();
                    System.out.print("나이를 입력하세요 : ");
                    age = sc.nextInt();
                    System.out.print("연락처를 입력하세요 : ");
                    phone = sc.next();
                    students.add(new Student(stuNum, classNum, name, age, phone));
                    break;
                case 2:
                    System.out.println("********************* 학생 정보 *********************");
                    Iterator<Student> iterator = students.iterator();
                    while (iterator.hasNext()) {
                        System.out.println(iterator.next());
                    }
                    System.out.println("***************************************************");
                    break;
                case 3:
                    System.out.print("검색할 학생의 학번을 입력하세요 : ");
                    long hakbun = sc.nextLong();
                    Boolean isFind = false;
                    for (int i = 0; i < students.size(); i++) { // 학번이 존재할 경우
                        // ArrayListstudents의 i번째 요소의 학번을 가져와서 입력받은 학번과 비교
                        if (students.get(i).getStuNum() == hakbun) { 
                            isFind = true;
                            System.out.println(students.get(i));
                        }
                    }
                    if (isFind == false) {
                        System.out.println("찾는 학생의 정보가 없습니다.");
                    }
                    break;
                case 4:
                    System.out.print("삭제할 학생의 학번을 입력하세요 : ");
                    hakbun = sc.nextLong();
                    for(int i = 0; i < students.size(); i++) { // 학번이 존재할 경우
                        // ArrayListstudents의 i번째 요소의 학번을 가져와서 입력받은 학번과 비교
                        if (students.get(i).getStuNum() == hakbun) {
                            students.remove(i);
                            System.out.println("삭제 되었습니다.");
                        } else {
                            System.out.println("삭제 실패했습니다");
                        }
                    }
                    break;
                case 5:
                    System.out.print("수정할 학생의 학번을 입력하세요 : ");
                    hakbun = sc.nextLong();
                    for (int i = 0; i < students.size(); i++) {
                        // ArrayListstudents의 i번째 요소의 학번을 가져와서 입력받은 학번과 비교
                        if (students.get(i).getStuNum() == hakbun) { // 학번이 존재할 경우
                            System.out.print("반을 입력하세요 : ");
                            classNum = sc.nextInt();
                            students.get(i).setClassNum(classNum); // set 메소드 이용하여 해당 인덱스의 값 변경
                            System.out.print("이름을 입력하세요 : ");
                            name = sc.next();
                            students.get(i).setName(name); // set 메소드 이용하여 해당 인덱스의 값 변경
                            System.out.print("나이를 입력하세요 : ");
                            age = sc.nextInt();
                            students.get(i).setAge(age); // set 메소드 이용하여 해당 인덱스의 값 변경
                            System.out.print("연락처를 입력하세요 : ");
                            phone = sc.next();
                            students.get(i).setPhone(phone); // set 메소드 이용하여 해당 인덱스의 값 변경
                            System.out.println("수정했습니다.");
                        } else {
                            System.out.println("수정할 학생의 정보가 존재하지 않습니다.");
                        }
                    }
                    break;
                default:
                    System.out.println("잘못 입력하셨습니다.");
            }
        }
    }
}
728x90