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

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

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

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

14.01.2011, 10:58. Просмотров 313. Ответов 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++
Есть два класса A и B, причем класс B является потомком A. Как реализовать следующее: obj_A = obj_B и obj_B = obj_A? Добавлено через 9...

Разное значение переменной класса, в разных экземплярах класса - C++
Вот примерный код: class Test { private: static int countC; static int countD; void initWeight(){ double a; ...

Индексация массива класса, через объект этого класса - C++
class A{ char c;//? - размер массива public: A(int C){c;} }; int main(){ A a(5);//вносим размер массива getch(); ...

Задачка для новичков #2: вывести в методе класса-родителя значение данных-членов из дочернего класса - C++
Вдохновленный соседней темой тоже решил задать свой вопрос таким же начинающим программистам как и я :) Все кто хочет попробовать дать...

Обращение в методах класса к полям класса - C++
Добрый вечер! Подскажите пожалуйста правильное обращение в методах класса к полям класса. class X {char name ; double zar; ...

Программа содержит два класса. Оба класса содержат по одному целому полю и по одному указателю на символьный тип. - C++
Помогите решить с объяснениями. Программа содержит два класса. Оба класса содержат по одному целому полю и по одному указателю на...

Получить константу из экземпляра класса, который является членом другого класса - PHP
class test { const STATUS = 1; } $a = new test(); echo $a::STATUS . PHP_EOL; // работает class bar {

Как правильно вызвать метод класса внутри самого класса? - PHP ООП
Здравствуйте. Собственно тема прописана в заголовке: как правильно вызвать метод класса внутри самого класса? Насколько я знаю, для...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,969
Завершенные тесты: 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
Эксперт С++
3048 / 1693 / 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;
}
Ответ Создать тему
Опции темы

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