본문 바로가기

연습문제

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

package basic.exercise;

public class PhoneBook {

	String name;
	String number;

	public PhoneBook(String name, String number) {
		this.name = name;
		this.number = number;
	}
	
	// getter
	public String getName() {
		return name;
	}
	public String getNumber() {
		return number;
	}

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

	public void setNumber(String number) {
		this.number = number;
	}
	
}// end of class
package basic.exercise;

import java.util.Scanner;

public class PhoneBookManager {

	static int LAST_INDEX = 0;

	public static void main(String[] args) {

		// 스캐너 사용
		Scanner sc = new Scanner(System.in);

		// 배열 선언 100개
		PhoneBook[] phonebook = new PhoneBook[100];
		phonebook[0] = new PhoneBook("나비", "123456789");
		phonebook[1] = new PhoneBook("아무개", "234567890");
		phonebook[2] = new PhoneBook("호동이", "345678912");
		LAST_INDEX = 98;

		for (int i = 0; i < phonebook.length; i++) {
			if (phonebook[i] != null) {
				System.out.println(phonebook[i].getName());
				System.out.println(phonebook[i].getNumber());
				System.out.println("-------------------------");
			}
		}

		final String SAVE = "1";
		final String SEARCH_ALL = "2";
		final String SEARCH_BY_NUMBER = "3";
		final String SEARCH_EDIT = "4";
		final String DELETE_ALL = "5";
		final String END = "0";
		boolean flag = true;

		// while
		while (flag) {
			System.out.println("**** 메뉴 선택 ****");
			System.out.println("1. 번호 저장 2. 번호 조회 3. 번호 선택 조회 4. 번호 수정 5. 번호 삭제 0. 끝내기");

			String selectNum = sc.nextLine();
			if (selectNum.equals(SAVE)) {
				System.out.println("**** 저장 ****");
				saveNumber(sc, phonebook);
			} else if (selectNum.equals(SEARCH_ALL)) {
				System.out.println("**** 번호 조회 ****");
				readPhone(phonebook);
			} else if (selectNum.equals(SEARCH_BY_NUMBER)) {
				System.out.println("**** 번호 선택 조회****");
				readChoice(sc, phonebook);
			} else if (selectNum.equals(SEARCH_EDIT)) {
				System.out.println("**** 번호 수정 ****");
				numEdit(sc, phonebook);
			} else if (selectNum.equals(DELETE_ALL)) {
				System.out.println("**** 번호 삭제 ****");
				deleteAll(phonebook);
			} else if (selectNum.equals(END)) {
				System.out.println("**** 프로그램 종료 ****");
				flag = false;
			} else {
				System.out.println("**** 잘못된 선택입니다. ****");
			}
		}

	}// end of main

	// 저장하기
	public static void saveNumber(Scanner sc, PhoneBook[] phonebook) {
		System.out.println("이름을 입력하세요");
		String personName = sc.nextLine();
		System.out.println("번호를 입력하세요");
		String personNum = sc.nextLine();

		PhoneBook phone = new PhoneBook(personName, personNum);
		if (LAST_INDEX >= phonebook.length) {
			System.out.println("번호를 저장할 공간이 없습니다");
			return;
		}
		for (int i = 0; i < phonebook.length; i++) {
			if (phonebook[i] == null) {
				phonebook[i] = phone;
				LAST_INDEX++;
				break;
			}
		}
		System.out.println("번호가 저장 되었습니다.");
	}

	// 전체 조회하기
	public static void readPhone(PhoneBook[] phonebook) {

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

	// 선택 조회하기
	public static void readChoice(Scanner sc, PhoneBook[] phonebook) {
		System.out.println("이름을 입력하세요.");
		String personName = sc.nextLine();

		for (int i = 0; i < phonebook.length; i++) {
			if (phonebook[i] != null) {

				if (phonebook[i].getName().equals(personName)) {
					System.out.println(phonebook[i].getName() + ": " + phonebook[i].getNumber());
				}
			}

		}
		System.out.println("입력한 이름이 없습니다.");
	}

	// 번호 수정
	public static void numEdit(Scanner sc, PhoneBook[] phonebook) {
		System.out.println("이름을 입력하세요.");
		String personName = sc.nextLine();
		boolean isFind = false;
		for (int i = 0; i < phonebook.length; i++) {
			if (phonebook[i] != null) {
				if (phonebook[i].getName().equals(personName)) {
					// 수정할 번호 입력 저장
					System.out.println("변경할 번호를 입력하세요.");
					String personNum = sc.nextLine();
					phonebook[i].setNumber(personNum);
					isFind = true;
					break;

				}
			}
			if (isFind == false) {
				System.out.println("입력하신 이름이 없습니다.");
			}
		}
	}

	// 전체 삭제하기
	public static void deleteAll(PhoneBook[] phonebook) {
		System.out.println(">>>> 전체 삭제하기 <<<<");

		for (int i = 0; i < phonebook.length; i++) {
			phonebook[i] = null;
		}
	}

}// end of class

너무 어렵쟈너~~~~

728x90

'연습문제' 카테고리의 다른 글

함수와 만들기  (0) 2024.04.15
이중 for 문을 이용한 연습 문제  (1) 2024.04.15
for 문을 이용한 연습 문제  (0) 2024.04.12
if 문을 이용한 연습 문제  (0) 2024.04.12