백엔드/Java

Java로 단어장 구현

짱뚱짱 2024. 10. 23. 09:15

- 단어장 프로그램 작성
- menu
- 1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료
- WordController 메서드 구현
- map을 이용하여 단어등록
- 기본단어 등록(5가지 등록)
- main 에서 메뉴 반복처리

- 프로그램 구성

  👉🏻 WordMain : 사용자와의 상호작용

  👉🏻 WordController : 단어장 데이터 관련 모든 작업

 

🔷 WordMain 클래스 - 메뉴를 통해 원하는 작업 선택. 각 메뉴에 맞는 메서드를 호출해서 단어장 기능을 실행

package day08;

import java.util.Scanner;

public class WordMain {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        WordController wc = new WordController();
        wc.addWord(); // 기본 단어 등록
        int menu = -1;

        do {
            System.out.println("1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료");
            System.out.print("menu> ");
            menu = scan.nextInt();
            switch(menu) {
                case 1: wc.insertWord(scan); break;
                case 2: wc.searchWord(scan); break;
                case 3: wc.modifyWord(scan); break;
                case 4: wc.printWord(); break;
                case 5: wc.removeWord(scan); break;
                case 6: System.out.println("종료"); break;
                default: System.out.println("잘못된 메뉴입니다.");
            }
        } while(menu != 6);

        scan.close();
    }
}

 

 

🔷 WordController 클래스 - 단어와 의미를 HashMap에 저장. 각 메서드는 단어를 추가, 검색, 수정, 출력, 삭제하는 기능을 구현

package day08;

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

public class WordController {
	
	private HashMap<String, String> map = new HashMap<>();
	
	public void addWord() {
		map.put("apple", "사과");
		map.put("banana", "바나나");
		map.put("kiwi", "키위");
		map.put("orange", "오렌지");
		map.put("dog", "개");
		map.put("cat", "고양이");
	}

	public void insertWord(Scanner scan) {
		// 단어 추가
		System.out.println("단어>");
		String word = scan.next();
		System.out.println("의미>");
		String mean = scan.next();
		
		map.put(word, mean);
		
	}

	public void searchWord(Scanner scan) {
		// 단어검색
		System.out.println("검색할 단어>");
		String word = scan.next();
		if(map.containsKey(word)) {
			System.out.println("--검색된 단어---");
			System.out.println(word+":"+map.get(word));
			System.out.println("--------------");
			return;
		}
		System.out.println("검색결과가 없습니다.");
	}

	public void modifyWord(Scanner scan) {
		// 단어수정 : 키 중복이 안됨.  add => 덮어씀
		// 삭제 후 다시 추가
		System.out.println("수정할 단어>");
		String word = scan.next();
		if(map.remove(word)==null) {
			System.out.println("수정할 단어가 없습니다.");
			return;
		}
		System.out.println("의미>");
		String mean = scan.next();
		map.put(word, mean);
		System.out.println("수정완료!");
	}

	public void printWord() {
		System.out.println("--단어장--");
		for(String k : map.keySet()) {
			System.out.println(k +":"+map.get(k));
		}
		System.out.println("--------");
	}

	public void removeWord(Scanner scan) {
		// 단어삭제
		System.out.println("삭제할 단어>");
		String word = scan.next();
		String mean = map.remove(word); //삭제 완료
		if(mean==null) {
			System.out.println("삭제할 단어가 없습니다.");
			return;
		}
		System.out.println("삭제완료!");
	}

}

 

 

결과

1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료
menu>
4
--단어장--
banana:바나나
orange:오렌지
apple:사과
kiwi:키위
cat:고양이
dog:개
--------
1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료
menu>
1
단어>
hello
의미>
안녕
1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료
menu>
3
수정할 단어>
kiwi
의미>
녹색과일
수정완료!
1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료
menu>
4
--단어장--
banana:바나나
orange:오렌지
apple:사과
kiwi:녹색과일
cat:고양이
hello:안녕
dog:개
--------
1.단어등록|2.단어검색|3.단어수정|4.단어출력|5.단어삭제|6.종료
menu>
6
종료

프로그래밍은 문제를 해결하는 예술이다.

'백엔드 > Java' 카테고리의 다른 글

Java 제네릭(Generic)  (1) 2024.10.26
Java로 상품 관리 시스템 구현(2)  (0) 2024.10.25
Java TreeSet  (0) 2024.10.22
Java Map  (4) 2024.10.21
Java set  (4) 2024.10.20