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

Шаблон класса,ошибка TEMPLATE - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами. Вывести победителя с ФИО с максимальным баллом... (исправить) http://www.cyberforum.ru/cpp-beginners/thread752082.html
Помогите пож исправить код, он должен выводить победителя с ФИО с максимальным баллом,потом у кого 2 место и 3. Вот код: #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <iostream.h> #define DL_NUM 3 /* nomer uchastnica */ #define DL_FIO 25 /* dlina polya familii v fayle */
C++ Обработка числовой последовательности Помогите пожалуйста тему понять не могу, даже не знаю с чего начать Дана последовательность из n членов, Общий член a(k)= 2x - ((-1)^k * p^(2k-2)/(k+1)!) Длина n = 7; Цель: найти среднее арифметическое всех членов, Параметры: вычисляемые: x=max(a,b,c,d), p=p0+(i-1)*h, i=1,...,m исходные: a=-2, b=1.5, c=0.1, d=3.1, p0=2, h=0.6, m=5 через рекуррентную формулу, я не очень это... http://www.cyberforum.ru/cpp-beginners/thread752079.html
Вшить 1 фаил в другой C++
есть античит на c++ и есть фаил запуска игры. надо "Вшить" запуск игры в в античит или наоборот. те я хочу чтобы античит запускал из себя фаил игры. думаю сделать это с помощью ресурсов, но незнаю как. есть идеи?
C++ Посоветуйте пособие по использованию конструкции try/catch/throw
Не могли бы вы посоветовать мне книжку/статью/пособие, где доходчиво бы объяснялось о том, как использовать try/catch/throw? В частности, меня интересует работа с собственными исключениями, созданными на основе имеющихся.. Обычно, если в книжке и встречается работа с исключениями, то там пишут максимум об их использовании и возможности получить информацию об ошибке :\
C++ Волк Коза и Капуста: Просмотреть все возможные варианты перевозок и выбрать наикратчайший вариант http://www.cyberforum.ru/cpp-beginners/thread752033.html
Доброе время суток, форумчане. Сразу к делу. предмет называется "Искусственный Интеллект". Нужно решить эту задачу про волка, козу и капусту на с++. Что бы программа просмотрела все возможные варианты перевозок и выбрала наикратчайший вариант. Как это сделать ума не приложу...с решением логической задачи через программирование впервые сталкиваюсь.
C++ Описать структуру с именем PRICE Помогите! Даны задачи нужно написать программу 1.) Описать структуру с именем PRICE, содержащую следующие поля: · название товара; · название магазина, в котором продается товар; · стоимость товара в рублях. 2.) Написать программу, выполняющую следующие действия: · ввод с клавиатуры данных в массив, состоящий из восьми элементов типаPRICE, записи должны быть размещены в алфавитном порядке... подробнее

Показать сообщение отдельно
correcеt
-1 / 3 / 1
Регистрация: 20.04.2011
Сообщений: 412
03.01.2013, 22:29  [ТС]     Шаблон класса,ошибка TEMPLATE
т.е мне сейчас надо описать каждую функцию,а потом шаблоны...или как?
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
1
2
3
4
5
6
7
8
9
10
11
12
13
openwr();      // Открыть файл для записи
  getslots();    // Функция определяющая - какие ячейки заняты
  getslot();     // Функция ввода новой ячейки
  adbilet();     // Добавление билета
  delbilet();    // Удаление данных билета из списка
  showbilet();   // Вывод билета на экран
  chbilet();     // Изменение данных билета
  chcell();      // Изменение номера ячейки
  sortcells();   // Порядок возрастания номеров ячеек
  loc_punkt();   // Поиск билета по пункту назначения
  loc_fio();     // Поиск по ФИО
  loc_datvl();   // Поиск по Дате вылета
  pbilets();     // Печать билетов
Добавлено через 1 минуту
а этот код правильный? по работе..только добавить шаблоны


Цитата Сообщение от correcеt Посмотреть сообщение
а если вот этот код переделать через шаблон...или он тоже бред?
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
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
#   include <string.h>
#   include <iostream.h>
#   include <windows.h>
class Avia
{
public:
char punkt[15], fio[50]; int namber, data[3]; Avia *Next; Avia();
Avia(char* al, char* bl, int, int*);
};
class List {
public:
Avia* First;
ListO;
void Add(Avia *pNext); //добавление в конец списка Avia* Poisk();
void ShowAll(); //показ всего списка
Avia* FindAvia(int nomer, int *datal); //поиск в списке Avia* GetPrev(Avia *p); int GetCount();
Avia * GetAt(int n); // получает элемент по его номеру bool RemoveAvia(int nomer, int *datal); //удаление элемента
};
Avia::Avia()
{
memset(punkt,0,sizeof(punkt)); 
memset(fio,0,sizeof(fio));
Next=NULL; //обнуляем указатель последнего элемента
Avia::Avia(char* al, char* bl, int namberl, int *datal)
{
strcpy(punkt, al); strcpy(fio, b 1); namber=namberl;
for (int i=0; i<3; i++) data[i]=datal[i];
Next=NULL; //обнуляем указатель последнего элемента
}
List::List()
{
First=NULL; //обнуляем указатель первого элемента
}
void List::Add(Avia *pNext)
{
// Если список не пуст. if(First!=NULL)
Poisk()->Next = pNext;
else
// Если список пуст, First = pNext;
}
Avia* List: :Poisk()
{
Avia *X = First;
// Если список пуст if(X == NULL) return NULL;
// Пока есть следующий элемент списка. whi!e(X->Next!=NULL) X = X->Next;
return X;
}
void List::ShowAll()
{
// Указатель на очередные данные в списке. Avia * pCurr = First; // Если список пуст
if(pCurr == NULL)
{
соиК<"Список пустЛп";
}
// Пока есть следующий элемент списка, do
// Выводим на консоль очередной элемент. cout«pCurr->fio«"\t"«pCurr->punkt«"\t"«pCurr->namber«"\t"«pCurr- >data[0]«"."«pCurr->data[l]«"."«pCurr->data[2]«"\n"; 
while((pCurr = pCurr->Next)!=NULL);
Avia* List::FindAvia(int nomer, int *datal)
{
int flag=0;
// Указатель на очередные данные в списке. Avia * pCurr = First;
// Если список пуст, то возвращаем NULL.
if(pCurr == NULL) {
соЩ«"Списка нет";
}
// Обходим все элементы списка. do{
// Если нашли искомый элемент, то его и возвращаем.
if(pCurr->namber==nomer && pCurr->data[0]==datal [0] && pCurr->data[l]==datal[l] &&
pCurr->data[2]==data 1 [2]) {
// Выводим на консоль
coiit<<pCurr->fio<<''\t',<<pCurr->punkt<<''\t''<<pCurr->namber<<''\t''<<pCurr- >data[0]«". "<<pCurr->data[ 1 ]«". "<<pCurr->data[2] <<"\n"; flag=l; return pCurr;
}
}while((pCurr = pCurr->Next)!=NULL);
if (flag==0) соЩ«"Такой заявки HeT"«endl; return pCurr;
}
Avia* List::GetPrev(Avia *p)
{
// Если предыдущего элемента списка нет (т. е. наш элемент совпадает с первым), то возвращем
NULL.
if(p == First)
return NULL; // Если предыдущий элемент есть. Avia * pCurr = First; do{
if(pCurr->Next==p) { // возвращаем очередной элемент, return pCurr;
}
// Переводим pCurr на следующий элемент в списке. }while((pCurr = pCurr->Next)!=NULL); return NULL;
}
int List::GetCount()
{
// Указатель на очередные данные в списке. Avia * pCurr = First; // Если список пуст
if(pCurr == NULL)
{
return 0;
int count = 1; //Число элементов в списке. // Пока есть следующий элемент списка.
while(pCurr->Next!=NULL)
{
// Переходим на следуюющего. pCurr = pCurr->Next; // Увеличиваем счетчик. count++;
}
return count;
Avia * List::GetAt(int n)
{
// Указатель на очередные данные в списке. Avia * pCurr = First;
// Если список пуст или элемента с таким номером нет,то возвращаем NULL.
if(pCurr == NULL || n>GetCount()-l)
{
return NULL;
}
// Добираемся до элемента с нужным номером.
for(int i=0; i<GetCount(); i++) {
if(i==n) {
return pCurr;
}
pCurr = pCurr->Next;
}
return NULL;
bool List::RemoveAvia(int nomer, int *datal)
{
// Если список пуст if(First == NULL)
{ соШ«"Списка нет"; return false;}
// Получаем элемент для удаления. Avia* pData = FindAvia(nomer, datal); // Если такого элемента в списке нет if(pData == NULL)
{ cout«"TaKoro элемента нет"; return false;
}
// Если удаляемый элемент - первый в списке.
if(pData == First)
{
First = pData->Next; delete pData; return true;
}
// Если удаляемый элемент - не первый в списке. GetPrev(pData)->Next = pData->Next; 
delete pData;
соиК<"Элемент удален"; return true;
main() {
List list; Avia *pData; char p[15], fio[15];
int n, namber, data[3]; bool flag=false; SetConsoleOutputCP( 1251);
while (1)
{
cout«"l Добавить 3anBKy"«endl; cout«"2 Показать все 3aHBKn"«endl; cout«"3 Поиск 3aHBKH"«endl; cout«"4 Удалить 3aflBKy"«endl; cout«"5 Bbixofl"«endl; cout«"n="; cin»n;
switch (n) {
case 1:
{
соиК<"Введите пункт назначения"«е1^1; cin»p;
cout«" В ведите ФИО nacca>icnpa"«endl; cin»fio;
cout«" В ведите номер pefica"«endl; cin»namber;
соиК<"Введите дату вылета"«епё1; соиК<"Число: "; cin»data[0]; соиК<"Месяц: "; cin»data[l]; cout«Tcw "; cin»data[2]; cout«endl;
pData = new Avia(p, fio, namber, data);
list.Add(pData);
break;
}
case 2:
{
list.ShowAll(); break;
}
case 3:
{
сои1«"Введите номер peiica"«endl; cin»namber;
сои1«"Введите дату BbuieTa"«endl; соиК<"Число: "; cin»data[0]; cout«"MecHu: "; cin»data[l]; соиК<"Год: "; cin»data[2];
cout«"\n";
list.FindAvia(namber, data); break;
case 4:
{
сои1«"Введите номер pefica"«endl; cin»namber;
сои1«"Введите дату BbmeTa"«endl; cout«"4Hono: "; cin»data[0]; cout«"MecHu: "; cin»data[l]; соиК<"Год: "; cin»data[2]; cout«"\n";
list.RemoveAvia(namber, data); break;
case 5:
return 0;
default:
cout«"TaKoro пункта меню нет. Повторите ввод"«епё1;
} }
return 0; 
№16 (подраздел 3.2)
Описать класс «множество», позволяющий выполнять основные операции над множествами - добавление и удаление элемента, определение членства, пересечение, объединение, разность и симметричная разность множеств.
Перегрузить операции: присваивания множеств (=), равенства и неравенства множеств.
Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Решение
#include <iostream.h> #include <windows.h> #include <math.h> #include <conio.h>
class Set {
public:
Set();
int count;  //количество элементов в множестве
int element[ 100]; //множество элементов
void set(); //задание элемента множества
void get(); //вывод множества
void addElement(); //добавить элемент в множество
void delElement(); //удалить элемент из множества
Set operator+(Set); //объединение
Set operator-(Set); //разность
Set operator*(Set); //пересечение
Set& operator=(Set);//nepenpHCBaHBaHne
bool operator==(Set);//cpaBHeHne на равенство
bool operator<(Set);//cpaBHeiiHe на неравенство
};
Set::Set() {
count=0;
\
i
void Set::set() {
соиК<"Введите количество элементов множества: "; cin»count;
for(int j=0; j<count;j++) {
cout«" В ведите элемент множества: "; cin»element[j];
}
void Set::get()
{
for (int i=0; i<count; i++) cout«element[i]«" "; cout«endl; 
void Set::addElement()
{
соиК<"Введите элемент множества: ";
cin»element[count];
count++;
void Set::delElement() {
int n;
соиК<"Введите номер элемента множества для удаления: "; cin»n;
for(int i=n; i<count-l; i++) element[i]=element[i+l]; count—;
Set Set::operator+(Set el)
{
Set tmp;
int ij, flag, n;
tmp.count=0;
for(i=0; i<count; i++) tmp.element[i]=element[i]; n=count;
for(i=0; i<el.count;i++)
{
flag = 0;
for(j=0; j<el.count;j++)
if (el.element[i]==tmp.element[j]) flag=l; if (flag==0) {tmp.element[n]=el.element[i]; n++;}
\
tmp.count=n; return tmp;
Set Set::operator*(Set el) {
Set tmp; int i,j, flag, n; tmp.count=0; n=0;
for(i=0; i<count;i++) {
flag = 0;
for(j=0; j<el.count;j++)
if (element[i]==el.element[j]) flag=l; if(flag==l) {tmp.element[n]=element[i]; n++;}
}
tmp.count=n; return tmp;
Set Set::operator-(Set el)
Set tmp;
int ij, flag, n;
n=0;
for(i=0; i<count;i++) {
flag = 0;
for(j=0; j<el.count;j++)
if (element[i]==el.element[j]) flag=l; if(flag==0) {tmp.element[n]=element[i]; n++;}
}
tmp.count=n;
return tmp;
}
Set& Set::operator=(Set el)
{
count=el. count;
for(int i=0; i<count;i++) element[i]=el.element[i]; return *this;
bool Set::operator==(Set el)
{
int flag;
if (el.count!=count) return false;
for(int i=0; i<count;i++)
{
flag = 0;
for(int j=0; j<el.count;j++)
if (element[i]==el.element!]]) flag=l; if (flag==0) return false;
}
return true;
bool Set::operator<(Set el)
{
if (count<=el.count) return true;
else
return false;
int main()
{
int menu; Set setl, set2;
SetConsoleOutputCP( 1251);
while (1)
{
cout«"\n\nMEHK)\n"; 
cout«"l. Сформировать множество\п"; cout«"2. Добавить элемент\п"; cout«"3. Удалить элемент\п"; cout«"4. Пересечение множеств\п"; cout«"5. Объединение множеств\п"; cout«"6. Разность множеств\п"; cout«"7. Переприсваивание множеств\п"; cout«"8. Сравнение на равенство множеств\п"; cout«"9. Сравнение на неравенство множеств\п"; cout«"10. Выход\п\п\п";
соШ«"Выберите пункт меню: ";
cin»menu;
if (menu=10) exit(O);
switch(menu)
{
case 1: {setl.set(); break;}
case 2: {set 1 .addElementQ; соШ«"Результат\п"; setl .get(); break;} case 3: {setl,delElement(); соиК<"Результат\п"; setl .get(); break;} case 4: {setl.set(); set2.set(); setl = setl*set2;
cout«"Pe3ynbTaT\n";setl.get(); break; } case 5: {setl ,set(); set2.set(); setl = setl+set2;
соШ«"Результат\п";5еИ^е1(); break; } case 6: {setl .set(); set2.set(); setl = setl-set2;
cout«"Pe3ynbTaT\n";setl.get(); break; } case 7: {setl .setQ; set2 = setl;
соиК<"Результат\п";5е12^е1(); break; } case 8: {setl.set(); set2.set();
if (setl==set2) сои1«"Множества равны";
else соШ«"Множества не равны"; break; } case 9: {setl .set(); set2.set();
if (setl<set2) соиК<"Первое множество меньше второго";
else соШ«"Первое множество больше второго"; break; } default:{cout«"TaKoro пункта меню нет. Повторите ввод "; break;}
} }
return 0; 
№13 (подраздел 3.3)
Создать абстрактный базовый класс Integer (целое) с виртуальными ариф метическими операциями и функцией вывода на экран. Определить производные классы Decimal (десятичное) и Binary (двоичное), реализующие собственные арифметические операции и функцию вывода на экран. Число представляется массивом, каждый элемент которого - цифра.
Решение
#include <iostream.h> #include <windows.h> #include <string.h>
class Integer {
public:
int figure[32], count;
virtual void sum(){}; //вирт. ф. суммы
virtual void diff(){}; //вирт. ф. разности
virtual void pro(){}; //вирт. ф. произведения
virtual void input(){}; //вывод
virtual void output(){}; //ввод
};
//                  
class Decimal : Integer
{
public:
void input()
{
char decimal[32]; int j;
for(int i=0; i<32; i++) figure[i]=0; сои1«"Введите десятичное число: "; cin»decimal; count=strlen(decimal); j=count-l;
for(i=31; i>31-count; i—)
{
figure[i]=decimal[j]-48;
void output()
{
for(int j=0; (j<32)&&(figure[j]==0); j++); for(int i=j; i<32; i++) cout«figure[i]; cout«endl;
void sum()
{
Decimal decimal2; decimal2.input(); for (int i=31; i>0; i--) 
{
figure[i]+=decimal2.figure[i]; figurefi-1 ]+=figure[i]/l 0; figure[i] %=10;
}
со1И«"Результат"; output();
void diff()
!
Decimal decimal2; decimal2.input();
for (int i=31; i>0; i-) {
if (figure[i]>=decimal2.figure[i]) figure[i]-=decimal2.figure[i];
else
{
figure[i]=figure[i]-decimal2.figure[i]+10;
figure[i-l]-=l;
}
}
cout«" Результат";
output(); }
void pro()
{
Decimal d2; d2.input();
int i, j, S, P; //S - Место для формирования двух цифр С-Разряд переноса Decimal W; //результат
if (count>d2.count) W.count=count; else W.count=d2.count; for(i=0; i<32; i++) W.figure[i]=0;
for (i=0; i<32; i++) // По цифрам числа d2
{
P=0; // Сначала переноса нет
for (j = 0; j<32; j++) //По цифрам числа d
{
S = figure[i]* d2.figure[j]+W.figure[i+j]+P;
W.figure[i+j] = S%10; // Временное значение очередной цифры Р = S/10; //Формирование разряда переноса
}
W.figure[j+i] = Р; //Старшая цифра частичного произведения
}
W.output();
//  -—  
class Binary : Integer
{
public:
void inputQ
{ 
char binary[32]; int j;
for(int i=0; i<32; i++) figure[i]=0; сои1«"Введите двоичное число: "; cin»binary; count=strlen(binary); j=count-l;
for(i=31; i>31 -count; i--)
{
if(binary[j]-48==0 || binary[j]-48==l)
{
figure[i]=binary[j]-48; j--;
}
else {
figure[i]=l; j-S
}
}
void output()
{
for(int j=0; (j<32)&&(figure[j]==0); j++); for(int i=j; i<32; i++) cout«figure[i]; cout«endl;
void sum()
{
Binary b2; b2.input();
for (int i=31; i>0; i-) {
figure[i]+=b2.figure[i]; figure[i-1 ]+=figure[i]/2; figurefi] %=2;
}
соиК<"Результат";
output(); }
void diff() {
Binary b2; b2.input();
for (int i=31; i>0; i~) {
if (figure[i]>=b2.figure[i]) figure[i]-=b2.figure[i];
else {
figure[i]=figure[i]-b2.figure[i]+2;
figure[i-l]-=l;
}
}
cout«" Резул ьтат"; 
output();
}
void pro()
{
Decimal d2; d2.input();
int i, j, S, P; //S - Место для формирования двух цифр С-Разряд переноса Decimal W; //результат
if (count>d2.count) W.count=count; else W.count=d2.count; for(i=0; i<32; i++) W.figure[i]=0;
for (i=0; i<32; i++) // По цифрам числа d2
{
P=0; // Сначала переноса нет
for (j = 0; j<32; j++) //По цифрам числа d {
S = figure[i]* d2.figure[j]+W.figure[i+j]+P;
W.figure[i+j] = S%10; // Временное значение очередной цифры
Р = S/10; //Формирование разряда переноса
}
W.figure[j+i] = Р; //Старшая цифра частичного произведения
}
W.output();
}
//— -—  —-      
main()
f
int menu; Decimal dl; Binary bl;
SetConsoleOutputCP( 1251);
while (1)
{
соиК<"\пДемонстрация работы с классом десятичных чисел\п"; cout«"l. сложение\п"; cout«"2. вычитание\п"; cout«"3. умножение\п";
сои1«"\пДемонстрация работы с классом двоичных чисел\п"; cout«"4. сложение\п"; cout«"5. вычитание\п"; cout«"6. умножение\п";
cout«"\n7. выход\п";
соШ«"Сделайте выбор: ";
cin»menu;
if (menu==7) exit(0);
switch(menu) {
case 1: {dl.inputQ; dl.sumQ; break;}
case 2: {dl.inputQ; dl.diff(); break;}
case3: {dl.input(); dl.pro(); break:}
case4: {bl.input(); bl.sumQ; break;}
case 5: {bl.input(); bl.diffQ; break;}
case 6: {bl.input(); bl.pro(); break;}
default:{cout«"TaKoro пункта меню нет\п"; break;}
} }
return 0; return 0; 
J^II ^подраздел j.-tj
Создать шаблон класса для работы с комплексными числами, обеспечивающий выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, использующую этот шаблон, задавая вещественную и мнимую части как числами типа double, так и целыми числами.
Решение
#include <iostream.h> #include <windows.h> #include <math.h>
template <elass Type> class Complex
{
public:
Type Real, Image;
void add(Complex); //функция сложения void sub(Complex); //функция вычитания void mul(Complex); //функция умножения void del(Complex); //функция деления void Output();
void Input();
};
//определение функций для класса Complex
template <class Type> void Complex<Type>::add(Complex C2)
{
Real = Real + C2.Real; Image = Image + C2.Image ; Output();
}
template <class Type> void Complex<Type>:: sub(Complex C2) {
Real=Real -C2.Real; Image=Image -C2.Image ; Output();
template <class Type> void Complex<Type>:: mul(Complex C2)
{
Real=Real *C2.Real -Image *C2.Image; Image=Real*C2.Image+Image *C2.Real; OutputQ;
template <class Type> void Complex<Type>::del(Complex C2) {
Real=(Real *C2.Real+Image *C2.Image)/(pow(C2.Real,2)+pow(C2.Image,2)); Image=(-l)*(Real *C2.Image +Image *C2.Real)/(pow(C2.Real,2)+pow(C2.Image,2)); OutputQ;
template <class Type> void Complex<Type>::Input()
{
соШ«"Введите действительную часть числа: "; cin»Real;
соШ«"Введите мнимую часть числа: "; cin»Image;
}
template <class Туре> void Complex<Type>::Output() {
cout«"Результат: "«Real«"+x*"«Image«endl; }
//основная программа
main() {
int menu;
Complex<int> cintl, cint2; Complex<float> cfloatl, cfloat2; SetConsoleOutputCP( 1251);
while (1)
{
соиК<"\пДемонстрация работы с целыми числами\п";
cout«"l. сложение\п";
cout«"2. вычитание\п";
cout«"3. умножение\п";
cout«"4. деление\п";
соиК<"\пДемонстрация работы с вещественными числами\п";
cout«"5. сложение\п";
cout«"6. вычитание\п";
cout«"7. умножение\п";
cout«"8. деление\п";
cout«"\n9. выход\п";
соиК<"Сделайте выбор: ";
cin»menu;
if (menu==9) exit(O);
switch(menu) {
case 1: {cintl.Input(); cint2.Input(); cintl.add(cint2); break;} case 2: {cintl.Input(); cint2.Input(); cintl.sub(cint2); break;} case 3: {cintl.InputQ; cint2.Input(); cintl,mul(cint2); break;} case 4: {cintl.Input(); cint2.Input(); cintl.del(cint2); break; } case 5: {cfloatl .Input(); cfloat2.Input(); cfloatl ,add(cfloat2); break;} case 6: {cfloatl .Input(); cfloat2.Input(); cfloatl .sub(cfloat2); break;} case 7: {cfloatl .Input(); cfloat2.Input(); cfloatl ,mul(cfloat2); break;} case 8: {cfloatl .Input(); cfloat2.Input(); cfloatl ,del(cfloat2); break;} default: {соЩ«"Такого пункта меню нет\п"; break;}
} }
return 0; return 0; x
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru