可以帮我用c++写个诗词背诵系统吗
时间: 2023-08-12 15:04:29 浏览: 65
当然可以,我可以为您提供一个简单的诗词背诵系统的代码示例。以下是一个基于C++的控制台程序,可以随机生成一首唐诗或宋词,然后要求用户输入诗词的朗读内容,再与原文进行比对,最后给出得分。
```c++
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
using namespace std;
// 唐诗和宋词的库
vector<string> tang_poems = {
"床前明月光,疑是地上霜。",
"白日依山尽,黄河入海流。",
"静夜思",
"登高",
"望岳",
// ... 这里可以加入更多的唐诗
};
vector<string> song_lyrics = {
"苏幕遮·燎沉香",
"声声慢·寻寻觅觅",
"虞美人·听雨",
"如梦令·常记溪亭日暮",
"长恨歌·汉皇重色思倾国",
// ... 这里可以加入更多的宋词
};
// 获取当前时间(毫秒级别)
int get_current_time() {
return static_cast<int>(time(nullptr));
}
// 随机获取唐诗或宋词
string get_random_poem_or_lyric() {
srand(get_current_time());
int rand_index = rand() % 2; // 0表示唐诗,1表示宋词
if (rand_index == 0) {
return tang_poems[rand() % tang_poems.size()];
} else {
return song_lyrics[rand() % song_lyrics.size()];
}
}
// 计算用户得分
int calculate_score(const string& original, const string& user_input) {
int score = 0;
for (size_t i = 0; i < original.size(); i++) {
if (i >= user_input.size()) {
break;
}
if (original[i] == user_input[i]) {
score++;
}
}
return score;
}
int main() {
// 随机获取一首唐诗或宋词
string original = get_random_poem_or_lyric();
// 输出原文
cout << "请朗读下面的诗词:" << endl;
cout << original << endl;
// 等待用户输入
string user_input;
getline(cin, user_input);
// 计算用户得分
int score = calculate_score(original, user_input);
cout << "你的得分是:" << score << endl;
return 0;
}
```
在这个简单的代码示例中,我们使用了一个包含多个唐诗和宋词的库,然后随机获取其中一首,输出给用户进行朗读。接着,我们等待用户输入,然后计算用户的得分,并输出给用户。
这个代码示例只是一个基础版本,您可以根据自己的需求进行修改和扩展。例如,您可以加入更多的唐诗和宋词,或者设计一个更加复杂的算法来计算用户得分,或者将程序界面化并添加音频播放功能等。