这是一个孩子姓名计算器,有一个没有的进度条。
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <chrono>
#include <thread>
void printProgressBar(int progress) {
const int barWidth = 50;
std::cout << "[";
for (int i = 0; i < barWidth; ++i) {
if (i < static_cast<int>(barWidth * progress / 100)) {
std::cout << "=";
} else {
std::cout << " ";
}
}
std::cout << "] " << progress << "%\r";
std::cout.flush();
}
int main() {
std::srand(static_cast<unsigned int>(std::time(0))); // 初始化随机数生成器
std::string fatherName, motherName, childName;
std::cout << "请输入父亲的名字: ";
std::getline(std::cin, fatherName);
std::cout << "请输入母亲的名字: ";
std::getline(std::cin, motherName);
std::cout << "正在计算孩子的名字...\n";
int progress = 0;
while (progress < 100) {
printProgressBar(progress);
std::this_thread::sleep_for(std::chrono::milliseconds(100 + std::rand() % 300)); // 随机延迟
progress += std::rand() % 10 + 5; // 随机进度增加,确保进度条不会卡住
if (progress > 100) progress = 100;
}
printProgressBar(100); // 完成进度条
std::cout << std::endl;
// 组合父姓和母姓作为孩子的名字
childName = fatherName + motherName;
std::cout << "孩子的名字是: " << childName << std::endl;
return 0;
}
在这个程序中,我们使用std::this_thread::sleep_for
来模拟进度条的更新延迟,并且确保进度条的进度在每次更新时至少增加5%,但不超过10%,以避免进度条卡住。最后,孩子的名字由父姓和母姓组合而成。
请确保你的编译器支持C++11或更高版本,因为程序中使用了C++11的特性。如果你的编译器不支持,你可能需要升级编译器。