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

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

Войти
Регистрация
Восстановить пароль
 
henecs
 Аватар для henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
#1

Написать класс комплексное число; написать перегруженые функции для сравнения чисел - C++

23.05.2013, 23:46. Просмотров 402. Ответов 0
Метки нет (Все метки)

задание такое написать класс комплексное число и и надо написать перегруженые функции для стравнения чисел, вот что вышло
Кликните здесь для просмотра всего текста
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
class Compl;
float max(Compl, Compl);
float max(Compl, int);
float max(Compl, float);
float max(int, int);
float max(int, float);
class Compl
   {
         float real;
         float image;
      public:
         friend class Int;
         Compl():real(0),image(0){};
         Compl(int r):real(r),image(0){};
         Compl(int r, int i):real(r),image(i){};
         Compl(float r):real(r),image(0){};
         Compl(float r,float i):real(r),image(i){};
         friend float max(Compl, Compl);
         friend float max(Compl, int);
         friend float max(Compl, float);
 
         bool operator > (Compl);
         bool operator == (Compl);
         bool operator != (Compl);
 
         bool operator > (int);
         bool operator == (int);
         bool operator > (float);
         bool operator == (float);
   };


Кликните здесь для просмотра всего текста
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
bool Compl::operator > (Compl c)
   {
    if (this->real>c.real || (this->real==c.real && this->image>c.image) ) return true;
    else return false;
   };
bool Compl::operator == (Compl c)
   {
   if (this->real==c.real && this->image==c.image) return true;
   else return false;
   };
bool Compl::operator != (Compl c)
   {
    if (this->real!=c.real || this->image!=c.image) return true;
    else return false;
   };
bool Compl::operator > (int i)
   {
      if (this->real>i || (this->real==i && this->image>i)) return true;
      else return false;
   };
bool Compl::operator == (int i)
   {
      if (this->real==i && this->image==i) return true;
      else return false;
   };
bool Compl::operator > (float f)
   {
      if (this->real>f || (this->real==f && this->image>f)) return true;
      else return false;
   };
bool Compl::operator == (float f)
   {
      if (this->real==f && this->image==f) return true;
      else return false;
   };
 
 
float max(Compl d, Compl d1)
   {
    if (d>d1) return d.real;
    else if (d==d1) return 0;
    else return d1.real;
   }
float max(Compl d, int d1)
   {
    if (d.real>d1) return d.real;
    else if (d==d1) return 0;
    else return d1;
   }
float max(Compl d, float d1)
   {
    if (d.real>d1) return d.real;
    else if (d==d1) return 0;
    else return d1;
   }
float max(int d, int d1)
   {
    if (d>d1) return d;
    else if (d==d1) return 0;
    else return d1;
   }
float max(int d, float d1)
   {
    if (d>d1) return d;
    else if (d==d1) return 0;
    else return d1;
   }


и вот после сравнения вывести результат на экран результат работы функции max()
вот никак не могу додуматься как лутше выводить комлексное число, думал переписать функцию max()(ща max() возвращает float) что бы она возвращала
string или char строку, но что то не получаеться перевести float или int в string или char.
может есть какие то идеи?

Добавлено через 10 минут
up !

Добавлено через 17 минут
up!

Добавлено через 1 час 15 минут
РЕШЕНИЕ НАЙДЕНО :
в с++ builder 6 можно написать так, для других компиляторов не знаю
класс:
Кликните здесь для просмотра всего текста
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
class Compl;
AnsiString max(Compl, Compl);
AnsiString max(Compl, int);
AnsiString max(Compl, float);
AnsiString max(int, int);
AnsiString max(int, float);
 
class Compl
   {
         float real;
         float image;
      public:
         friend class Int;
         Compl():real(0),image(0){};
         Compl(int r):real(r),image(0){};
         Compl(int r, int i):real(r),image(i){};
         Compl(float r):real(r),image(0){};
         Compl(float r,float i):real(r),image(i){};
         float get_r();
         friend AnsiString max(Compl,Compl);
         friend AnsiString max(Compl, int);
         friend AnsiString max(Compl, float);
         bool operator > (Compl);
         bool operator == (Compl);
         bool operator > (int);
         bool operator == (int);
         bool operator > (float);
         bool operator == (float);
   };

Кликните здесь для просмотра всего текста
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
bool Compl::operator > (Compl c)
   {
    if (this->real>c.real || (this->real==c.real && this->image>c.image) ) return true;
    else return false;
   };
bool Compl::operator == (Compl c)
   {
   if (this->real==c.real && this->image==c.image) return true;
   else return false;
   };
 
 
bool Compl::operator > (int i)
   {
      if (this->real>i || (this->real==i && this->image>i)) return true;
      else return false;
   };
bool Compl::operator == (int i)
   {
      if (this->real==i && this->image==i) return true;
      else return false;
   };
bool Compl::operator > (float f)
   {
      if (this->real>f || (this->real==f && this->image>f)) return true;
      else return false;
   };
bool Compl::operator == (float f)
   {
      if (this->real==f && this->image==f) return true;
      else return false;
   };
 
 
AnsiString max(Compl d, Compl d1)
   {
    if (d>d1 ) return FloatToStr(d.real)+"+i"+FloatToStr(d.image);
    else if (d==d1) return "==";
    else return FloatToStr(d1.real)+"+i"+FloatToStr(d1.image);
   }
AnsiString max(Compl d, int d1)
   {
    if (d.real>d1 || (d.real==d1 && d.image>d1)) return FloatToStr(d.real)+"+i"+FloatToStr(d.image);
    else if (d==d1) return "==";
    else return IntToStr(d1);
   }
AnsiString max(Compl d, float d1)
   {
    if (d.real>d1 || (d.real==d1 && d.image>d1)) return FloatToStr(d.real)+"+i"+FloatToStr(d.image);
    else if (d==d1) return "==";
    else return FloatToStr(d1);
   }
AnsiString max(int d, int d1)
   {
    if (d>d1) return FloatToStr(d);
    else if (d==d1) return "==";
    else return FloatToStr(d1);
   }
AnsiString max(int d, float d1)
   {
    if (d>d1) return FloatToStr(d) ;
    else if (d==d1) return "=";
    else return FloatToStr(d1);
   }

может пригодиться кому то
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2013, 23:46     Написать класс комплексное число; написать перегруженые функции для сравнения чисел
Посмотрите здесь:

Написать класс чисел, для которых определено сложение и вычитание по модулю восьми C++
C++ Описать класс «Комплексное число».
Класс «Комплексное число» C++
Написать функцию сравнения двух структур с объединениями, содержащих комплексное число C++
C++ Написать функцию для сравнения файлов
Написать функцию сравнения двух структур с объединениями, содержащих комплексное число C++
C++ Написать шаблон функции для сортировки массивов действительных и целых чисел
C++ Написать перегруженные функции для массива целых чисел и строки
C++ Класс комплексное число
C++ Написать алгоритм вычисляющий число а, для которого выполняется условие (рекурсивные функции)
Написать перегруженные функции для вычисления суммы двух чисел C++
C++ Написать перегруженные функции для вычисления суммы двух чисел

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

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

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