用C++写一个单词记忆系统,要求文件输入输出,面向对象
时间: 2023-08-24 14:06:16 浏览: 119
好的,下面是一个简单的单词记忆系统的示例代码,它使用 C++ 的面向对象编程思想,并且通过文件进行输入输出。
```
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 单词类
class Word {
public:
Word(string w, string m) : word(w), meaning(m) {}
string getWord() { return word; }
string getMeaning() { return meaning; }
private:
string word;
string meaning;
};
// 单词本类
class WordBook {
public:
WordBook(string f) : filename(f) {}
void addWord(Word w) { words.push_back(w); }
void displayWords() {
for (auto w : words) {
cout << w.getWord() << " - " << w.getMeaning() << endl;
}
}
void saveToFile() {
ofstream ofs(filename);
for (auto w : words) {
ofs << w.getWord() << "," << w.getMeaning() << endl;
}
ofs.close();
}
void loadFromFile() {
ifstream ifs(filename);
string line;
while (getline(ifs, line)) {
int pos = line.find(",");
string w = line.substr(0, pos);
string m = line.substr(pos + 1);
words.push_back(Word(w, m));
}
ifs.close();
}
private:
string filename;
vector<Word> words;
};
int main() {
string filename = "wordbook.txt";
WordBook wb(filename);
wb.loadFromFile();
// 添加新单词
cout << "请输入新单词和它的意思,以空格分隔:" << endl;
string w, m;
cin >> w >> m;
wb.addWord(Word(w, m));
// 显示单词本
cout << "单词本:" << endl;
wb.displayWords();
// 保存到文件
cout << "正在保存到文件..." << endl;
wb.saveToFile();
cout << "保存完成!" << endl;
return 0;
}
```
这个单词记忆系统使用 `Word` 类来表示一个单词,使用 `WordBook` 类来表示整个单词本。其中,`WordBook` 类中的成员变量 `filename` 是文件名,`words` 是一个存储单词的 vector。`WordBook` 类中的成员函数包括添加单词、显示单词本、从文件中加载、保存到文件等。在 `main` 函数中,我们首先从文件中加载单词本,然后添加一个新单词,显示整个单词本,最后将单词本保存到文件。
阅读全文