JAVA

전화번호 관리 프로그램 만들기

jiyoon12 2025. 4. 25. 00:00
  • 전화번호부에 저장된 연락처 정보 CRUD 기능 구현하기

 

<요구사항>

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

import java.util.Scanner;

public class PhoneBookTest {

    static int currentPhoneBookIndex = 6;

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        PhoneBook[] phoneBooks = new PhoneBook[100];

        boolean flag = true;

        phoneBooks[0] = new PhoneBook("사람1", "010-1111-1111");
        phoneBooks[1] = new PhoneBook("사람2", "010-2222-2222");
        phoneBooks[2] = new PhoneBook("사람3", "010-3333-3333");
        phoneBooks[3] = new PhoneBook("사람4", "010-4444-4444");
        phoneBooks[4] = new PhoneBook("사람5", "010-5555-5555");
        phoneBooks[5] = new PhoneBook("사람6", "010-6666-6666");

        final String SAVE = "1";
        final String SEARCH_ALl = "2";
        final String DELETE_ALL = "3";
        final String SEARCH_BY_NAME = "4";
        final String END = "5";

        while (flag) {
            System.out.println("=====메뉴 선택====");
            System.out.println("1.저장 2.전체조회 3.전체삭제 4.선택조회 5.종료");
            String selectNumber = scanner.nextLine();

            if (selectNumber.equals(SAVE)) {
                System.out.println(">> 저장하기 <<");
                save(scanner, phoneBooks);

            } else if (selectNumber.equals(SEARCH_ALl)) {
                System.out.println(">> 전체조회 <<");
                readAll(scanner, phoneBooks);

            } else if (selectNumber.equals(DELETE_ALL)) {
                System.out.println(">>전체 삭제하기 <<");
                deleteAll(phoneBooks);

            } else if (selectNumber.equals(SEARCH_BY_NAME)) {
                System.out.println(">> 선택조회 <<");
                readByName(scanner,phoneBooks);

            } else if (selectNumber.equals(END)) {
                System.out.println(">> 프로그램을 종료합니다. <<");
                flag = false;
            } else {
                System.out.println("잘못된 선택입니다.");
            }
        }

    } // end of main

    public static void save(Scanner scanner, PhoneBook[] phoneBooks) {
        System.out.println("----save()----");
        System.out.println("이름을 입력하세요.");
        String name = scanner.nextLine();
        System.out.println("전화번호를 입력하세요");
        String number = scanner.nextLine();

        PhoneBook phoneBook = new PhoneBook(name, number);

        if (currentPhoneBookIndex > phoneBooks.length) {
            System.out.println("더이상 저장할 공간이 없습니다.");
            return;
        }

        phoneBooks[currentPhoneBookIndex] = phoneBook;
        currentPhoneBookIndex++;
    }

    public static void readAll(Scanner scanner, PhoneBook[] phoneBooks) {
        System.out.println("----readAll----");
        for (int i = 0; i < phoneBooks.length; i++) {
            if (phoneBooks[i] != null) {
                System.out.println(phoneBooks[i].getName() + "," + phoneBooks[i].getNumber());
            }
        }
    }


    public static void deleteAll(PhoneBook[] phoneBooks) {
        System.out.println("----deleteAll----");
        for (int i = 0; i < phoneBooks.length; i++) {
            phoneBooks[i] = null;
        }
    }

    public static void readByName(Scanner scanner, PhoneBook[] phoneBooks) {
        System.out.println("----readByName----");
        System.out.println(">> 이름을 입력해주세요 <<");
        String name = scanner.nextLine();
        boolean isFind = false;

        for (int i = 0; i < phoneBooks.length; i++) {
            if (phoneBooks[i] != null) {
                if (phoneBooks[i].getName().equals(name.trim())) {
                    System.out.println(phoneBooks[i].getName() + "," + phoneBooks[i].getNumber());
                    isFind = true;
                    break;
                }
            }
        }
        if (!isFind) {
            System.out.println("해당 이름이 존재하지않습니다.");
        }
    }
}