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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
twity
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 3
#1

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

14.01.2011, 10:58. Просмотров 310. Ответов 2
Метки нет (Все метки)

Ребят помогите плиз сделать задачу, совсем не знаю как сделать.
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++
C++ Вызов функций класса Dictionary функциями дружественного класса
C++ Статическое поле класса, имеющее тип того же класса
Получение доступа к переменным класса из другого класса C++
C++ Разное значение переменной класса, в разных экземплярах класса
Утилизация класса (размещение класса в другом файле) C++
C++ Не удается обратиться к свойству класса из метода класса
C++ Как полю класса А обратится к приватной функции класса А?
Нужен пример неизменяемого класса и класса от которого нельзя наследоваться C++
Составьте программу, выводящую на экран сообщения об отличниках класса, о средней успеваемости учащихся класса C++
Обработка метода класса в зависимости от типа данного класса C++
Объявление объекта класса fstream в качестве статической компоненты другого класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
755 / 746 / 42
Регистрация: 06.07.2009
Сообщений: 2,967
Завершенные тесты: 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
Эксперт С++
3040 / 1685 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
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     Создиние класса
Ответ Создать тему
Опции темы

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