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

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

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

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

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

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

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

Добавлено через 11 часов 27 минут
знает кто?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 10:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создиние класса (C++):

Создать для класса виртуальный метод, возвращающий уникальный идентификатор класса - C++
В курсаче по ООП сказано создать для класса виртуальный метод,возвращающий уникальный идентификатор класса. Вопрос в том, что это такое?

Объявление объекта класса fstream в качестве статической компоненты другого класса - C++
Доброго времени суток. Есть задание, в котором говорится "...Перепишите программы из упражнений 4 и 6 таким образом, чтобы использовать...

Шаблон класса, параметром которого должны являться наследники определённого класса - C++
Сразу извиняюсь за нубский вопрос. Суть в том, что я хочу сделать шаблон класса, параметром которого должны являтся наследники...

внук родительского класса не может работать с полями дедовского класса; почему? - C++
Не всё так просто на самом деле. Непонятно, какую роль во всём этом играют шаблоны. Но к делу. Вот код: class base { public: base...

Проверка создания объекта класса BBB из класса AAA и работа с ним - C++
#define @param2; // объявили для выяснения случая: нужен новый или использовать существующий. Class AAA { private: void...

Как получить private переменную класса, функцей членом другого класса - C++
Игра змейка: Есть класс поле в котором содержится размеры поля: class field { private: int FIELD_START; int...

2
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);
}
0
Mr.X
Эксперт С++
3049 / 1694 / 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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2011, 13:58
Привет! Вот еще темы с ответами:

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

Как обраиться к функции класса через другую функцию класса (друга)? - C++
Пример кода: #include &lt;iostream&gt; using namespace std; class Sasha; class Petya { public: friend class Sasha; ...

Как получить доступ к методам класса, который содержится в векторе класса - C++
Пишу дерево с любым количеством наследников. В классе Thread содержится вектор классов Thread. При попытке просмотра первого элемента в...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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