BT Về Lập trình hướng đối tượng (Mở đầu)
2. Xây dựng lớp số phức gồm các thành phần:
-DL: phần thực, phần ảo
-Pt: nhập, in, tính cộng, trừ, nhân, chia 2 số phức
Hàm main:
-Nhập 2 số phức
-Tính và in tổng, hiệu hai số phức
-In mảng sau khi xếp
Code:
#include <iostream.h>
#include <conio.h>
#include <math.h>
class sp
{
private:
float i,r;
public:
friend int ss(sp x1,sp x2);
friend float can(sp x);
friend float mau(sp x);
sp()
{
r=0;
i=0;
}
friend istream& operator>>(istream& is,sp &x)
{
cout<<"Nhap phan thuc :";is>>x.r;
cout<<"Nhap phan ao :";is>>x.i;
return is;
}
friend ostream& operator<<(ostream& os,sp &x)
{
os<<x.r<<" + j*"<<x.i;
return os;
}
sp operator+(sp x)
{
sp x1;
x1.r = r+x.r;
x1.i = i+x.i;
return x1;
}
sp operator-(sp x)
{
sp x1;
x1.r = r-x.r;
x1.i = i-x.i;
return x1;
}
sp operator*(sp x)
{
sp x1;
x1.r = r*x.r - i*x.i;
x1.i = r*x.i + x.r*i;
return x1;
}
sp operator/(sp x)
{
sp x1;
x1.r = (r*x.r+i*x.i)/mau(x);
x1.i = (r*x.r-i*x.i)/mau(x);
return x1;
}
};
float can(sp x)
{
return sqrt(x.r*x.r+x.i*x.i);
}
float mau(sp x)
{
return (x.r*x.r+x.i*x.i);
}
int ss(sp x1,sp x2)
{
if (x1.r>x2.r) return 1;
if (x1.r==x2.r&&x1.i>x2.i) return 1;
else return 0;
}
void main()
{
sp a,b;
cout<<"Nhap 2 so phuc :\n";cin>>a>>b;
cout<<"Tong :"<<a+b<<"\n";
cout<<"Hieu :"<<a-b<<"\n";
cout<<"Tich :"<<a*b<<"\n";
cout<<"Thuong :"<<a/b<<"\n";
sp *p;
sp tg;
int n;
cout<<"Nhap so phan tu mang so phuc :";cin>>n;
p = new sp[n+1];
for (int e=1;e<=n;e++)
{
cout<<"Nhap so phuc thu "<<e<<" : \n";
cin>>p[e];
}
for (int j=1;j<n;j++)
{
for (int k=j+1;k<=n;k++)
if (ss(p[k],p[j])==1)
{
tg = p[k];
p[k] = p[j];
p[j] = tg;
}
}
cout<<"Mang so phuc sau khi sap xep :\n";
for (int l=1;l<=n;l++)
cout<<"\n"<<p[l];
getch();
}
0 Response to "BT Về Lập trình hướng đối tượng (Mở đầu)"
Đăng nhận xét