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

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

Восстановить пароль Регистрация
 
henecs
 Аватар для henecs
16 / 16 / 0
Регистрация: 19.05.2013
Сообщений: 135
23.05.2013, 23:46     Написать класс комплексное число; написать перегруженые функции для сравнения чисел #1
задание такое написать класс комплексное число и и надо написать перегруженые функции для стравнения чисел, вот что вышло
Кликните здесь для просмотра всего текста
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++ Описать класс «Комплексное число».
нужно написать класс Person с перегруженными операторами чтения, сравнения и записи C++
перегруженые функции для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел C++
Класс «Комплексное число» C++
C++ Написать функцию для сравнения файлов
Написать функцию сравнения двух структур с объединениями, содержащих комплексное число C++
C++ Написать перегруженные функции для массива целых чисел и строки
C++ Класс комплексное число

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

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

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