본문 바로가기
Collection/HashMap

HashMap 예제(3)

by pms93 2022. 7. 26.
package hashMaps;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class Quiz3 {

	public static void main(String[] args) {
		// HashMap을 사용하여 회원정보 만들기. HashMap을 두개 만들어서 구성하기.
		// 1. 회원등록 : id, password, name 3개의 정보를 등록함. id는 key로 password, name은 value로 사용
		// 2. 회원검색 : id를 key로 사용중이기에 id를 이용하여 회원정보를 검색하여 출력함
		// 3. 회원삭제 : id를 key로 사용중이기에 id를 이용하여 회원정보를 삭제함.
		// 4. 회원 모두보기 : 모든 정보를 출력
		// 5. 비밀번호 수정 : id를 key로 사용중이기에 id를 이용하여 비밀번호를 수정함.
		// 6. 프로그램 종료
		Scanner sc = new Scanner(System.in);
		HashMap<String, String> informName = new HashMap<>();
		HashMap<String, String> informPw = new HashMap<>();
		String id, name, pw, sel;

		while (true) {
			Iterator<String> itInformName = informName.keySet().iterator();
			System.out.print("1. 회원등록\n2. 회원검색\n3. 회원삭제\n4. 회원 모두보기\n5. 비밀번호 수정\n6. 프로그램 종료\n: ");
			sel = sc.next();
			sc.nextLine();

			switch (sel) {
			case "1":
				System.out.print("등록하실 아이디를 입력하세요 : ");
				id = sc.next();
				sc.nextLine();

				if (informName.containsKey(id)) {
					System.out.println("이미 등록된 아이디입니다.");
					break;
				}

				System.out.print("이름을 입력하세요 : ");
				informName.put(id, sc.next());
				sc.nextLine();


				System.out.print("비밀번호를 입력하세요 : ");
				informPw.put(id, sc.next());
				sc.nextLine();

				break;

			case "2":
				if (informName.size() == 0) {
					System.out.println("등록된 정보가 없습니다.");
					break;
				}

				System.out.print("검색하실 ID를 입력하세요 : ");
				id = sc.next();
				sc.nextLine();

				if (!informName.containsKey(id)) {
					System.out.println("존재하지 않는 ID입니다.");
					break;
				}

				System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", id, informName.get(id), informPw.get(id));
				break;

			case "3":
				if (informName.size() == 0) {
					System.out.println("등록된 정보가 없습니다.");
					break;
				}

				System.out.println("<< 등록된 정보 >>");
				itInformName = informName.keySet().iterator();
				while (itInformName.hasNext()) {
					String tmp = itInformName.next();
					System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", tmp, informName.get(tmp), informPw.get(tmp));
				}

				System.out.print("삭제하실 ID를 입력하세요 : ");
				id = sc.next();
				sc.nextLine();

				if (!informName.containsKey(id)) {
					System.out.println("해당 정보는 존재하지 않습니다.");
					break;
				}
				
				informName.remove(id);
				informPw.remove(id);
				System.out.println("삭제가 완료되었습니다.");
				break;

			case "4":
				System.out.println("<< 등록된 정보 >>");
				itInformName = informName.keySet().iterator();
				while (itInformName.hasNext()) {
					String tmp = itInformName.next();
					System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", tmp, informName.get(tmp), informPw.get(tmp));
				}
				
				break;
				
			case "5":
				System.out.println("<< 등록된 정보 >>");
				itInformName = informName.keySet().iterator();
				while (itInformName.hasNext()) {
					String tmp = itInformName.next();
					System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", tmp, informName.get(tmp), informPw.get(tmp));
				}
				
				System.out.print("비밀번호를 수정하실 id를 입력하세요 : ");
				id = sc.next();
				sc.nextLine();
				
				if (!informName.containsKey(id)) {
					System.out.println("해당 정보는 존재하지 않습니다.");
					break;
				}
				
				System.out.print("수정하실 pw를 입력하세요 : ");
				informPw.replace(id, sc.next());
				sc.nextLine();
				
				System.out.println("변경이 완료되었습니다.");
				break;

			case "6":
				System.out.println("프로그램을 종료합니다.");
				System.exit(0);

			default:
				System.out.println("메뉴 확인 후 다시 입력하세요...");
			}
		}

	}
}

'Collection > HashMap' 카테고리의 다른 글

HashMap 예제(2)  (0) 2022.07.26
HashMap 예제(1)  (0) 2022.07.25
HashMap  (0) 2022.07.25