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 |