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

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

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

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

29.03.2009, 19:57. Просмотров 479. Ответов 0
Метки нет (Все метки)

Создайте класс – вектор (в пространстве Rn ). Класс должен содержать, по крайней
мере 2 члена ргivaте: количество координат и поинтер к типу long double. Количество координат должно быть статическим членом. Членами public будут методы: неявный конструктор, конструктор копирования, конструктор с параметрами для инициализации, деструктор и функции: модификации координат, доступа к координатам, вычисление длины вектора, вывод координат. Определите метод для вычисления среднего арифметического значения двух макимальных величин из 2-х векторов. Вычислите в функции main(), для 2 векторов, длину и среднее рифметического значения двух макимальных величин до и после модификации некоторой координаты. В main() используйте обычную переменную типа вектор и поинтер к типу вектор.

Добавлено через 1 минуту 21 секунду
ребята!желательно по примеру:

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
class punct
{ static int n; // кол-во координат
int *p; // поинтер к точке
int acces(); // доступ к координатам
 
public:
punct() // неявный конструктор
{ p = new int[n]; // создает объект и
} // не инициализирует его
punct( int n ); // конструктор с 1 параметром
// инициализирует координаты значением 0
punct( int n, int *p ); // конструктор с 2 параметрами
// инициализирует кол-во координат
// и их значения через параметры
punct( int *p ); // конструктор с 1 параметром
// инициализирует значения координат
// через параметры
punct( const punct& A ); // конструктор коприрования
~punct() // деструктор
{ if( p ) delete [] p;
p = 0;
cout << "\nУничтожен 1 объект!\n";
}
double dist_orig(); // расстояние до начала координат
double dist(punct *w); // расстояние между точками
int modifc(); // модифицируект одну координату
void cit(); // читает координаты точки
void show(); // выводит координаты точки
};
int punct::n=2; // инициализирует значением 0 кол-во координат,
// кот. Является статическим методом
punct::punct( int n ) // конструктор с 1 параметром
{ punct::n = n; // инициализирует координаты значением 0
p = new int[n];
for( int i=0; i < n; i++ )
p[i] = 0;
}
punct::punct( int n, int *p ) // конструктор с 2 параметрами
{ punct::n = n; // инициализирует кол-во координат
punct::p = new int[n]; // и их значения через параметры
for( int i = 0; i < n; i++ )
punct::p[i] = p[i];
}
punct::punct( int *p ) // конструктор с 1 параметром
{ punct::p = new int[n]; // инициализирует значения
for(int i = 0; i < n; i++ ) // координат через параметры
punct::p[i] = p[i];
}
punct::punct( const punct& A ) // конструктор коприрования
{ n = A.n;
p = new int[n];
for( int i = 0; i < n; i++ )
p[i] = A.p[i];
}
void punct::cit()
{ for( int i=1; i<=n; i++)
{ cout << "Введите координату " << i << ": ";
cin >> p[i-1]; } }
double punct::dist_orig()
{ double L=0;
for( int i = 0; i < n; i++ )
L+=(double)p[i]*p[i];
L = sqrt( L ); return L; }
double punct::dist(punct *w)
{ double L=0;
for( int i = 0; i < n; i++ )
L+=( w->p[i] - (double)p[i] ) * ( w->p[i] - (double)p[i] );
L = sqrt( L ); return L; }
int punct::modifc()
{ int m=acces(); if( m )
cin >> p[m-1];
return m; }
int punct::acces()
{ int m; cout << "Какую координту хотите менять? ";
cin >> m;
if( m<=0 || m>n )
{ cout << "Нет координаты с порядковым номером " << m << endl;
return 0; }
cout << "Координата " << m << " равна " << p[m-1] << endl;
cout << "Введите новое значение для этой координаты: ";
return m; }
void punct::show()
{ cout << endl << "Координаты точки:\n" << endl;
for( int i = 0; i < n; i++ )
{ cout << "x[" << i+1 << "]=" << p[i] << endl;} }
int main()
{ cout.precision(4);
int n, r; double m;
// Вызов неявного конструктора
// Строит неинициализированный объект A
// с 2 координатами
// Деструктор можно вызвать явно только, если перед его именем
// указано имя класса и оператор '::' !!!
punct A; A.show(); A.punct::~punct();
// Вызов неявного конструктора
// Строит неинициализированный объект
// с 2 координатами и поинтер
// B к этому объекту
punct *B = new punct; B->show(); B->punct::~punct();
// Вызов конструктора с 1 параметром int
// Строит объект C с 3 координатами,
// которые инициализированы значением 0
punct C(3); C.show(); C.punct::~punct();
// Вызов конструктора с 1 параметром int
// Строит объект с 4 координатаими,
// которые инициализируются значением 0 и
// поинтер D к этому объекту
punct *D = new punct(4);
D->show(); D->punct::~punct();
// Вызов конструктора с 2 параметрами: int и int *
// Строит объект E с 4 координатами,
// которые инициализируются значениями их массива x
int x[] = { 1,2,3,4 };
punct E(4,x); E.show(); E.punct::~punct();
_getch();
// Вызов конструктора с 2 параметрами: int и int *
// Строит объект с 5 координатами,
// которые инициализированы значениями из массива y
// и поинтер F к этому объекту
int y[] = { 11,12,13,14,15 };
punct *F = new punct(5,y); F->show(); F->punct::~punct();
// Вызов конструктора с 1 параметром int *
// Строит объект с 5 координатамиConstruieste un obiect cu 5 coordonate
// которые инициализированы значениями из массива z
int z[] = { 21,22,23,24,25,26 };
punct G(z); G.show(); G.punct::~punct();
// Вызов конструктора с 1 параметром int *
// Строит объект с 7 координатами,
// которые инициализированы значениями из массива t
// и поинтер H к этому объекту
int t[] = { 31,32,33,34,35,36,37 };
punct *H = new punct(7,t); H->show();
// Вызов конструктора копировнаия
// Строит объект I, который есть копия объекта,
// на который указывает поинтер H.
punct I = *H; I.show(); H->punct::~punct();
_getch();
// Вызов конструктора копирования
// Строит копию объекта I
// и поинтер J к этой копии
punct *J = &I; J->show(); J->punct::~punct();
cout << "Введите кол-во координат: "; cin >> n; cout << endl;
punct K(n); K.cit(); K.show(); m=K.dist_orig();
cout << "\nРасстояние OK: " << m << endl << endl;
punct *W=new punct(n); W->cit(); W->show(); m=W->dist_orig();
cout << "\nРасстояние OW: " << m << endl << endl;
cout << "Расстояние KW: " << K.dist(W) << endl;
n = K.modifc(); if( n )
{ cout << endl; K.show();
m=K.dist_orig(); cout << endl;
cout << "Расстояние OK: " << m << endl << endl; }
r = W->modifc(); if( r )
{ cout << endl; W->show();
m=W->dist_orig(); cout << endl;
cout << "Расстояние OW: " << m << endl << endl; }
if( n || r )
cout << "Расстояние KW: " << K.dist(W) << endl;
K.punct::~punct(); W->punct::~punct();
return 0; }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2009, 19:57     Создание класса
Посмотрите здесь:

Создание класса - C++
Помогите, пожалуйста, с написанием класса. Нужно создать класс Triangle с полями-сторонами. Определить методы изменения сторон, вычисления...

создание класса - C++
здраствуйте ! очень нужна ваша помoщь. Разработать класс, набор методов (конструктор, деструктор и указанные методы) для программной...

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

Создание класса - C++
Помогите пожадуйста!!! Создать класс для работы с временем, разработав следующие элементы класса: Поля: часы и минуты. ...

Создание класса - C++
Разработать класс, для представления заданной (см. варианты) структуры данных в виде динамической структуры данных. Т.е. для хранения...

Создание класса - C++
Написать класс, который содержит защищённые данные х, у беззнакового целого типа. Для считывания этих данных написать общедоступные...

С++ создание класса - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;algorithm&gt; #include&lt;string.h&gt; #include&lt;vector&gt; #include&lt;stdio.h&gt; ...

создание класса - C++
Создать класс для работы с матрицей. Данные класса: матрица A(3×3). Открытые функции класса: транспонирование матрицы. Перегрузить...

Создание класса в MV - C++
Я создал отдельный класс для меню моей программы. Как мне соединить класс и мой файл где написано уже главная часть программы, то есть в...

Создание класса/ - C++
Здраствуйте ув.! В рамках консольного приложения создать класс А с полями a и b и свойством с. Свойство - значение выражения над полями a...

создание класса - C++
//--------------------------------------------------------------------------- #include &lt;clx.h&gt; #pragma hdrstop #include...

Создание Класса - C++
Создать класс &quot;Массив чисел&quot; в котором храниться массив с числами( double ) длинной 5.Сделать классу такие методы:1)конструктор который...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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