以英语四级单词本(网上下载)为词汇集合,在图形用户界面中随机显示一个单词的中英文信息,若用户认识该单词,则点击按钮“下一个”,否则点击按钮“不会”,则该单词进入陌生单词集合(考核高频)。用java写
时间: 2024-03-26 16:35:25 浏览: 74
JAVA写的四级单词小程序
好的,以下是一个简单的Java程序,可以实现你所描述的功能:
```java
import java.util.*;
import java.io.*;
public class VocabularyLearningApp {
private static final String FILENAME = "cet4.txt"; // 词汇文件名
private static final int MAX_UNKNOWN_WORDS = 50; // 最多陌生单词数
private static final Random rand = new Random(); // 随机数生成器
private static List<String[]> vocabularyList = new ArrayList<>(); // 词汇列表
private static Set<String> unknownWordSet = new HashSet<>(); // 陌生单词集合
public static void main(String[] args) {
loadVocabulary(); // 加载词汇文件
Collections.shuffle(vocabularyList); // 随机打乱词汇列表
Scanner scanner = new Scanner(System.in);
int correctCount = 0; // 正确计数
int totalCount = 0; // 总计数
for (String[] vocabulary : vocabularyList) {
String english = vocabulary[0];
String chinese = vocabulary[1];
System.out.println("英文:" + english);
System.out.println("中文:" + chinese);
System.out.print("是否认识该单词?(输入 y 或 n)");
String answer = scanner.nextLine();
if (answer.equalsIgnoreCase("y")) {
correctCount++;
} else if (answer.equalsIgnoreCase("n")) {
unknownWordSet.add(english);
}
totalCount++;
System.out.println("正确率:" + (double) correctCount / totalCount);
System.out.println("陌生单词数:" + unknownWordSet.size());
System.out.println();
if (unknownWordSet.size() >= MAX_UNKNOWN_WORDS) {
System.out.println("已达到最大陌生单词数,程序结束。");
break;
}
}
if (unknownWordSet.size() > 0) {
System.out.println("以下是陌生单词列表:");
for (String word : unknownWordSet) {
System.out.println(word);
}
}
}
// 加载词汇文件
private static void loadVocabulary() {
try (BufferedReader reader = new BufferedReader(new FileReader(FILENAME))) {
String line;
while ((line = reader.readLine()) != null) {
String[] pair = line.split("\\s+");
if (pair.length == 2) {
vocabularyList.add(pair);
}
}
} catch (IOException e) {
System.err.println("Failed to load vocabulary file: " + FILENAME);
e.printStackTrace();
System.exit(1);
}
}
}
```
这个程序首先通过文件读取的方式加载了一个英语四级单词本,然后随机打乱了词汇列表,之后每次随机选择一个单词,显示它的中英文信息,并让用户输入是否认识该单词。如果用户点击“下一个”,程序继续下一个单词的学习;如果用户点击“不会”,将该单词加入到陌生单词集合中,并继续下一个单词的学习。程序会实时统计正确率和陌生单词数,并在达到最大陌生单词数时结束学习,输出陌生单词列表。
阅读全文