C++ с использованием getArea() и доступа к массиву для определения области круга
Мне нужна помощь в решении следующей проблемы, которая заключается в определении областей каждого круга в массиве с помощью метода getArea(). Как мне получить доступ к массиву и затем обработать область круга с помощью функции-члена Circle::getArea().
Файл Main.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#include "Circle.h"
#include "Random.h"
int main()
{
// Array 1, below section is to populate the array with random
// radius number within lower and upper range
int CircleArrayOne [5];
const int NUM = 5;
srand(time(NULL));
for(int x = 0; x < NUM; ++x)
{
CircleArrayOne[x] = Random::random(1, 40); // assumed 0 and 40 as the bounds
}
// output the radius of each circle
cout << "Below is the radius each of the five circles in the second array. " << endl;
// below is to output the radius in the array
for(int i = 0; i < NUM; ++i)
{
cout << CircleArrayOne[i] << endl;
}
// Here I want to access the array to work out the area using
// float Circl::getArea()
system("PAUSE");
return 0;
}
float Circle::getArea()
{
double PI = 3.14;
return (PI * (Radius*Radius));
}
float Circle::getRadius()
{
return Radius;
}
int Random::random(int lower, int upper)
{
int range = upper - lower + 1;
return (rand() % range + lower);
}
Circle.h файл
#pragma once
#include <string>
class Circle
{
private:
float Radius;
public:
Circle(); // initialised radius to 0
Circle(float r); // accepts an argument and assign its value to the radius attribute
void setRadius(float r); // sets radius to a value provided by its radius parameter (r)
float getRadius(); // returns the radius of a circle
float getArea(); // calculates and returns the areas of its circle
};
Благодарю. Большая помощь очень ценится.
1 ответ
Решение
Пока у вас просто есть случайный радиус для кругов, но нет Circle
объекты. Итак, сначала создайте круг объектов.
Circle obj[5]; // Create 5 objects default constructed.
Теперь установите радиус каждого объекта, используя setRadius
и область вызова на каждом объекте.