酷代码 AI
菜单

请生成一个雷达图程序,询问对方第一个人9个参数信息并填写其满分数值,然后询问是否有第二个人,如果有,询问第二个人的参数的参数(建立二维列表),然后询问是否有第三个人,重复,直至询问是否有第n个人是用户反馈说没有为止,将所有参数折合成100分后生成雷达图(不使用前缀,在开头写万能头)

```cpp #include <bits/stdc++.h> #include <iostream> #include <vector> #include <string> #include <cmath> #include <matplotlibcpp.h> namespace plt = matplotlibcpp; // 函数用于获取一个人的参数信息 std::vector<double> getPersonParams(int paramCount, std::vector<double> maxScores) { std::vector<double> params(paramCount); for (int i = 0; i < paramCount; ++i) { std::cout << "请输入第 " << i + 1 << " 个参数的值: "; std::cin >> params[i]; // 折合成100分 params[i] = (params[i] / maxScores[i]) * 100; } return params; } // 函数用于生成雷达图 void generateRadarChart(const std::vector<std::vector<double>>& allParams) { int paramCount = allParams[0].size(); std::vector<double> angles; for (int i = 0; i < paramCount; ++i) { angles.push_back(2 * M_PI * i / paramCount); } angles.push_back(angles[0]); plt::figure(); for (const auto& params : allParams) { std::vector<double> tempParams = params; tempParams.push_back(params[0]); plt::polar(angles, tempParams); } plt::show(); } int main() { const int paramCount = 9; std::vector<double> maxScores(paramCount); for (int i = 0; i < paramCount; ++i) { std::cout << "请输入第 " << i + 1 << " 个参数的满分数值: "; std::cin >> maxScores[i]; } std::vector<std::vector<double>> allParams; int personCount = 1; char hasMore; do { std::cout << "现在输入第 " << personCount << " 个人的参数信息。" << std::endl; std::vector<double> params = getPersonParams(paramCount, maxScores); allParams.push_back(params); std::cout << "是否有第 " << personCount + 1 << " 个人? (y/n): "; std::cin >> hasMore; personCount++; } while (hasMore == 'y' || hasMore == 'Y'); generateRadarChart(allParams); return 0; } ``` 代码说明: 1. 万能头文件:使用了`#include <bits/stdc++.h>`,包含了大部分常用的标准库头文件。 2. 获取参数信息:`getPersonParams`函数用于获取一个人的9个参数信息,并将其折合成100分。 3. 生成雷达图:`generateRadarChart`函数使用`matplotlib-cpp`库生成雷达图。 4. 主函数:首先获取9个参数的满分数值,然后循环询问是否有更多的人,并获取每个人的参数信息,最后调用`generateRadarChart`函数生成雷达图。 注意事项: - 此代码使用了`matplotlib-cpp`库,需要提前安装该库并配置好编译环境。 - 输入的参数值会自动折合成100分,方便在雷达图中进行比较。 [2026-01-11 21:09:16 | AI问答 | 801点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多