答案:程序从words.txt读取单词,用户输入中文意思答题,系统自动评分并保存结果到result.txt。

做一个C++单词测试程序,核心功能包括从文件读取单词、用户答题、自动评分并将结果写入文件,整个流程可以拆解为几个关键部分来实现。下面是一个结构清晰、功能完整的示例程序,包含文件读写和评分功能。
1. 准备单词文件(words.txt)
首先创建一个文本文件 words.txt,每行包含一个英文单词和其中文意思,用逗号分隔:
hello,你好 world,世界 computer,计算机 program,程序 function,函数
2. 程序功能说明
程序会:
立即学习“C++免费学习笔记(深入)”;
- 从 words.txt 读取单词对
- 随机打乱顺序,显示英文,让用户输入中文意思
- 自动判断对错并统计得分
- 将测试结果(用户名、得分、总题数)写入 result.txt
3. 完整C++代码实现
以下是可运行的C++代码:
#include#include #include #include #include #include #include using namespace std; struct Word { string english; string chinese; };
// 从文件加载单词 vector
loadWords(const string& filename) { vector words; ifstream file(filename); if (!file.is_open()) { cout << "无法打开文件: " << filename << endl; return words; } string line; while (getline(file, line)) { stringstream ss(line); string en, cn; getline(ss, en, ','); getline(ss, cn); if (!en.empty() && !cn.empty()) { words.push_back({en, cn}); } } file.close(); return words;}
// 保存测试结果到文件 void saveResult(const string& name, int score, int total) { ofstream file("result.txt", ios::app); if (file.is_open()) { file
int main() { vector
words = loadWords("words.txt"); if (words.empty()) { cout // 打乱单词顺序 srand(time(0)); random_shuffle(words.begin(), words.end()); string name; cout zuojiankuohaophpcnzuojiankuohaophpcn "请输入你的名字: "; getline(cin, name); int score = 0; cout zuojiankuohaophpcnzuojiankuohaophpcn "\n开始测试!输入 'quit' 可提前退出。\n\n"; for (const auto& word : words) { string answer; cout zuojiankuohaophpcnzuojiankuohaophpcn "单词 '" zuojiankuohaophpcnzuojiankuohaophpcn word.english zuojiankuohaophpcnzuojiankuohaophpcn "' 的中文意思是? "; getline(cin, answer); if (answer == "quit") break; if (answer == word.chinese) { cout zuojiankuohaophpcnzuojiankuohaophpcn "✔ 正确!\n\n"; score++; } else { cout zuojiankuohaophpcnzuojiankuohaophpcn "✘ 错误,正确答案是:'" zuojiankuohaophpcnzuojiankuohaophpcn word.chinese zuojiankuohaophpcnzuojiankuohaophpcn "'\n\n"; } } // 显示得分 cout zuojiankuohaophpcnzuojiankuohaophpcn "测试结束!你答对了 " zuojiankuohaophpcnzuojiankuohaophpcn score zuojiankuohaophpcnzuojiankuohaophpcn " / " zuojiankuohaophpcnzuojiankuohaophpcn words.size() zuojiankuohaophpcnzuojiankuohaophpcn " 题。\n"; // 保存结果 saveResult(name, score, words.size()); return 0;}
4. 运行效果示例
测试完成后,result.txt 中会追加类似内容:
小明,4/5,正确率:80% Alice,5/5,正确率:100%5. 可扩展功能建议
- 增加选择题模式(A/B/C/D)
- 支持多次测试后统计平均分
- 读取 result.txt 显示历史成绩
- 加入计时功能,记录答题用时
- 支持中文→英文反向测试
基本上就这些。这个程序结构清晰,适合学习C++的文件操作、结构体、STL容器和字符串处理。只要确保 words.txt 和可执行文件在同一目录,就能正常运行。










