功能说明
- 查询单词:用户可以输入一个单词,程序将显示该单词的释义。
- 文件存储:使用文件来存储单词和释义,以便下次启动程序时仍然可用。
- 用户界面:提供简单的命令行界面,让用户选择查询单词或退出程序。
示例代码
词库文件 dictionary.txt
假设我们有一个词库文件 dictionary.txt
,内容如下:
apple 苹果
banana 香蕉
cherry 樱桃
dog 狗
elephant 大象
C++ 代码
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <string>
class Dictionary {
private:
std::unordered_map<std::string, std::string> words;
public:
Dictionary(const std::string& filename) {
loadDictionary(filename);
}
void loadDictionary(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
std::cerr << "无法打开词库文件:" << filename << std::endl;
return;
}
std::string word, definition;
while (std::getline(file, word, ' ') && std::getline(file, definition)) {
words[word] = definition;
}
}
std::string lookup(const std::string& word) const {
if (words.find(word) != words.end()) {
return words.at(word);
} else {
return "未找到该单词的释义。";
}
}
};
int main() {
Dictionary dict("dictionary.txt");
while (true) {
std::cout << "\n电子词典菜单:" << std::endl;
std::cout << "1. 查询单词" << std::endl;
std::cout << "2. 退出" << std::endl;
std::cout << "请选择一个选项: ";
int choice;
std::cin >> choice;
if (choice == 1) {
std::string word;
std::cout << "请输入要查询的单词: ";
std::cin >> word;
std::cout << "释义: " << dict.lookup(word) << std::endl;
} else if (choice == 2) {
std::cout << "退出电子词典。" << std::endl;
break;
} else {
std::cout << "无效的选项,请重新选择。" << std::endl;
}
}
return 0;
}
代码解释
-
类
Dictionary
:- 成员变量:
words
:一个unordered_map
,用于存储单词及其释义。
- 构造函数:初始化词典并加载词库文件。
- 方法:
loadDictionary
:从文件中加载单词和释义。lookup
:查询单词的释义,如果单词不存在则返回提示信息。
- 成员变量:
-
主函数
main
:- 创建一个
Dictionary
实例,词库文件名为"dictionary.txt"
。 - 提供一个简单的命令行界面,让用户选择查询单词或退出程序。
- 根据用户的选择调用相应的
Dictionary
方法。
- 创建一个
运行示例
假设用户输入如下:
电子词典菜单:
1. 查询单词
2. 退出
请选择一个选项: 1
请输入要查询的单词: apple
释义: 苹果
然后用户选择退出:
电子词典菜单:
1. 查询单词
2. 退出
请选择一个选项: 2
退出电子词典。
扩展功能
你可以进一步扩展这个电子词典的功能,例如:
- 添加单词:允许用户添加新的单词和释义。
- 删除单词:允许用户删除已有的单词。
- 编辑单词:允许用户修改已有单词的释义。
- 多语言支持:支持多种语言的单词查询。
- 网络查询:从在线词典API获取单词释义。