-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1011.cpp
More file actions
executable file
·101 lines (86 loc) · 2.43 KB
/
Copy path1011.cpp
File metadata and controls
executable file
·101 lines (86 loc) · 2.43 KB
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
/**
* 复数类
**/
#include <iostream>
#include <iomanip>
using namespace std;
class MyComplex
{
private:
double x,y;
public:
friend istream& operator>>(istream &in, MyComplex &obj);
friend ostream& operator<<(ostream &os, const MyComplex &obj);
friend MyComplex operator+(const MyComplex &i1, const MyComplex &i2);
friend MyComplex operator-(const MyComplex &i1, const MyComplex &i2);
friend MyComplex operator*(const MyComplex &i1, const MyComplex &i2);
friend MyComplex operator/(const MyComplex &i1, const MyComplex &i2);
friend MyComplex operator+=(MyComplex &i1, const MyComplex &i2);
friend MyComplex operator-=(MyComplex &i1, const MyComplex &i2);
friend MyComplex operator*=(MyComplex &i1, const MyComplex &i2);
friend MyComplex operator/=(MyComplex &i1, const MyComplex &i2);
};
istream& operator>>(istream &in, MyComplex &obj) {
in >> obj.x >> obj.y;
return in;
}
ostream& operator<<(ostream &os, const MyComplex &obj) {
os << fixed << setprecision(2) << obj.x << " " << obj.y;
return os;
}
MyComplex operator+(const MyComplex &i1, const MyComplex &i2) {
MyComplex tmp;
tmp.x = i1.x + i2.x;
tmp.y = i1.y + i2.y;
return tmp;
}
MyComplex operator-(const MyComplex &i1, const MyComplex &i2) {
MyComplex tmp;
tmp.x = i1.x - i2.x;
tmp.y = i1.y - i2.y;
return tmp;
}
MyComplex operator*(const MyComplex &i1, const MyComplex &i2) {
MyComplex tmp;
tmp.x = i1.x * i2.x - i1.y * i2.y;
tmp.y = i1.x * i2.y + i1.y * i2.x;
return tmp;
}
MyComplex operator/(const MyComplex &i1, const MyComplex &i2) {
MyComplex tmp;
int t = i2.x * i2.x + i2.y * i2.y;
tmp.x = (i1.x * i2.x + i1.y * i2.y) / t;
tmp.y = (i1.y * i2.x - i1.x * i2.y) / t;
return tmp;
}
MyComplex operator+=(MyComplex &i1, const MyComplex &i2) {
i1 = i1 + i2;
return i1;
}
MyComplex operator-=(MyComplex &i1, const MyComplex &i2) {
i1 = i1 - i2;
return i1;
}
MyComplex operator*=(MyComplex &i1, const MyComplex &i2) {
i1 = i1 * i2;
return i1;
}
MyComplex operator/=(MyComplex &i1, const MyComplex &i2) {
i1 = i1 / i2;
return i1;
}
int main()
{
MyComplex z1;
MyComplex z2;
cin >> z1 >> z2;
cout << z1 + z2 <<endl;
cout << z1 - z2 <<endl;
cout << z1 * z2 <<endl;
cout << z1 / z2 <<endl;
cout << (z1 += z2) <<endl;
cout << (z1 -= z2) <<endl;
cout << (z1 *= z2) <<endl;
cout << (z1 /= z2) <<endl;
return 0;
}