circle类和班级成员的打印向量发行

Issue with Circle class and printing vector of class members

本文关键字:打印 向量 成员 circle      更新时间:2023-10-16

我的代码有几个问题。

我能够对 radii 的向量进行分类并打印它们,但是它正在围绕数字并切断小数,我不确定如何修复它。

我遇到的另一个问题是试图显示旁边每个半径的区域,我无法正确调用类功能"区域"以显示相应半径旁边的区域。

我很抱歉,我对C 非常陌生,我试图尽我所能解释我的问题。

我知道我的代码有点基本,因此也将不胜感激。同样,也将感谢打印矢量和显示该区域的任何帮助。谢谢。

这是类:

#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
class Circle {
private:
    double radius;  // Radius of circle
public:
    // Default constructor
    Circle() {
        radius = 0.0;
    }
    // Set the radius of the circle
    void setRadius(double r) {
        radius = r;
    }
    // Get the radius of the circle
    double getRadius() {
        return radius;
    }
    // Calculate the area of the circle using current radius
    double area() {
        return(3.1416 * radius * radius);
    }
};
void printVector(vector<int>);
void bubbleSort(vector<int> &);

这是主要的:

int main(int argc, char** argv) {
cout << "Sorted Vector of Circles" << endl;
cout << "------------------------" << endl;
const int SIZE = 10;
Circle circle;
vector<int> circles;
Circle c1;
c1.setRadius(2.5);
circles.push_back(c1.getRadius());
Circle c2;
c2.setRadius(3.5);
circles.push_back(c2.getRadius());
Circle c3;
c3.setRadius(1.0);
circles.push_back(c3.getRadius());
Circle c4;
c4.setRadius(5.5);
circles.push_back(c4.getRadius());
Circle c5;
c5.setRadius(4.8);
circles.push_back(c5.getRadius());
Circle c6;
c6.setRadius(6.0);
circles.push_back(c6.getRadius());
Circle c7;
c7.setRadius(2.75);
circles.push_back(c7.getRadius());
Circle c8;
c8.setRadius(10);
circles.push_back(c8.getRadius());
Circle c9;
c9.setRadius(0.5);
circles.push_back(c9.getRadius());
Circle c10;
c10.setRadius(9.5);
circles.push_back(c10.getRadius());
bubbleSort(circles);
printVector(circles);
return 0;
}

排序功能:

void bubbleSort(vector<int> &radii){
int temp;
bool swap;
do {
    swap = false;
    for(int count = 0;count < radii.size()-1; count++){
        if (radii[count] > radii[count+1]) {
            temp = radii[count];
            radii[count] = radii[count + 1.];
            radii[count+1] = temp;
            swap = true;
        }
    }
} while (swap);

}

打印功能:

void printVector(vector<int> radii) {
cout << "Radius" << endl;
cout << "" << endl;
for (int count = 0; count < radii.size(); count++) {
    cout << setw(2) << radii[count] << setprecision(2) << " " << 
radii[count.area()] << " "; // main issue is with this section of code
cout << endl;
}   
}

使用std::vector<double>代替std::vector<int>

没有什么叫count.area()countinteger变量而不是Circle

如果要打印区域,则必须将另一个向量向量向量(应该先创建一个(传递给打印功能。