LT hướng đối tượng - Phép cộng, trừ hai số phức

Cho hai số phức dạng:

SP1 = a1+ i*b1; SP2 = a2+ i*b2; Phép cộng, trừ hai số phức được định nghĩa như sau:
SP3 = SP1 + SP2 = (a1+a2) + i*(b1+b2); SP3 = SP1 - SP2 = (a1-a2) + i*(b1-b2);
Hãy xây dựng lớp số phức với các thuộc tính Thực, ảo và các phương thức: Phương thức khởi tạo: khởi gán phần thực và phần ảo của số phức. Phương thức xuất: in giá trị của số phức lên màn hình

Phương thức toán tử + và - hai số phức.

Xây dựng chương trình chính để sử dụng lớp Số phức nói trên.



Mã chương trình:

#include<iostream>
#include<conio.h>
#include<stdio.h> 
using namespace std;
class SP
{
	float T,A; 
public:
	friend istream & operator>>(istream & x,SP & y); 
	friend ostream & operator<<(ostream & x,SP & y); 
	SP operator+(SP y);
	SP operator-(SP y); 
	SP()
	{
		T=A=0;
	}
	
	SP(float x1,float x2)
	{
		T=x1;A=x2;
	}
};

istream & operator>>(istream & x,SP & y)
{
	cout<<"Phan thuc: ";
	x>>y.T; 
	cout<<"Phan ao: ";
	x>>y.A;
	return x;
}

ostream & operator<<(ostream & x,SP & y)
{
	x<<y.T<<"+"<<y.A<<"*i"; 
	return x;
}

SP SP::operator+(SP y)
{
	SP z; 
	z.T=T+y.T; 
	z.A=A+y.A;
	return z;
}

SP SP::operator-(SP y)
{
	SP z;
	z.T=T-y.T; 
	z.A=A-y.A;
	return z;
}

int main()
{

	SP x,y,z;
	cout<<"SP x: \n";
	cin>>x; 
	cout<<x<<endl; 
	cout<<"SP y: \n";
	cin>>y; 
	cout<<y<<endl;
	z=x+y;
	cout<<"Cong sp: "<<x<<" + "<<y<<" = "<<z<<endl; 
	z=x-y;
	cout<<"Tru sp: "<<x<<" - "<<y<<" = "<<z<<endl; 
	getch();
	return 0;
}

Kết quả:

SP x:
Phan thuc: 12
Phan ao: 6
12+6*i
SP y:
Phan thuc: 6
Phan ao: 3
6+3*i
Cong sp: 12+6*i + 6+3*i = 18+9*i
Tru sp: 12+6*i - 6+3*i = 6+3*i