[Java] Map - 전화번호부 프로그램 구현

2023. 2. 22. 12:17·Java/Base
728x90
728x90

코드

#  기능 정의 파일

public class PhoneBook {
    // 이름 전화번호
    HashMap<String, String> phoneBook = new HashMap<>();
    static Scanner scanner = new Scanner(System.in);

    public void sampleData() {
        phoneBook.put("김철수", "010-1234-1234");
        phoneBook.put("이영수", "010-5678-5678");
        phoneBook.put("박민수", "010-9876-9876");
    }

    // 저장 기능
    public void save() {
        String phoneName = null; // 입력받을 이름
        String phoneNumber = null; // 입력받을 전화번호

        System.out.println("이름을 입력해주세요.");
        phoneName = scanner.nextLine();
        System.out.println("전화번호를 입력해주세요.");
        phoneNumber = scanner.nextLine();

        // 값을 올바르게 입력했는지 확인받기
        System.out.println("이름 : " + phoneName + ", 전화번호 : " + phoneNumber + 
                            "을 입력하셨습니다.\n맞으면 1, 틀리면 0을 입력해주세요.");
        String yesNo = scanner.nextLine();
        if (yesNo.equals("1")) {
            phoneBook.put(phoneName, phoneNumber);
            System.out.println("저장이 완료되었습니다.");
        } else if (yesNo.equals("0")) {
            System.out.println("저장을 취소합니다.");
        // 다른 값을 입력한 경우
        } else {
            System.out.println("값을 잘못 입력하셨습니다.");
        }
    } // end of save method

    // 조회 기능
    public void showInfo(String input) {
        if (phoneBook.isEmpty()) {
            System.out.println("저장된 전화번호가 없습니다.");
            return;
        }

        // 전체 조회
        if (input.equals("2")) {
            for (String key : phoneBook.keySet()) {
                System.out.println("----------");
                System.out.println("이름 : " + key);
                System.out.println("전화번호 : " + phoneBook.get(key));
            }
            
        // 선택 조회
        } else if (input.equals("3")) {
            System.out.println("이름을 입력해주세요.");
            String selectName = scanner.nextLine();
            if (phoneBook.containsKey(selectName)) {
                System.out.println(selectName + "의 전화번호는 " + phoneBook.get(selectName) + "입니다.");				
            } else {
                System.out.println("존재하지 않는 이름입니다.");
            }
        }
    } // end of showInfo method

    // 삭제 기능
    public void deleteInfo(String input) {
        if (phoneBook.isEmpty()) {
            System.out.println("저장된 전화번호가 없습니다.");
            return;
        }

        // 선택 삭제
        if (input.equals("4")) {
            System.out.println("이름을 입력해주세요.");
            String selectName = scanner.nextLine();

            if (phoneBook.containsKey(selectName) == false) {
                System.out.println("존재하지 않는 이름입니다.");
                return;
            }

            // 삭제 여부 확인받기
            System.out.println("정말 삭제하겠습니까?");
            System.out.println("계속 진행하려면 1, 아니면 0를 입력해주세요.");
            String yesNo = scanner.nextLine();
            if (yesNo.equals("1")) {
                System.out.println("삭제가 완료되었습니다.");
                phoneBook.remove(selectName);
            } else if (yesNo.equals("0")) {
                System.out.println("삭제를 취소합니다.");
            // 다른 값을 입력한 경우
            } else {
                System.out.println("값을 잘못 입력하셨습니다.");
            }
        
        // 전체 삭제
        } else if (input.equals("5")) {
            // 삭제 여부 확인받기
            System.out.println("정말 모든 정보를 삭제하겠습니까?");
            System.out.println("계속 진행하려면 1, 아니면 0를 입력해주세요.");
            String yesNo = scanner.nextLine();
            if (yesNo.equals("1")) {
                System.out.println("삭제가 완료되었습니다.");
                phoneBook.clear();
            } else if (yesNo.equals("0")) {
                System.out.println("삭제를 취소합니다.");
            // 다른 값을 입력한 경우
            } else {
                System.out.println("값을 잘못 입력하셨습니다.");
            }
        }
    } // end of deleteInfo method
}

 

#  실행 파일

public class PhoneBookMain {

    // while문 사용 : 0. 종료 1. 저장 2. 전체조회 3. 선택조회 4. 선택삭제 5. 전체삭제 구현
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String userInput = "-1"; // 입력받을 기능 선택 번호
        Boolean flag = true; // 프로그램 종료 여부
        PhoneBook phoneBook = new PhoneBook();

        // 샘플 생성
        phoneBook.sampleData();

        while (flag) {
            System.out.println(">> 기능을 선택해주세요 <<");
            System.out.println("0. 종료\t1. 저장\t2. 전체조회\t3. 선택조회\t4. 선택삭제\t5. 전체삭제");
            userInput = scanner.nextLine();

            // ***** 0번. 프로그램 종료
            if (userInput.equals("0")) {
                System.out.println("프로그램을 종료합니다.");
                flag = false;
                break;

            // ***** 1번. 저장
            } else if (userInput.equals("1")) {
                System.out.println("1번, 저장을 선택하셨습니다.\n");
                phoneBook.save();

            // ***** 2번. 전체조회
            } else if (userInput.equals("2")) {
                System.out.println("2번, 전체 조회를 선택하셨습니다.\n");
                phoneBook.showInfo(userInput);

            // ***** 3번. 선택조회
            } else if (userInput.equals("3")) {
                System.out.println("3번, 선택 조회를 선택하셨습니다.\n");
                phoneBook.showInfo(userInput);

            // ***** 4번. 선택삭제
            } else if (userInput.equals("4")) {
                System.out.println("4번, 선택 삭제를 선택하셨습니다.\n");
                phoneBook.deleteInfo(userInput);

            // ***** 5번. 전체삭제
            } else if (userInput.equals("5")) {
                System.out.println("5번, 전체 삭제를 선택하셨습니다.\n");
                phoneBook.deleteInfo(userInput);

            } else {
                System.out.println("잘못된 메뉴 선택입니다.");
            }
            System.out.println("\n=======================");
        }

    } // end of main

} // end of class

 

실행

 

  - GUI로 구현해보기 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'Java > Base' 카테고리의 다른 글

[Java] 입출력 스트림 (I/O Stream)  (1) 2023.03.03
[Java] 입출력 스트림 - 예제 모음  (0) 2023.03.03
[Java] 컬렉션 프레임워크 (List, Set, Map)  (0) 2023.02.22
[Java] 자료 구조  (0) 2023.02.21
[Java] Thread - 은행 계좌 입출금에 대한 동기화 기능 구현  (0) 2023.02.19
'Java/Base' 카테고리의 다른 글
  • [Java] 입출력 스트림 (I/O Stream)
  • [Java] 입출력 스트림 - 예제 모음
  • [Java] 컬렉션 프레임워크 (List, Set, Map)
  • [Java] 자료 구조
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    git
    php
    http
    tailwindcss
    errorNote
    티스토리챌린지
    SWAGGER
    typeScript
    js
    SEO
    java
    면접
    Hotkeys
    jsp
    C#
    cs
    CSS
    vuejs
    오블완
    개발일지
    Wordpress
    Codeigniter
    HTML
    Android
    zapier
    Swing
    jQuery
    SQL
    SpringBoot
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java] Map - 전화번호부 프로그램 구현
상단으로

티스토리툴바