- 단어장 프로그램 작성
- 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 |