Форум программистов, компьютерный форум CyberForum.ru

Создать класс Point - C++

Восстановить пароль Регистрация
 
Margo1991
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 7
22.04.2014, 22:25     Создать класс Point #1
Создать класс Point , содержащий в себе следующие элементы:
- Поле « координата X » float X ;
- Поле « координата Y » float Y ;
- Метод установления координат void SetCoordinate ( float X , float Y ) ;
- Метод получения координаты X float GetX ();
- Метод получения координаты Y float GetY ();
- Конструктор без параметров Point ();
- Конструктор с параметрами Point ( float X , float Y ) .
Унаследовать от класса Point класс ColorPoint , содержащий в себе элементы :
- Поле « цвет » int Color ;
- Метод установления цвета void SetColor ( int Color ) ;
- Метод получения цвета int GetColor ();
- Конструктор без параметров ColorPoint ();
- Конструктор с параметрами ColorPoint ( float X , float Y , int Color ) .
В классе СolorPoint перегрузить оператор + + ( унарный оператор класса) , новое действие - увеличить цвет на единицу ( цвет меняется по кругу в диапазоне 0 .. 16).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
23.04.2014, 00:59     Создать класс Point #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Создать класс Point , содержащий в себе следующие элементы:
class Point
{
    // - Поле « координата X » float X ;
    float X;
    // - Поле « координата Y » float Y ;
    float Y;
 
public:
 
    // - Метод установления координат void SetCoordinate ( float X , float Y ) ;
    void SetCoordinate ( float pX , float pY )
    {
        X = pX;
        Y = pY;
    }
 
    // - Метод получения координаты X float GetX ();
    float GetX()
    {
        return X;
    }
 
    // - Метод получения координаты Y float GetY ();
    float GetY()
    {
        return Y;
    }
 
    // - Конструктор без параметров Point ();
    Point()
    : X(0.f)
    , Y(0.f)
    {       
    }
 
    // - Конструктор с параметрами Point ( float X , float Y ) .
    Point( float pX , float pY )
    : X(pX)
    , Y(pY)
    {
    }
};
 
//  Унаследовать от класса Point класс ColorPoint , содержащий в себе элементы :
class ColorPoint : public Point
{
    // - Поле « цвет » int Color ;
    int Color;
 
public:
 
    // - Метод установления цвета void SetColor ( int Color ) ;
    void SetColor (int pColor)
    {
        Color = pColor;
    }
 
    // - Метод получения цвета int GetColor ();
    int GetColor()
    {
        return Color;
    }
 
    // - Конструктор без параметров ColorPoint ();
    ColorPoint()
    : Color(0)
    {
    }
 
    // - Конструктор с параметрами ColorPoint ( float X , float Y , int Color ) .
    ColorPoint ( float pX , float pY , int pColor )
    : Point(pX, pY)
    , Color(pColor)
    {
 
    }
 
    //  В классе СolorPoint перегрузить оператор + + ( унарный оператор класса) , новое действие - увеличить цвет на единицу ( цвет меняется по кругу в диапазоне 0 .. 16).
    int operator++()
    {       
        return (++Color > 16) ? Color = 0 : Color;
    }
};
Margo1991
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 7
23.04.2014, 19:39  [ТС]     Создать класс Point #3
спасибо
andru160596
1 / 1 / 1
Регистрация: 14.05.2014
Сообщений: 37
07.02.2015, 23:20     Создать класс Point #4
Меорн, У меня задание состоит на 50% из этого, не поможете написать первую часть. Буду крайне признателен.

Создать класс Ellipse, содержащий следующие элементы:
- поле «центр» Point* Center;
- поле «малый радиус» float a;
- поле «большой радиус» float b;
- метод получения координат центра Point GetCenter();
- метод получения малого радиуса float Get_a();
- метод получения большого радиуса float Get_b();
- метод проверки, является ли эллипс окружностью int isCircle();
- конструктор с параметрами Ellipse(Point* Center, float a, float b);


Создать класс Point, что имеет элементы:
- поле «координат X» float X;
- поле «координат Y» float Y;
- метод установки координат void SetCoordinate(float X, float Y);
- метод получения координат X float Get();
- метод получения координат Y float Get();
- конструктор с параметрами Point(float X, float Y);

В классе Ellipse перезагрузить оператор - (бинарний, дружественный оператор), новое действие – вернуть расстояние между центрами Элипсов.

Есть только вторая часть, но не знаю насколько правильная.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
08.02.2015, 02:18     Создать класс Point #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <math.h>
 
// Создать класс Point, что имеет элементы:
class Point
{
    // поле «координат X» float X;
    float X;
    // поле «координат Y» float Y;
    float Y;
 
public:
 
    // метод установки координат void SetCoordinate(float X, float Y);
    void SetCoordinate ( float pX , float pY )
    {
        X = pX;
        Y = pY;
    }
 
    // метод получения координат X float Get();
    float GetX()
    {
        return X;
    }
 
    // метод получения координат Y float Get();
    float GetY()
    {
        return Y;
    }
 
    // Конструктор без параметров Point();
    Point()
        : X(0.f)
        , Y(0.f)
    {       
    }
 
    // конструктор с параметрами Point(float X, float Y);
    Point( float pX , float pY )
        : X(pX)
        , Y(pY)
    {
    }
};
 
class Ellipse
{
    // поле «центр» Point* Center
    Point* Center;
    // поле «малый радиус» float a;
    float a;
    // поле «большой радиус» float b;
    float b;
 
public:
 
    // метод получения малого радиуса float Get_a();
    float Get_a()
    {
        return a;
    }
 
    // метод получения большого радиуса float Get_b();
    float Get_b()
    {
        return b;
    }
 
    // метод проверки, является ли эллипс окружностью int isCircle();
    int isCircle()
    {
        return a == b;
    }
 
    // Конструктор без параметров Ellipse();
    Ellipse()
    : Center(0)
    , a(0)
    , b(0)
    {
 
    }
 
    // конструктор с параметрами Ellipse(Point* Center, float a, float b);
    Ellipse(Point* pCenter, float pA, float pB)
    : Center(pCenter)
    , a(pA)
    , b(pB)
    {
 
    }
 
    // перезагрузить оператор - (бинарний, дружественный оператор), новое действие – вернуть расстояние между центрами Элипсов.
    friend float operator-(Ellipse pEllipse1, Ellipse pEllipse2)
    {
        float result = pow(pEllipse2.Center->GetX() - pEllipse1.Center->GetX(), 2);
        result += pow(pEllipse2.Center->GetY() - pEllipse1.Center->GetY(), 2);
        result = sqrt(result);
        return result;
    }
};
Не понятно зачем в классе Ellipse "бинарний, дружественный оператор -".
Объект и так имеет доступ к закрытым полям другого объекта того же класса.
Лучше уточните у преподавателя что имеется в виду.
Ridoll
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 12
11.02.2015, 09:19     Создать класс Point #6
Меорн, у меня тоже задание состоит на 50% из этого, помогите, пожалуйста, написать первую часть. Буду очень, очень признательна.

Создать класс Line, который содержит следуйщие элементы:
-поле "точка1" Point p1:
-поле "точка2" Point p2:
-метод установки точки1 void Set1(Point p):
-метод установки точки2 void Set2(Point p):
-метод получения длинны отрезка float GetLength():
-метод получения углового кефициента К для уравнения вида у=кх+b float Get();
-конструктор с параметрами Line (Point p1, Point p2);


Создать класс Point, который содержит следуйщие элементы:
-<<поле координата X >> Float X:
-<<поле координата Y >> Float Y:
-метод установки координат void SetCoordinate(Float X,Float Y):
-метод получения координат Х Float Get():
-метод получения координат Y Float Get():
-конструктор с параметрами Point(float X,Float Y):
-В классе Line перегрузить оператор ~ (унарный,оператор класса), новое действие - возвратить коэффициент b для уравнения вида y=kx+b
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
11.02.2015, 09:22     Создать класс Point #7
Вы сразу всех одногрупников зовите, чтобы Ваш друг все возможные 50-процентные задания поделал.
Ridoll
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 12
11.02.2015, 09:58     Создать класс Point #8
Тамика, зачем всех одногруппников, другие могут написать себе код или нашли его. Тем более, никто никого не заставляет писать коды, но если человеку нетрудно, то буду ему очень признательна.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
11.02.2015, 15:34     Создать класс Point #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Создать класс Point, что имеет элементы:
class Point
{
    // поле «координат X» float X;
    float X;
    // поле «координат Y» float Y;
    float Y;
 
public:
 
    // метод установки координат void SetCoordinate(float X, float Y);
    void SetCoordinate ( float p_X , float p_Y )
    {
        X = p_X;
        Y = p_Y;
    }
 
    // метод получения координат X float Get();
    float GetX()
    {
        return X;
    }
 
    // метод получения координат Y float Get();
    float GetY()
    {
        return Y;
    }
 
    // Конструктор без параметров Point();
    Point()
    : X(0.f)
    , Y(0.f)
    {       
    }
 
    // конструктор с параметрами Point(float X, float Y);
    Point( float p_X , float p_Y )
    : X(p_X)
    , Y(p_Y)
    {
 
    }
};
 
// Создать класс Line, который содержит следуйщие элементы:
class Line 
{
    // поле "точка1" Point p1:
    Point p1;
 
    // поле "точка2" Point p2:
    Point p2;
 
public:
 
    // метод установки точки1 void Set1(Point p):
    void Set1(Point p_newPoint)
    {
        p1 = p_newPoint;
    }
 
    // метод установки точки2 void Set2(Point p):
    void Set2(Point p_newPoint)
    {
        p2 = p_newPoint;
    }
 
    // метод получения длинны отрезка float GetLength():
    float GetLength()
    {
        float result = pow(p2.GetX() - p1.GetX(), 2);
        result += pow(p2.GetY() - p1.GetY(), 2);
        result = sqrt(result);
        return result;
    }
 
    // метод получения углового кефициента К для уравнения вида у=кх+b float Get();
    float Get()
    {
        return (p2.GetY() - p1.GetY()) / (p2.GetX() - p1.GetX());
    }
 
    //  конструктор с параметрами Line (Point p1, Point p2);
    Line(Point p_p1, Point p_p2)
    : p1(p_p1)
    , p2(p_p2)
    {
 
    }
 
    // В классе Line перегрузить оператор ~ (унарный,оператор класса), новое действие - возвратить коэффициент b для уравнения вида y=kx+b
    float operator~()
    {
        return (p1.GetY() * p2.GetX() - p2.GetY() * p1.GetX()) / (p2.GetX() - p1.GetX());
    }
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 19:52     Создать класс Point
Еще ссылки по теме:

C++ Класс Point для работы с точками на плоскости
И снова класс Point C++
C++ Класс Point

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ridoll
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 12
12.02.2015, 19:52     Создать класс Point #10
Меорн, спасибо Вам огромнейшее.
Yandex
Объявления
12.02.2015, 19:52     Создать класс Point
Ответ Создать тему
Опции темы

Текущее время: 08:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru