코딩도장

영어 단어장 만들기

영어 단어장 조건 1. 추가, 삭제 가능하게 하기 2. 문제 풀기 기능 만들기

출력 결과 예시

--------------------------
1. 단어 추가
2. 단어 삭제
3. 문제 풀기
--------------------------
메뉴 선택 : (번호 입력)

2022年11月12日 19:04

고양이 푸딩

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

1개의 풀이가 있습니다.

package CodingTest1;
import java.util.*;
public class myWordbook implements wordbookfunction {
 static Map<String,String> wordbook = new HashMap<String,String>();
 public myWordbook() {
 wordbook.put("student", "학생(기본단어)");
 wordbook.put("apple", "사과(기본단어)");
 wordbook.put("people", "사람(기본단어)");
 wordbook.put("pizza", "피자(기본단어)");
 }
 @Override
 public void Menu() {
 System.out.println("등록된 단어 수 : " + wordbook.size());
 System.out.println("----------선택하시오 -------------");
 System.out.println("1.단어등록");
 System.out.println("2.단어조회");
 System.out.println("3.단어삭제");
 System.out.println("4.테스트");
 System.out.println("5.단어목록 보기");
 System.out.println("6.프로그램 종료");
 System.out.println("--------------------------------");
 }
 @Override
 public void addWord() {
 String english = null;
 String korean = null;
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.print("등록할 영어 단어를 입력하시오 (메뉴로 가려면 menu를 입력) > ");
 english = sc.nextLine();
 if(english.equals("menu") || english.equals("Menu")) {
 break;
 } else {
 if(wordbook.containsKey(english) == true) {
 System.out.println("이미 등록된 단어입니다. 수정을 원하시면 삭제후 다시 등록 해주세요.");
 } else {
 System.out.print("뜻을 입력하시오 >>" );
 korean = sc.nextLine();
 try {
 wordbook.put(english, korean);
 } catch(Exception e) {
 System.out.println("다시 입력해주세요");
 e.printStackTrace();
 } finally {
 System.out.println("입력되었습니다.");
 }
 }
 }
 }
 }
 @Override
 public void searchWord() {
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.print("조회하고 싶은 영단어를 입력하시오. (메뉴로 가려면 menu 입력)");
 String eng = sc.nextLine();
 if(eng.equals("menu")||eng.equals("Menu")) {
 break;
 } else {
 if(wordbook.containsKey(eng)) {
 System.out.println(wordbook.get(eng)); // 한국어 뜻 출력
 }else {
 System.out.println("등록되지 않은 단어입니다.");
 }
 }
 }
 sc.close();
 }
 @Override
 public void deleteWord() {
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.println("======= 단어 목록 ======");
 Set key = wordbook.keySet();
 Iterator iterator;
 for(iterator = key.iterator(); iterator.hasNext();) {
 String keyValue = (String) iterator.next(); // next() 메소드를 사용 할 때마다 적절한 타입으로 캐스팅 해줘야함.
 String valueVar = (String) wordbook.get(keyValue);
 System.out.println("-" + keyValue + " : " + valueVar);
 }
 System.out.println("=======================");
 System.out.println("삭제하고 싶은 단어를 입력하시오(메뉴로 가려면 menu 입력.)");
 String del = sc.nextLine();
 if(del.equals("menu") || del.equals("Menu")) {
 break;
 } else {
 if(wordbook.containsKey(del) == true) {
 System.out.println("입력한 단어 (" + del +
 ":"+ wordbook.remove(del)+")");
 } else {
 System.out.println("존재하지 않는 단어입니다.");
 }
 }
 }
 sc.close();
 }
 @Override
 public void test() {
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.println("1.시작하기 2.종료하기");
 int a = sc.nextInt();
 if(a==1) {
 Set key = wordbook.keySet();
 int count = 0;
 int totalCount = 0;
 Iterator iterator;
 System.out.println("<==== 뜻에 맞는 영단어를 입력하시오 ====> ");
 for(iterator = key.iterator(); iterator.hasNext();) {
 String keyValue = (String) iterator.next();
 String valueVar = (String) wordbook.get(keyValue);
 System.out.println(valueVar);
 String answer = sc.nextLine();
 if(answer.equals(keyValue)) {
 System.out.println("정답입니다.");
 count++;
 totalCount++;
 } else {
 System.out.println("틀렸습니다. (답 : " + keyValue + ")");
 totalCount++;
 }
 }
 System.out.println("<< 결과 : " + count + "/" + totalCount + ">>");
 break;
 } else if ( a==2 ) {
 break;
 } else {
 System.out.println("1 또는 2만 입력하시오.");
 }
 }
 sc.close();
 }
 @Override
 public void wordList() {
 System.out.println("======= 단어 목록 ======");
 Set key = wordbook.keySet();
 Iterator iterator;
 for(iterator = key.iterator(); iterator.hasNext();) {
 String keyValue = (String) iterator.next(); // next() 메소드를 사용 할 때마다 적절한 타입으로 캐스팅 해줘야함.
 String valueVar = (String) wordbook.get(keyValue);
 System.out.println("-" + keyValue + " : " + valueVar);
 }
 System.out.println("=======================");
 }
 @Override
 public void exit() {
 System.out.println("단어장을 종료합니다.");
 }
}
``````{.java}
package CodingTest1;
public interface wordbookfunction {
 public void Menu();
 public void addWord();
 public void searchWord();
 public void deleteWord();
 public void test();
 public void wordList();
 public void exit();
}
package CodingTest1;
import java.util.*;
public class myWordbook implements wordbookfunction {
 static Map<String,String> wordbook = new HashMap<String,String>();
 public myWordbook() {
 wordbook.put("student", "학생(기본단어)");
 wordbook.put("apple", "사과(기본단어)");
 wordbook.put("people", "사람(기본단어)");
 wordbook.put("pizza", "피자(기본단어)");
 }
 @Override
 public void Menu() {
 System.out.println("등록된 단어 수 : " + wordbook.size());
 System.out.println("----------선택하시오 -------------");
 System.out.println("1.단어등록");
 System.out.println("2.단어조회");
 System.out.println("3.단어삭제");
 System.out.println("4.테스트");
 System.out.println("5.단어목록 보기");
 System.out.println("6.프로그램 종료");
 System.out.println("--------------------------------");
 }
 @Override
 public void addWord() {
 String english = null;
 String korean = null;
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.print("등록할 영어 단어를 입력하시오 (메뉴로 가려면 menu를 입력) > ");
 english = sc.nextLine();
 if(english.equals("menu") || english.equals("Menu")) {
 break;
 } else {
 if(wordbook.containsKey(english) == true) {
 System.out.println("이미 등록된 단어입니다. 수정을 원하시면 삭제후 다시 등록 해주세요.");
 } else {
 System.out.print("뜻을 입력하시오 >>" );
 korean = sc.nextLine();
 try {
 wordbook.put(english, korean);
 } catch(Exception e) {
 System.out.println("다시 입력해주세요");
 e.printStackTrace();
 } finally {
 System.out.println("입력되었습니다.");
 }
 }
 }
 }
 }
 @Override
 public void searchWord() {
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.print("조회하고 싶은 영단어를 입력하시오. (메뉴로 가려면 menu 입력)");
 String eng = sc.nextLine();
 if(eng.equals("menu")||eng.equals("Menu")) {
 break;
 } else {
 if(wordbook.containsKey(eng)) {
 System.out.println(wordbook.get(eng)); // 한국어 뜻 출력
 }else {
 System.out.println("등록되지 않은 단어입니다.");
 }
 }
 }
 sc.close();
 }
 @Override
 public void deleteWord() {
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.println("======= 단어 목록 ======");
 Set key = wordbook.keySet();
 Iterator iterator;
 for(iterator = key.iterator(); iterator.hasNext();) {
 String keyValue = (String) iterator.next(); // next() 메소드를 사용 할 때마다 적절한 타입으로 캐스팅 해줘야함.
 String valueVar = (String) wordbook.get(keyValue);
 System.out.println("-" + keyValue + " : " + valueVar);
 }
 System.out.println("=======================");
 System.out.println("삭제하고 싶은 단어를 입력하시오(메뉴로 가려면 menu 입력.)");
 String del = sc.nextLine();
 if(del.equals("menu") || del.equals("Menu")) {
 break;
 } else {
 if(wordbook.containsKey(del) == true) {
 System.out.println("입력한 단어 (" + del +
 ":"+ wordbook.remove(del)+")");
 } else {
 System.out.println("존재하지 않는 단어입니다.");
 }
 }
 }
 sc.close();
 }
 @Override
 public void test() {
 Scanner sc = new Scanner(System.in);
 while(true) {
 System.out.println("1.시작하기 2.종료하기");
 int a = sc.nextInt();
 if(a==1) {
 Set key = wordbook.keySet();
 int count = 0;
 int totalCount = 0;
 Iterator iterator;
 System.out.println("<==== 뜻에 맞는 영단어를 입력하시오 ====> ");
 for(iterator = key.iterator(); iterator.hasNext();) {
 String keyValue = (String) iterator.next();
 String valueVar = (String) wordbook.get(keyValue);
 System.out.println(valueVar);
 String answer = sc.nextLine();
 if(answer.equals(keyValue)) {
 System.out.println("정답입니다.");
 count++;
 totalCount++;
 } else {
 System.out.println("틀렸습니다. (답 : " + keyValue + ")");
 totalCount++;
 }
 }
 System.out.println("<< 결과 : " + count + "/" + totalCount + ">>");
 break;
 } else if ( a==2 ) {
 break;
 } else {
 System.out.println("1 또는 2만 입력하시오.");
 }
 }
 sc.close();
 }
 @Override
 public void wordList() {
 System.out.println("======= 단어 목록 ======");
 Set key = wordbook.keySet();
 Iterator iterator;
 for(iterator = key.iterator(); iterator.hasNext();) {
 String keyValue = (String) iterator.next(); // next() 메소드를 사용 할 때마다 적절한 타입으로 캐스팅 해줘야함.
 String valueVar = (String) wordbook.get(keyValue);
 System.out.println("-" + keyValue + " : " + valueVar);
 }
 System.out.println("=======================");
 }
 @Override
 public void exit() {
 System.out.println("단어장을 종료합니다.");
 }
}
ackage CodingTest1;
import java.util.*;
public class wordbook {
 public static void main(String[] args) {
 myWordbook mybook = new myWordbook();
 Scanner sc = new Scanner(System.in);
 while(true) {
 mybook.Menu();
 int select = sc.nextInt();
 switch(select){
 case 1:
 mybook.addWord();
 break;
 case 2:
 mybook.searchWord();
 break;
 case 3:
 mybook.deleteWord();
 break;
 case 4:
 mybook.test();
 break;
 case 5:
 mybook.wordList();
 break;
 case 6:
 mybook.exit();
 break;
 } 
 if(select>6) {
 System.out.println("1~6까지의 숫자만 입력하시오 >> ");
 }
 }
 }
}

2024年01月24日 15:44

이현우

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.


언어별 풀이 현황
전 체 x 17
python x 13
기 타 x 3
java x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /