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

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

Войти
Регистрация
Восстановить пароль
 
mashkama
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 61
#1

Перегрузка операций для класса "Комплексное число в тригонометрической форме" - C++

10.05.2014, 12:28. Просмотров 387. Ответов 0
Метки нет (Все метки)

помогите пожалуйста доделать программу на тему перегрузка.Дано комплексное число в тригонометрической форме а=p*(cos pfi+ i* sin pfi).Членами класса являются модуль Р и аргумент pfi. Использовать методы конструктор,деструктор,метод вывода комплексного числа в тригонометрической и алгебраической формах. Операторы перегрузки:сложение,вычитание,деление,умножение комплексных чисел.......
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
# include <iostream>
# include <stdlib.h>
# include <conio.h>
 
using namespace std;
 struct complex{
    double a,b; int w;
};
class Complex{
    complex comp;
public:
    Complex(double x=0,double y=0){
        comp.a=x; 
        comp.b=y;
    }
    Complex operator +(const Complex &c);
    Complex operator *(const Complex &c);
    Complex operator -(const Complex &c);
    Complex operator /(const Complex &c);
    bool operator ==(const Complex &c);
    const Complex& operator =(const Complex &c){
        comp.a=c.comp.a;
        comp.b=c.comp.b;
        return *this;
    }
    Complex conj();
    Complex Read();
    void Display();
};
Complex Complex::operator +(const Complex &c){
    Complex d;
    d.comp.a=comp.a+c.comp.a;
    d.comp.b=comp.b+c.comp.b;
    return d;
}
Complex Complex::operator *(const Complex &c){
    Complex t;
    t.comp.a=comp.a*c.comp.a-comp.b*c.comp.b;
    t.comp.b=comp.a*c.comp.b+comp.b*c.comp.a;
    return t;
}
Complex Complex::operator /(const Complex &c){
    Complex t;
    t.comp.a=(comp.a*c.comp.a+comp.b*c.comp.b)/(comp.a*comp.a+comp.b*comp.b);
    t.comp.b=(comp.b*c.comp.a-comp.a*c.comp.b)/(comp.a*comp.a+comp.b*comp.b);
    return t;
}
Complex Complex::operator -(const Complex &c){
    Complex y;
    y.comp.a=comp.a-c.comp.a;
    y.comp.b=comp.b-c.comp.b;
    return y;
}
 
void Complex::Display(){
        if(comp.b>=0)
            cout<<comp.a<<"+"<<comp.b<<"i\n";
        else
            cout<<comp.a<<comp.b<<"i\n";
}
Complex Complex::Read(){
    double x,y; 
    int p;double pfi;
    cout<<"Dejstvitelnaja  chast: ";
    cin>>x;
    cout<<"Mnimaja  chast:        : ";
    cin>>y;
    
    
    
    cout<<"Modyl  P:        : ";
    cin>>p; 
    cout<<"argyment  pfi:        : ";
    cin>>pfi;
    
    
    Complex A=Complex(x,y);
    return A;
}
//-----------------------------------------------------------
void execute()
{   
    cout<<" - 1symma\n";
    cout<<" - 2raznost\n";
    cout<<" - 3ymnogenie\n";
    cout<<" - 4delenie\n";
}
int chois(){
    int chois_1;
    cout<<"     Операции комплексными числами\n";
    cout<<" 1 - symma\n";
    cout<<" 2 - raznost\n ";
    cout<<" 3 - ymnogenie\n";
    cout<<" 4 - delenie\n";
 
    cout<<" 0 - vihod\n\n";
    cout<<"\n viberete deistvie : \n";
    cin>>chois_1;
    while((chois_1<0)||chois_1>6){
        cout<<"     !!!ne korrektnie dannie!!!\n";
        cout<<" vvedite zanovo : ";
        cin>>chois_1;
    }
    return chois_1;
}
void choise(){
    switch (chois()){
    case 1: {  
        Complex a,b;
        cout<<"1e chislo:\n";
        a=a.Read();
        cout<<"2e chislo:\n";
        b=b.Read();
 
        Complex c=a+b;
        c.Display();
        break;
            }
    case 2:{  
        Complex a,b;
        cout<<"1e chislo:\n";
        a=a.Read();
        cout<<"2e chislo:\n";
        b=b.Read();
        Complex c=a-b;
        c.Display();
        break;
        }
    case 3 :{  
        Complex a,b;
        cout<<"1e chislo:\n";
        a=a.Read();
        cout<<"2e chislo:\n";
        b=b.Read();
        Complex c=a*b;
        c.Display();
        break;
            }
    case 4:{
        Complex a,b;
        cout<<"Первое число:\n";
        a=a.Read();
        cout<<"Второе число:\n";
        b=b.Read();
        Complex c=a/b;
        c.Display();
        break;
           }
 
    default :exit(0);
    }
    system("pause");
    system("cls");
    choise();
 
}
//-----------------------------------------------------------
int main (){
    setlocale(LC_ALL, "Russian" );
    system("pause");
    system("cls");
    choise();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2014, 12:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операций для класса "Комплексное число в тригонометрической форме" (C++):

Определение класса, описывающего комплексное число. Перегрузка для него бинарного оператора "*" - C++
1. Определить класс, описывающий комплексное число. Для класса перегрузить бинарный оператор *. Написать программу, в которой используется...

Определить перегруженный бинарный и унарный оператор* для класса "Комплексное число" - C++
Как можно реализовать перегруженный бинарный и унарный оператор* для класса &quot;Комплексное число&quot;?

Перегрузка операций методами класса "Круг" - C++
Класс – круг на плоскости: Переопределить методами класса операции:  Объект1=Объект2  Объект+=вещественное число ...

Перегрузка операций класса "Прямоугольник" - C++
Помогите! Я не представляю как сделать операции сравнения, а остальное вроде бы получилось. Необходимо выполнить перегрузку операций...

Разработка класса "Комплексное число" - C++
помогите решить задание,вот оно: Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели...

Перегрузка "opеrator =" и "{ }" для собственного класса - C++
Я пытаюсь создать класс Vector. Для задания элементов вектора хотелось бы использовать &quot;opеrator =&quot; и &quot; { } &quot;. Возможно ли...

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

Перегрузка функций "ввести в поток", "вывести с потока", "умножить вектор на число" - C++
Подскажите пожалуйста, как убрать ошибки с этой программы? (делала перегрузку &quot;ввести в поток&quot; и &quot;вывести с потока&quot;, а также &quot;умножить...

Перегрузка операторов для класса "множество целых чисел" - C++
Собственно, в этом и вопрос. Как перегрузить операторы &quot;+&quot; и &quot;-&quot; для объединение и разности двух множеств?

Класс "Дроби" и перегрузка операторов для этого класса - C++
Всем Доброго времени суток. Есть учебная задача по условиям которой необходимо реализовать класс &quot;Дроби&quot; и перегрузку операторов для...

Перегрузка операторов (==, <<, >>, +) для класса "Денежная сумма" - C++
Реализовать класс «Денежная сумма». Данные класса: размер суммы, код валюты, курс по отношению к доллару. Операции: сложение двух сумм,...


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

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

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