实验环境:Visual Studio 2022
部分实验题,有一道好像找不到了
Reading papers
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
void readPapers(std::string content) {
int cnt = 0, digit = 0;
for (int i = 0; i < content.length(); i++) {
if (content[i] == ' ') {
cnt++;
}
else if (content[i] == ',' || content[i] == '.' || content[i] == '"') {
digit++;
}
}
cnt++;
cout << cnt << "," << digit << endl;
}
int main() {
std::string content;
std::getline(std::cin, content, '\n');
readPapers(content);
return 0;
}
Point cloud
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
void processPoints() {
double X[] = { 244407.100,244407.097,244407.080,244407.124,244407.120,244407.125,244407.090,244407.072,244407.119,244407.079,244407.096,244407.089,244407.066,244407.112,244407.089,244407.067,244407.103,244407.057,244407.127,244407.074};
double Y[] = { 6010942.604,6010942.547,6010942.541,6010942.599,6010942.553,6010942.565,6010942.570,6010942.575,6010942.576,6010942.575,6010942.581,6010942.604,6010942.598,6010942.599,6010942.598,6010942.569,6010942.524,6010942.512,6010942.525,6010942.524 };
double Z[] = { 19.256,19.244,19.242,19.253,19.240,19.241,19.249,19.253,19.246,19.248,19.250,19.255,19.253,19.252,19.255,19.247,19.238,19.240,19.235,19.241};
int R[] = { 140,142,144,144,140,144,142,145,140,161,142,140,144,137,138,149,147,161,144,154 };
int G[] = { 131,131,135,131,130,133,131,135,130,151,133,131,135,128,130,142,137,153,135,142 };
int B[] = { 124,126,128,126,124,128,126,126,124,147,126,124,128,121,124,133,130,144,128,135 };
double sum_x = 0, sum_y = 0, sum_z = 0, sum_r = 0, sum_g = 0, sum_b = 0;
double avg_x = 0, avg_y = 0, avg_z = 0;
double avg_r = 0, avg_g = 0, avg_b = 0;
double chg_X[20], chg_Y[20], chg_Z[20];
fstream fs("D:\\points.csv", ios::in | ios::out | ios::trunc);
if (!fs.is_open()) {
cout << "文件打开失败!" << endl;
exit(0);
}
cout << "移动前数据:" << endl;
for (int i = 0; i < 20; i++) {
fs << fixed << setprecision(3) << X[i] << "," << Y[i] << "," << Z[i] << "," << R[i] << "," << G[i] << "," << B[i] << endl;
sum_x += X[i];
sum_y += Y[i];
sum_z += Z[i];
sum_r += R[i];
sum_g += G[i];
sum_b += B[i];
cout<< fixed << setprecision(3) << X[i] << "," << Y[i] << "," << Z[i] << "," << R[i] << "," << G[i] << "," << B[i] << endl;
}
//统计这些点的重心位置
avg_x = sum_x / 20;
avg_y = sum_y / 20;
avg_z = sum_z / 20;
avg_r = sum_r / 20;
avg_g = sum_g / 20;
avg_b = sum_b / 20;
fs << fixed << setprecision(3) << avg_x << "," << avg_y << "," << avg_z << "," << avg_r << "," << avg_g << "," << avg_b << endl;
fs.close();
//move!
fstream mfs("D:\\points_offset.csv", ios::in | ios::out | ios::trunc);
if (!mfs.is_open()) {
cout << "文件打开失败!" << endl;
exit(0);
}
cout << "移动后数据:" << endl;
for (int i = 0; i < 20; i++) {
chg_X[i] = X[i] + 100;
chg_Y[i] = Y[i] - 50;
chg_Z[i] = Z[i];
mfs << fixed << setprecision(3) << chg_X[i] << "," << chg_Y[i] << "," << chg_Z[i] << "," << R[i] << "," << G[i] << "," << B[i] << endl;
cout<< fixed << setprecision(3) << chg_X[i] << "," << chg_Y[i] << "," << chg_Z[i] << "," << R[i] << "," << G[i] << "," << B[i] << endl;
sum_x += chg_X[i];
sum_y += chg_Y[i];
sum_z += chg_Z[i];
}
avg_x = sum_x / 20;
avg_y = sum_y / 20;
avg_z = sum_z / 20;
mfs << fixed << setprecision(3) << avg_x << "," << avg_y << "," << avg_z << "," << avg_r << "," << avg_g << "," << avg_b << endl;
mfs.close();
}
int main() {
std::cout << "Point cloud in processing..." << endl;
processPoints();
return 0;
}