gukbi

다음을 이용해서 관리형 프로그램을 작성해 보자.

//관리클래스

class Human {
    private long id;
    private int age;
    private String name;
    private double height;
}

//메뉴

    System.out.println("\n=== Human 관리 시스템 ===");
    System.out.println("1. 추가");
    System.out.println("2. 목록 조회");
    System.out.println("3. ID로 개별 조회");
    System.out.println("4. ID로 삭제");
    System.out.println("5. 이름으로 조회");
    System.out.println("6. 이름으로 삭제");
    System.out.println("7. 종료");
    System.out.print("메뉴를 선택하세요: ");

//실행시

=== Human 관리 시스템 ===
1. 추가
2. 목록 조회
3. ID로 개별 조회
4. ID로 삭제
5. 이름으로 조회
6. 이름으로 삭제
7. 종료

메뉴를 선택하세요: 1
이름: 홍길동
나이: 30
키: 175.5
Human 추가 완료: Human{id=1, age=30, name='홍길동', height=175.5}
메뉴를 선택하세요: 2
=== 전체 목록 ===
Human{id=1, age=30, name='홍길동', height=175.5}
class Human {
    private long id;
    private int age;
    private String name;
    private double height;

    public Human(){}
    public Human(int id, int age, String name, double height){
        this.id = id;
        this.age = age;
        this.name = name;
        this.height = height;
    }

    public String toString(){
        return "Human{id=" + id + ", age=" + age + ", name=" + name + ", height=" + height + "}";
    }

    public static void printMenu(){
        System.out.println("=== Human 관리 시스템 ===");
        System.out.println("1. 추가");
        System.out.println("2. 목록 조회");
        System.out.println("3. ID로 개별 조회");
        System.out.println("4. ID로 삭제");
        System.out.println("5. 이름으로 조회");
        System.out.println("6. 이름으로 삭제");
        System.out.println("7. 종료");
        System.out.print("메뉴를 선택하세요: ");
    }

    public static Human create(long id){
        java.util.Scanner sc = new java.util.Scanner(System.in);
        System.out.print("이름: ");
        String name = sc.nextLine().trim();
        System.out.print("나이: ");
        int age = Integer.parseInt(sc.nextLine().trim());
        System.out.print("키: ");
        double height = Double.parseDouble(sc.nextLine().trim());
        sc.close();
        return new Human(id,name,age,height);
    }

    public void setId(long id){
        this.id = id;
    }
    public long getId(){
        return this.id;
    }
    
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return this.age;
    }

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

    public void setHeight(double height){
        this.height = height;
    }
    public double getHeight(){
        return this.height;
    }
}

public class Main{
    public static void main(String[] args){
        java.util.Scanner sc = new java.util.Scanner(System.in);
        java.util.ArrayList<Human> humans = new java.util.ArrayList<Human>();
        int input = 0;
        while(input != 7) {
            Human.printMenu();
            input = Integer.parseInt(sc.nextLine().trim());
            switch(input){
                case 1:
                    humans.add(Human.create(humans.size() + 1));
                    break;
                case 2:
                    System.out.println("=== 전체 목록 ===");
                    for(Human h : humans){
                        System.out.println(h);
                    }
                    break;
                case 3:
                    System.out.print("id를 입력하여 주세요.");
                    long id = Long.parseLong(sc.nextLine().trim());
                    for(Human h : humans){
                        if(id == h.id){
                            System.out.println(h);
                        }
                    }
                    break;
                case 4:
                    System.out.print("삭제할 id를 입력하여 주세요.");
                    long id = Long.parseLong(sc.nextLine().trim());
                    for(int i = 0;i < humans.size();i++){
                        if(humans.get(i).id == id){
                            humans.remove(i);
                            i--;
                        }
                    }
                    break;
                case 5:
                    System.out.print("조회할 이름을 입력하여 주세요.");
                    String name = sc.nextLine().trim();
                    for(Human h : humans){
                        if(h.name.equals(name)){
                            System.out.println(h);
                        }
                    }
                    break;
                case 6:
                    System.out.print("삭제할 이름을 입력하여 주세요.");
                    String name = sc.nextLine().trim();
                    for(int i = 0;i < humans.size();i++){
                        if(humans.get(i).name.equals(name)){
                            humans.remove(i);
                            i--;
                        }
                    }
                    break;
                case 7:
                    System.out.println("프로그램을 종료합니다.");
                    break;
                default:
                    System.out.println("잘못 입력 하셨습니다.");
            }
        }
        sc.close();
    }
}