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("해당 이름이 존재하지않습니다.");
}
}
}