Создать класс окружностей ** плоскости, описав в нём все необходимые свойства, подобрав...

0 голосов
112 просмотров

Создать класс окружностей на плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Описать в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства, а также конструктор, позволяющий задать свойства с клавиатуры. Если это необходимо, то проверить допустимость значений свойств. Создать в классе метод, вычисляющий площадь круга. Создать в классе метод, вычисляющий расстояние между центрами окружностей. Создать в классе метод, проверяющий, касаются ли окружности.


Информатика (20 баллов) | 112 просмотров
0

ребята помогите пожалуйста с программой на visual studio c++

Дан 1 ответ
0 голосов
Правильный ответ

#include
#include
using namespace std;
class Circle
{
private:
    double x;
    double y;
    double r;
public:
    Circle();
    Circle(double xCo, double yCo, double rad);
    double area();
    double centre_dist(Circle & c);
    bool istouch(Circle & c);
};

Circle::Circle()
{
    cout << "Enter x coord: ";<br>    cin >> x;
    cout << "Enter y coord: ";<br>    cin >> y;
    cout << "Enter radius: ";<br>    while (cin >> r && r < 0)
    {
        cout << "Radius can't be negative\n";<br>        cout << "Enter radius: ";<br>    }
}

Circle::Circle(double xCo, double yCo, double rad) : x(xCo), y(yCo), r(rad)
{
    if (r < 0)
    {
        cout << "Radius can't be negative\n";<br>        cout << "Radius set to 0\n";<br>        r = 0;
    }
}

double Circle::area()
{
    return 3.1415926 * r * r;
}

double Circle::centre_dist(Circle & c)
{
    return sqrt((x - c.x) * (x - c.x) + (y - c.y) * (y - c.y));
}

bool Circle::istouch(Circle & c)
{
    return (this->centre_dist(c) <= r + c.r) ? true : false;<br>}

int main()
{
    Circle c1;
    Circle c2(0, 0, 5);
    cout << "area of c2: " << c2.area() << endl;<br>    cout << "centre distance: " << c2.centre_dist(c1) << endl;<br>    cout << "is touch: ";<br>    c2.istouch(c1) ? cout << "yes" : cout << "no";<br>    cout << endl;<br>    return 0;
}

(1.1k баллов)