JAVA 객체 지향 핵심

(JAVA)전화 번호 관리 프로그램 만들기(연습문제) - 12

mynote6676 2025. 4. 19. 21:42

뿌듯

package book;

public class TelPhone {

    //객체의 특성을 저장한다.\
    private String name;
    private String telNumber;

    // 객체 생성사 객체의 이름과 번호를 같이 생선한다.
    public TelPhone(String name, String telNumber) {
        this.name = name;
        this.telNumber = telNumber;
    }

    public String getName() {
        return name;
    }

    public String getTelNumber() {
        return telNumber;
    }


}// end of class

 

 

package book;

//전화번호부에 저장된 연락처 정보 CRUD 기능 구현

import java.util.Scanner;

public class TelBook {


//     * **요구 사항**
//     *
//     * - **저장**: 사용자가 이름과 전화번호를 입력하여 전화번호부에 저장할 수 있어야 합니다.
//     * - **조회**: 전체 연락처 목록을 조회.
//     * - **수정**: 기존 연락처의 전화번호를 변경할 수 있어야 합니다.
//     * - **삭제**: 전화번호부에서 연락처를 삭제할 수 있어야 합니다.
//     * - **선택 조회** : 이름을 입력하면 해당 전화번호가 출력 되어야 합니다.
//     * - **프로그램 종료 - 사용자가 프로그램 종료할 때 까지 계속 실행되어야 합니다.**
//     * - **Scanner 활용, 입력 받는 데이터 타입은 전부 String 으로 처리**
//     * - **전화번호 저장은 100까지 한정.**

    static int helpNumber = 6;

    //코드의 진입점
    public static void main(String[] args) {

        //스크린 도구를 만들어준다.
        Scanner scanner = new Scanner(System.in);

        //객체를 인덱스로 만들어준다.
        TelPhone[] telPhones = new TelPhone[100];

        //TODO 프로그램 테스트 전까지 샘플링 유지 밑 샘플링 추가 시작번호는 6번
        //텔 넘버 샘플
        telPhones[0] = new TelPhone("다나카", "010-1234-1234");
        telPhones[1] = new TelPhone("사토우", "010-4354-7254");
        telPhones[2] = new TelPhone("미나토", "010-6234-2564");
        telPhones[3] = new TelPhone("텐사카", "010-1204-0294");
        telPhones[4] = new TelPhone("요시무라", "010-5564-3234");

        // 1.저장 2, 전체 조회 3.수정 4.삭제 5.선택조회 6.프로그램 종료에 따른 인수를 만들어 주세요.
        final String SAVE = "1";
        final String READ_ALL = "2";
        final String CHANGE = "3";
        final String DELETE = "4";
        final String READ_CHOICE = "5";
        final String END = "6";

        //프로그램의 큰틀부터 만들어보자.
        //while문을 사용하므로 flag를 꼽아주자
        boolean flag = true;

        //while문의 시작점
        while (true) {
            System.out.println("1. 저장 2. 전체 조회 3. 수정 4. 전화번호 삭제 5.선택조회 6.종료 ");
            System.out.println("번호를 입력해주세요 : ");
            String selectNumber = scanner.nextLine();
            if (selectNumber.equals(SAVE)) {
                save(telPhones, scanner);
            } else if (selectNumber.equals(READ_ALL)) {
                readAll(telPhones);
            } else if (selectNumber.equals(CHANGE)) {
                change(telPhones, scanner);
            } else if (selectNumber.equals(DELETE)) {
                delete(telPhones, scanner);
            } else if (selectNumber.equals(READ_CHOICE)) {
                choice(telPhones, scanner);
            } else if (selectNumber.equals(END)) {
                break;
            } else {
                System.out.println(" 잘못된 번호입니다. 다시 입력해 주세요");
                System.out.println("---------------------------------");
            }
        }// end of while
    } // end of main

    //메서드
    // 저장
    public static void save(TelPhone[] telPhones, Scanner scanner) {
        System.out.println(">>>>저장<<<<");
        System.out.println("--이름을 기입해주세요");
        String selectName = scanner.nextLine();
        System.out.println("--번호를 기입해주세요");
        String selectNumber = scanner.nextLine();
        if (telPhones.length < helpNumber) {
            System.out.println("더이상 저장할 공간이 없습니다");
            return;
        }
        telPhones[helpNumber] = new TelPhone(selectName, selectNumber);
        helpNumber++;
    }

    // 전체 조회
    public static void readAll(TelPhone[] telPhones) {
        System.out.println(">>>>전체조회<<<<");
        for (int i = 0; i < telPhones.length; i++) {
            //방어문
            if (telPhones[i] != null) {
                System.out.println(telPhones[i].getName() + "," + telPhones[i].getTelNumber());
            }
        }
    }

    //수정
    public static void change(TelPhone[] telPhones, Scanner scanner) {
        System.out.println("수정하실 이름을 입력해주세요");
        String selectName1 = scanner.nextLine();
        boolean findName = false;
        for (int i = 0; i < telPhones.length; i++) {
            if (telPhones[i] != null) {
                if (telPhones[i].getName().equals(selectName1.trim())) {
                    System.out.println("--수정하실 이름을 기입해주세요");
                    String selectName = scanner.nextLine();
                    System.out.println("--수정하실 번호를 기입해주세요");
                    String selectNumber = scanner.nextLine();
                    telPhones[i] = new TelPhone(selectName, selectNumber);
                    System.out.println("수정하였습니다.");
                }
            }
        }
    }

    // 전화번호 삭제
    public static void delete(TelPhone[] telPhones, Scanner scanner) {
        System.out.println("삭제하실 이름을 입력해주세요");
        String selectName1 = scanner.nextLine();
        boolean findName = false;
        for (int i = 0; i < telPhones.length; i++) {
            if (telPhones[i] != null) {
                if (telPhones[i].getName().equals(selectName1.trim())) {
                    telPhones[i] = null;
                    System.out.println("삭제하였습니다");
                }
            }
        }
    }

    //선택조회
    public static void choice(TelPhone[] telPhones, Scanner scanner) {
        System.out.println("조회하실 이름을 입력해주세요");
        String selectName1 = scanner.nextLine();
        boolean findName = false;
        for (int i = 0; i < telPhones.length; i++) {
            if (telPhones[i] != null) {
                if (telPhones[i].getName().equals(selectName1.trim())) {
                    System.out.println(telPhones[i].getName() + "," + telPhones[i].getTelNumber());
                }
            }
        }
    }
}// end of class

 

'JAVA 객체 지향 핵심' 카테고리의 다른 글

(JAVA)상속(Inheritance) - 14  (0) 2025.04.21
(JAVA)메서드 오버로딩 - 13  (1) 2025.04.21
Book으로 연습문제 재복습  (0) 2025.04.19
(JAVA)배열 복습하기-11  (0) 2025.04.18
(JAVA)Array(배열) 에 이해 - 10  (0) 2025.04.17