Java

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

정훈5 2024. 4. 22. 17:14

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

 

요구 사항

  • 저장: 사용자가 이름과 전화번호를 입력하여 전화번호부에 저장할 수 있어야 합니다.
  • 조회: 전체 연락처 목록을 조회하거나, 특정 이름으로 연락처를 검색하여 조회할 수 있어야 합니다.
  • 수정: 기존 연락처의 전화번호를 변경할 수 있어야 합니다.
  • 삭제: 전화번호부에서 연락처를 삭제할 수 있어야 합니다.
  • 선택 조회 : 이름을 입력하면 해당 전화번호가 출력 되어야 합니다.
  • Scanner 활용, 입력 받는 데이터 타입은 전부 String 으로 처리
  • 전화번호 저장은 100까지 한정.
package basic.exercise;

public class PhoneBook {
	
	// 속성
	private String name; // 이름
	private String number; // 전화번호
	
	public PhoneBook(String name, String number) {
		this.name = name;
		this.number = number;
	}

	public String getName() {
		return name;
	}

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

	public String getNumber() {
		return number;
	}

	public void setNumber(String number) {
		this.number = number;
	}
}

 

package basic.exercise;

import java.util.Scanner;

// import basic.ch15.Book;

public class PhoneBookManager {
	// 코드의 시작

	static int remember;

	public static void main(String[] args) {

		// 스캐너 사용
		// 배열 선언 100개
		// while()

		PhoneBook books[] = new PhoneBook[100];

		books[0] = new PhoneBook("하나1", "1111111");
		books[1] = new PhoneBook("하나2", "2222222");
		books[2] = new PhoneBook("하나3", "3333333");
		books[3] = new PhoneBook("하나4", "4444444");
		books[4] = new PhoneBook("하나5", "5555555");

		final String SAVE = "1"; // 저장
		final String SEARCH = "2"; // 검색
		final String UPDATE = "3"; // 수정
		final String DELETE = "4"; // 삭제
		final String SEARCH_PART = "5"; // 부분검색
		final String ZERO = "0"; // 종료

		remember = 0;

		boolean flag = true;

		Scanner sc = new Scanner(System.in);

		while (flag) {
			System.out.println("** 전화번호부 선택 ** ");
			System.out.println("1.저장 2.조회 3.수정 4.삭제, 5.부분검색 0.프로그램 종료");

			String selectedNumber = sc.nextLine();

			if (selectedNumber.equals(SAVE)) {
				System.out.println(">>> 전화번호 저장 <<<");
				save(sc, books);

			} else if (selectedNumber.equals(SEARCH)) {
				System.out.println(">>> 전화번호 검색 <<<");
				read(sc, books);

			} else if (selectedNumber.equals(UPDATE)) {
				System.out.println(">>> 전화번호 수정 <<<");
				update(sc, books);
			} else if (selectedNumber.equals(DELETE)) {
				System.out.println(">>> 전화번호 삭제 <<<");
				delete(sc, books);

			} else if (selectedNumber.equals(SEARCH_PART)) {
				System.out.println(">>> 전화번호 부분검색 <<<");
				search_part(sc, books);
			} else if (selectedNumber.equals(ZERO)) {
				System.out.println(">>> 종료합니다. <<<");
				flag = false;
			} // end of if
		} // end of while

	} // end of main

	// 조회하기
	public static void read(Scanner sc, PhoneBook[] books) {
		System.out.println("-----전체 조회하기-----");

		for (int i = 0; i < books.length; i++) {
			if (books[i] != null) {
				System.out.println(books[i].getName() + ", " + books[i].getNumber());
			}
		}
	} // end of read()

	// 선택 조회
	public static void search_part(Scanner sc, PhoneBook[] books) {
		System.out.println("--- 부분 조회하기 ---");
		System.out.println("--- 전화번호 입력해주세요.");
		String qq = sc.nextLine();
		boolean isFine = false;
		for (int i = 0; i < books.length; i++) {
			if (books[i] != null) {
				if (qq.equals(books[i].getNumber())) {
					System.out.println(books[i].getName() + ", " + books[i].getNumber());
					isFine = true;
					break;

				}
			}
		}
		if (isFine == false) {
			System.out.println("해당 전화번호가 존재하지 않습니다");
		}
	}

	// 삭제하기
	public static void delete(Scanner sc, PhoneBook[] books) {

		System.out.println("----삭제 하기----");
		System.out.println("---- 전화번호 입력 ----");
		String number = sc.nextLine();

		boolean isFind = false;
		for (int i = 0; i < books.length; i++) {
			if (number.equals(books[i].getNumber())) {
				books[i] = null;
				System.out.println("삭제되었습니다.");
				isFind = true;
				break;
			}
		}
	} // end of delete()

	// 저장하기

	public static void save(Scanner sc, PhoneBook[] books) {

		System.out.println("이름을 입력하세요");
		String name = sc.nextLine();

		System.out.println("전화번호 입력하세요.");
		String number = sc.nextLine();

		PhoneBook book = new PhoneBook(name, number);

		for (int i = 1; i < books.length; i++) {
			if (books[i] == null) {
				books[i] = book;
				break;
			}
			System.out.println("저장 되었습니다");
		}
	} // end of save

	// 수정하기
	public static void update(Scanner sc, PhoneBook[] books) {
		
		System.out.println("전화번호를 입력해주세요.");
		String qq = sc.nextLine();
		
		System.out.println("수정할 전화번호를 입력하세요.");
		String qq1 = sc.nextLine();
		System.out.println("수정할 이름을 입력하세요.");
		String qq2 = sc.nextLine();
		
		for (int i = 0; i < books.length; i++) {
			
			if(books!= null && qq.equals(books[i].getNumber()) ) {
				books[i] = null;
				
				PhoneBook book1 = new PhoneBook(qq1, qq2);
				books[i] = book1;
				return;
			}
		}
	}

} // end of class