#include<iostream>
using namespace std;
class Complex{
private:
float real;
float imaginary;
public:
void set_values(float a,float b)
{
real=a;
imaginary=b;
}
float get_real(){
return real;
}
float get_imaginary(){
return imaginary;
}
void display(){
if(imaginary<0){
cout<<real<<"-"<<abs(imaginary)<<"i"<<endl;
}
else {
cout<<real<<"+"<<imaginary<<"i"<<endl;
}
}
};
class calculation{
public:
Complex sum(Complex a,Complex b){
Complex S;
float x,y;
x=a.get_real()+b.get_real();
y=a.get_imaginary()+b.get_imaginary();
S.set_values(x,y);
return S;
}
Complex difference(Complex a,Complex b){
Complex d;
float x,y;
x=a.get_real()-b.get_real();
y=a.get_imaginary()-b.get_imaginary();
d.set_values(x,y);
return d;
}
};
int main(){
cout<<"Enter real and imaginary parts of first complex number :";
float a,b;
cin>>a>>b;
Complex A,B,sum,diff;
A.set_values(a,b);
cout<<"Enter real and imaginary parts of second complex number :";
cin>>a>>b;
B.set_values(a,b);
calculation Value;
sum=Value.sum(A,B);
diff=Value.difference(A,B);
sum.display();
diff.display();
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIENvbXBsZXh7CnByaXZhdGU6CiAgICAgIGZsb2F0IHJlYWw7CiAgICAgIGZsb2F0IGltYWdpbmFyeTsKcHVibGljOgogICAgICB2b2lkIHNldF92YWx1ZXMoZmxvYXQgYSxmbG9hdCBiKQogICAgICB7CiAgICAgICAgICAgIHJlYWw9YTsKICAgICAgICAgICAgaW1hZ2luYXJ5PWI7CgogICAgICB9CiAgICAgIGZsb2F0IGdldF9yZWFsKCl7CiAgICAgIHJldHVybiByZWFsOwogICAgICB9CiAgICAgIGZsb2F0IGdldF9pbWFnaW5hcnkoKXsKICAgICAgcmV0dXJuIGltYWdpbmFyeTsKICAgICAgfQogICAgICB2b2lkIGRpc3BsYXkoKXsKICAgICAgaWYoaW1hZ2luYXJ5PDApewogICAgICAgICAgICBjb3V0PDxyZWFsPDwiLSI8PGFicyhpbWFnaW5hcnkpPDwiaSI8PGVuZGw7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgICAgIGNvdXQ8PHJlYWw8PCIrIjw8aW1hZ2luYXJ5PDwiaSI8PGVuZGw7CiAgICAgIH0KICAgICAgfQoKfTsKY2xhc3MgY2FsY3VsYXRpb257CnB1YmxpYzoKICAgICBDb21wbGV4IHN1bShDb21wbGV4IGEsQ29tcGxleCBiKXsKICAgICBDb21wbGV4IFM7CiAgICAgZmxvYXQgeCx5OwogICAgIHg9YS5nZXRfcmVhbCgpK2IuZ2V0X3JlYWwoKTsKICAgICB5PWEuZ2V0X2ltYWdpbmFyeSgpK2IuZ2V0X2ltYWdpbmFyeSgpOwogICAgIFMuc2V0X3ZhbHVlcyh4LHkpOwogICAgIHJldHVybiBTOwoKCiAgICAgfQogICAgIENvbXBsZXggZGlmZmVyZW5jZShDb21wbGV4IGEsQ29tcGxleCBiKXsKICAgICBDb21wbGV4IGQ7CiAgICAgZmxvYXQgeCx5OwogICAgIHg9YS5nZXRfcmVhbCgpLWIuZ2V0X3JlYWwoKTsKICAgICB5PWEuZ2V0X2ltYWdpbmFyeSgpLWIuZ2V0X2ltYWdpbmFyeSgpOwogICAgIGQuc2V0X3ZhbHVlcyh4LHkpOwogICAgIHJldHVybiBkOwoKCiAgICAgfQp9OwoKaW50IG1haW4oKXsKICAgICAgY291dDw8IkVudGVyIHJlYWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBvZiBmaXJzdCBjb21wbGV4IG51bWJlciA6IjsKICAgICAgZmxvYXQgYSxiOwogICAgICBjaW4+PmE+PmI7CiAgICAgIENvbXBsZXggQSxCLHN1bSxkaWZmOwogICAgICBBLnNldF92YWx1ZXMoYSxiKTsKICAgICAgY291dDw8IkVudGVyIHJlYWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBvZiBzZWNvbmQgY29tcGxleCBudW1iZXIgOiI7CiAgICAgIGNpbj4+YT4+YjsKICAgICAgQi5zZXRfdmFsdWVzKGEsYik7CiAgICAgIGNhbGN1bGF0aW9uIFZhbHVlOwogICAgICBzdW09VmFsdWUuc3VtKEEsQik7CiAgICAgIGRpZmY9VmFsdWUuZGlmZmVyZW5jZShBLEIpOwogICAgICBzdW0uZGlzcGxheSgpOwogICAgICBkaWZmLmRpc3BsYXkoKTsKCgpyZXR1cm4gMDsKfQo=