SoPhuc

/*Cho tệp văn bản 'sophuc.txt' chứa phần thực và phần ảo của n số phức. Tính tổng của n số phức. 
Đưa các số phức ra màn hình ở dạng a + jb. Yêu cầu sử dụng toán tử xuất << để đưa số phức ra màn hình; 
sử dụng toán tử + để cộng hai số phức; số phức được tự động khởi tạo phần thực và phần ảo bằng 0; 
sử dụng mảng động để chứa n số phức*/

#include <iostream>
#include <stdio.h>
#include <fstream>

using namespace std;

//khai bao lop doi tuong so phuc
class SoPhuc
{
    private:
        float a, b;
    
    public:
        SoPhuc();
        void thietLapAB(float a, float b);
        SoPhuc operator+(SoPhuc &sp);

        //ham ban
        friend ostream& operator<<(ostream &cout, SoPhuc &p);
};

//===chuong trinh chinh
int main ()
{
    //khai bao bien;
    int n;
    float a, b;
    
    //tao doi tuong doc tep
    ifstream fin("sophuc.txt");
    
    //dem so luong so phuc
    fin>>n;
    
    //tao doi tuong so phuc;
    SoPhuc *sp = new SoPhuc[n];
    SoPhuc tong;
    for(int i=0 ; i<n ; i++)
    {
        fin >> a >> b;
        sp[i].thietLapAB(a,b);
        // //tinh tong n so phuc
        tong = tong + sp[i];
    }
    
    cout<<"Chuong trinh tinh tong n so phuc tu tep.\n\n";
    
    //dua ra man hinh
    for(int i=0 ; i<n ; i++)
    {
        printf("\nSo phuc thu %d la: ", i+1); cout<<sp[i];
    }
    printf("\nTong %d so phuc tren la: ", n); cout<<tong;
    
    return 0;
}
//===dinh nghia ham===
SoPhuc::SoPhuc():a(0), b(0)
{
    
}

 void SoPhuc::thietLapAB(float a, float b)
 {
     this->a = a;
     this->b = b;
 }

SoPhuc SoPhuc::operator+(SoPhuc &sp)
{
    SoPhuc tg;
    
    tg.a = a + sp.a;
    tg.b = b + sp.b;
    
    return tg;
}

//ham ban
ostream& operator<<(ostream &cout, SoPhuc &p)
{
    if(p.b>=0) cout<<p.a<<" + j"<< p.b;
    else cout<<p.a<<" - j"<< -p.b;
    
    return cout;
}


/*
Bài tập (lthdt-sophuc2.cpp): Tính tổng hai số phức.
Yêu cầu:
1) Sử dụng toán tử cộng + để cộng 2 số phức.
2) Sử dụng toán tử nhập >> để nhập vào số phức.
3) Sử dụng toán tử xuất << để đưa số phức ra màn hình ở dạng a + jb.
*/
#include <iostream>
#include <stdio.h>

using namespace std;

//khai bao lop doi tuong so phuc 
class SoPhuc 
{
private:
    float a, b;
    
public:
    SoPhuc operator+(SoPhuc &sp2);
    
    //ham ban
    friend istream& operator>>(istream &cin, SoPhuc &sp);
    friend ostream& operator<<(ostream &cout, SoPhuc &sp);
};

//===Chuong trinh chinh
int main ()
{
    //tao doi tuong so phuc
    SoPhuc sp1, sp2, tong;
    
    cout<<"Chuong trinh tinh tong 2 so phuc.\n\n";
    cout<<"Nhap vao so phuc thu nhat: ";
    cin>>sp1;
    cout<<"\nNhap vao so phuc thu hai: ";
    cin>>sp2;
    
    //tinh tong 2 so phuc
    tong = sp1 + sp2;
    
    //dua ra man hinh
    cout<<"\nSo phuc thu nhat: "; cout<<sp1;
    cout<<"\nSo phuc thu hai: "; cout<<sp2;
    cout<<"\nTong 2 so phuc la: "; cout<<tong;
    
    cout<<endl;
    return 0;
}
//===Dinh nghia ham===
SoPhuc SoPhuc::operator+(SoPhuc &sp2)
{
    SoPhuc tg;
     
    tg.a = a + sp2.a;
    tg.b = b + sp2.b;
    
    return tg;
}

//ham ban
istream& operator>>(istream &cin, SoPhuc &sp)
{
    cout<<"\nNhap vao phan thuc: ";
    cin >>sp.a;
    cout<<"Nhap vao phan ao: ";
    cin >>sp.b;
    
    return cin;
}
 
ostream& operator<<(ostream &cout, SoPhuc &sp)
{
    if(sp.b >= 0) cout<<sp.a<<" + j"<<sp.b;
    else cout<<sp.a<<" - j" << -sp.b;
    
    return cout;
}
/*
Bài tập (lthdt-sophuc2.cpp): Viết chương trình nhập vào n số phức. Đưa các số phức đã nhập ra màn hình.
Yêu cầu trong chương trình phải tạo đối tượng động.
Yêu cầu:
1) Sử dụng toán tử cộng + để cộng n số phức.
2) Sử dụng toán tử nhập >> để nhập vào số phức.
3) Sử dụng toán tử xuất << để đưa số phức ra màn hình ở dạng a + jb.
*/
#include <iostream>
#include <stdio.h>

using namespace std;

//khai bao lop doi tuong so phuc 
class SoPhuc 
{
private:
    float a, b;
    
public:
    SoPhuc operator+(SoPhuc &sp2);
    
    //ham ban
    friend istream& operator>>(istream &cin, SoPhuc &sp);
    friend ostream& operator<<(ostream &cout, SoPhuc &sp);
};

//===Chuong trinh chinh
int main ()
{
    //khai bao bien 
    int n;
    
    cout<<"Chuong trinh tinh tong n so phuc.\n\n";
    cout<<"Nhap vao n so phuc: ";
    cin>>n;
    
    //tao doi tuong so phuc
    SoPhuc *sp = new SoPhuc[n], tong;
    
    for(int i=0 ; i<n ; i++)
    {
        cout<<"\nNhap vao so phuc thu " <<i+1;
        cin >> sp[i];
    }
    
    //dua ra man hinh
    for(int i=0; i<n ; i++)
    {
        printf("\nSo phuc thu %d : ",i+1);
        cout<<sp[i];
        
        //tinh tong n so phuc
        tong = tong + sp[i];
    }
    printf("\nTong %d so phuc tren la: ", n);
    cout<<tong;
    
    cout<<endl;
    return 0;
}
//===Dinh nghia ham===
SoPhuc SoPhuc::operator+(SoPhuc &sp2)
{
    SoPhuc tg;
     
    tg.a = a + sp2.a;
    tg.b = b + sp2.b;
    
    return tg;
}

//ham ban
istream& operator>>(istream &cin, SoPhuc &sp)
{
    cout<<"\nNhap vao phan thuc: ";
    cin >>sp.a;
    cout<<"Nhap vao phan ao: ";
    cin >>sp.b;
    
    return cin;
}
 
ostream& operator<<(ostream &cout, SoPhuc &sp)
{
    if(sp.b >= 0) cout<<sp.a<<" + j"<<sp.b;
    else cout<<sp.a<<" - j" << -sp.b;
    
    return cout;
}

Last updated