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

Создиние класса - C++

Восстановить пароль Регистрация
 
twity
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 3
14.01.2011, 10:58     Создиние класса #1
Ребят помогите плиз сделать задачу, совсем не знаю как сделать.
1. Создать класс отрезка CLine ограниченного точками A(XA,YA) и B(XB,YB), содержащий методы:
- задания координат точек А и В;
- вычисление длинны отрезка;
- вычисления новых координат точек А и В при сдвиге на N единиц :Вверх, вниз,влево,вправо.
- вывода текущих координат точек А и В;
2. На основе класса CLine создать производный класс CNewLine , содержащий дополнительные методы:
- вычисления координат середины отрезка О(0Х,ОY);
- вычисление новых координат точек А и В полученных при вращении отрезка относительно его центра на М градусов по часовой стрелке.

Помогитееее, очень нужно в ближайшие дни.

Добавлено через 11 часов 27 минут
знает кто?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 10:58     Создиние класса
Посмотрите здесь:

внук родительского класса не может работать с полями дедовского класса; почему? C++
C++ Вызов метода производного класса через обращение к методу базового класса
Как получить private переменную класса, функцей членом другого класса C++
Как обраиться к функции класса через другую функцию класса (друга)? C++
Построение описания класса, создание и уничтожение объектов этого класса C++
Передача свойства одного экземпляра класса другому экземпляру класса C++
Шаблон класса, параметром которого должны являться наследники определённого класса C++
Как получить доступ к методам класса, который содержится в векторе класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
14.01.2011, 11:43     Создиние класса #2
Ну описание можно например такое сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class CLine
{
private:
double ax,ay,bx,by;
public:
double dlina();
bool set(double ax,double ay,double bx,double by);
bool sdvig(double x,int napravlenie);
bool get(double* ax,double* ay,double* bx,double* by);
}
class CNewLine:CLine
{
public:
bool seredina(double* ax,double* ay;);
bool vrashenie(double m);
}
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,692
14.01.2011, 13:58     Создиние класса #3
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
//////////////////////////////////////////////////////////////////////////////////////
//1. Создать класс отрезка CLine ограниченного точками A(XA,YA) и B(XB,YB), 
//содержащий методы:
//  - задания координат точек А и В;
//  - вычисление длины отрезка;
//  - вычисления новых координат точек А и В при сдвиге на N единиц :
//Вверх, вниз,влево,вправо.
//  - вывода текущих координат точек А и В;
//2. На основе класса CLine создать производный класс CNewLine , содержащий 
//дополнительные методы:
//  - вычисления координат середины отрезка О(0Х,ОY);
//  - вычисление новых координат точек А и В полученных при вращении отрезка 
//относительно его центра на М градусов по часовой стрелке.
//////////////////////////////////////////////////////////////////////////////////////
#define _USE_MATH_DEFINES
//////////////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <complex>
#include <iomanip>
#include <iostream>
//////////////////////////////////////////////////////////////////////////////////////
typedef  double                 T_coord;
typedef  std::complex<T_coord>  T_point;
//////////////////////////////////////////////////////////////////////////////////////
class  T_line
{
protected:
    T_point  A;   
    T_point  B;   
    //--------------------------------------------------------------------------------
public:
    T_line
        (
            T_coord  Xa = 0,
            T_coord  Ya = 0,
            T_coord  Xb = 0,
            T_coord  Yb = 0
        ) 
        : A(Xa, Ya),
          B(Xb, Yb)
    {}
    //--------------------------------------------------------------------------------
    void  set_point_A
        (
            T_coord  Xa,
            T_coord  Ya
        ) 
    {
        A = T_point(Xa, Ya);
    }
    //--------------------------------------------------------------------------------
    void  set_point_B
        (
            T_coord  Xb,
            T_coord  Yb
        ) 
    {
        B = T_point(Xb, Yb);
    }
    //--------------------------------------------------------------------------------
    T_coord  get_len() const
    {
        return  abs(B - A);
    }
    //--------------------------------------------------------------------------------
    void  move_left(T_coord  n)
    {        
        move(-n);     
    }
    //--------------------------------------------------------------------------------
    void  move_right(T_coord  n)
    {        
        move(n);     
    }
    //--------------------------------------------------------------------------------
    void  move_up(T_coord  n)
    {        
        move(T_point(0, n));     
    }
    //--------------------------------------------------------------------------------
    void  move_down(T_coord  n)
    {        
        move(T_point(0, -n));     
    }
    //--------------------------------------------------------------------------------
    T_point  get_point_A() const
    {
        return  A;
    }
    //--------------------------------------------------------------------------------
    T_point  get_point_B() const
    {
        return  B;
    }
    //--------------------------------------------------------------------------------
    void  print_point_A() const
    {
        std::cout << A;
    }
    //--------------------------------------------------------------------------------
    void  print_point_B() const
    {
        std::cout << B;
    }
    //--------------------------------------------------------------------------------
private:
    //--------------------------------------------------------------------------------
    void  move(T_point  delta)
    {
        A += delta;
        B += delta;    
    }
};
//////////////////////////////////////////////////////////////////////////////////////
class  T_new_line : public T_line
{
public:
    T_new_line
        (
            T_coord  Xa = 0,
            T_coord  Ya = 0,
            T_coord  Xb = 0,
            T_coord  Yb = 0
        ) 
        : T_line(Xa, Ya, Xb, Yb)          
    {}
    //--------------------------------------------------------------------------------
    T_point  get_center() const
    {
        return  (A + B) / 2.0;
    }
    //--------------------------------------------------------------------------------
    void  rotate(T_coord  degrees)
    {
        T_point  C       = get_center();
        T_coord  theta   = -degrees / 180 * M_PI;
        T_point  factor  = std::polar(1.0, theta);
 
        A                = (A - C) * factor + C;
        B                = (B - C) * factor + C;
    }
};
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    T_new_line z(1, 1, 2, 2);   
    std::cout << "z.A = ";
    z.print_point_A();
    std::cout << std::endl
              << "z.B = ";
    z.print_point_B();
    std::cout << std::endl
              << "z.len = "
              << z.get_len()
              << std::endl;
 
    std::cout << "z.move_left(1)"
              << std::endl;
    z.move_left(1);
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl
              << "z.B = "
              << z.get_point_B()    
              << std::endl;
 
    std::cout << "z.move_right(1)"
              << std::endl;
    z.move_right(1);
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl
              << "z.B = "
              << z.get_point_B()    
              << std::endl;
 
    std::cout << "z.move_up(1)"
              << std::endl;
    z.move_up(1);
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl
              << "z.B = "
              << z.get_point_B()    
              << std::endl;
 
    std::cout << "z.move_down(1)"
              << std::endl;
    z.move_down(1);
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl
              << "z.B = "
              << z.get_point_B()    
              << std::endl;
 
    std::cout << "z.set_point_A(-1, 0)"
              << std::endl;
    z.set_point_A(-1, 0);
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl;
 
    std::cout << "z.set_point_B(1, 0);"
              << std::endl;
    z.set_point_B(1, 0);
    std::cout << "z.B = "
              << z.get_point_B()    
              << std::endl;
 
    std::cout << "z.get_center() = "
              << z.get_center()
              << std::endl;
 
    std::cout << "z.rotate(90)";
    z.rotate(90);
    std::cout << std::endl;
 
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl;
 
    std::cout << "z.B = "
              << z.get_point_B()    
              << std::endl;
 
    std::cout << "z.rotate(45)";
    z.rotate(45);
    std::cout << std::endl;
 
    std::cout << "z.A = "
              << z.get_point_A()    
              << std::endl;
 
    std::cout << "z.B = "
              << z.get_point_B()    
              << std::endl;
}
Yandex
Объявления
14.01.2011, 13:58     Создиние класса
Ответ Создать тему
Опции темы

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