Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

23.05.2013, 23:46. Просмотров 465. Ответов 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);
   }

может пригодиться кому то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2013, 23:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать класс комплексное число; написать перегруженые функции для сравнения чисел (C++):

Написать функцию сравнения двух структур с объединениями, содержащих комплексное число - C++
Всем привет. Вот такое задание: Написать функцию сравнения двух структур с объединениями, содержащих комплексное число. В с++ вообще не...

Написать функцию сравнения двух структур с объединениями, содержащих комплексное число - C++
1.Написать функцию сравнения двух структур с объединениями, содержащих комплексное число 2.Написать программу добавления ...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2013, 23:46
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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