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

Ответы 1

  • #include <iostream>#include <cmath>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: ";    cin >> x;    cout << "Enter y coord: ";    cin >> y;    cout << "Enter radius: ";    while (cin >> r && r < 0)    {        cout << "Radius can't be negative";        cout << "Enter radius: ";    }}Circle::Circle(double xCo, double yCo, double rad) : x(xCo), y(yCo), r(rad){    if (r < 0)    {        cout << "Radius can't be negative";        cout << "Radius set to 0";        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;}int main(){    Circle c1;    Circle c2(0, 0, 5);    cout << "area of c2: " << c2.area() << endl;    cout << "centre distance: " << c2.centre_dist(c1) << endl;    cout << "is touch: ";    c2.istouch(c1) ? cout << "yes" : cout << "no";    cout << endl;    return 0;}
    • Автор:

      myla
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years