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

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

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

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

23.05.2013, 23:46. Просмотров 408. Ответов 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++
1.Написать функцию сравнения двух структур с объединениями, содержащих комплексное число 2.Написать программу добавления ...

Написать класс чисел, для которых определено сложение и вычитание по модулю восьми - C++
Задачки легкие, но буду очень признателен, если кто-нибудь поможет.:help: 2) Написать класс чисел, для которых определено сложение и...

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

Класс «Комплексное число» - C++
Разработать консольную программу на языке С++, в которой описывается и используется класс. Требования к оформлению класса те же, что и...

Класс комплексное число - C++
Вариант - Комплексное число Задание: 1. В соответствии с вариантом заданий 1 создать класс, в котором определяются закрытые свойства...

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

Написать алгоритм вычисляющий число а, для которого выполняется условие (рекурсивные функции) - C++
написать алгоритм вычисляющий число а, для которого выполняется неравенство 2^(a-1)<=n<=2^a , где n – натуральное число. Для подсчета числа...

Написать перегруженные функции для вычисления суммы двух чисел - C++
Используя перегрузки, написать функцию для выполнения вычисления суммы двух чисел, в зависимости от варианта, для следующих типов float,...

Описать класс «Комплексное число». - C++
помогите в консоле.... Описать класс «Комплексное число». Переопределить в нем операции ввода (istream::>>) и вывода (ostream::<<)....


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

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

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