7-3 複數類的操作 (20分)----十分簡單的代碼

1、聲明一個複數類Complex(類私有數據成員爲double型的real和image)

2、定義構造函數,用於指定複數的實部與虛部。

3、定義取反成員函數,調用時能返回該複數的相反數(實部、虛部分別是原數的相反數)。

4、定義成員函數Print(),調用該函數時,以格式(real, image)輸出當前對象。

5、編寫加法友元函數,以複數對象c1,c2爲參數,求兩個複數對象相加之和。

6、主程序實現:

(1)讀入兩個實數,用於初始化對象c1。

(2)讀入兩個實數,用於初始化對象c2。

(3)計算c1與c2相加結果,並輸出。

(4)計算c2的相反數與c1相加結果,並輸出。

輸入格式:
輸入有兩行:

第一行是複數c1的實部與虛部,以空格分隔;

第二行是複數c2的實部與虛部,以空格分隔。

輸出格式:
輸出共三行:

第一行是c1與c2之和;

第二行是c2的相反數與c1之和;

第三行是c2 。

輸入樣例:
在這裏給出一組輸入。例如:

2.5 3.7
4.2 6.5
輸出樣例:
在這裏給出相應的輸出。例如:

(6.7, 10.2)
(-1.7, -2.8)
(4.2, 6.5)

#include<iostream>
using namespace std;
class Complex{
    double real,image;
public:
    Complex(double r=0,double i=0):real(r),image(i){}
    friend Complex deverse(const Complex&c);//養成使用const的好習慣
    void Print(){cout<<"("<<real<<", "<<image<<")"<<endl;}
    friend Complex add(const Complex&a,const Complex&b);
};
Complex deverse(const Complex &c){
    return Complex(-c.real,-c.image);}
Complex add(const Complex&a,const Complex &b){
    return Complex(a.real+b.real,a.image+b.image);
}
int main(){
    double r1,r2,i1,i2;
    cin>>r1>>i1>>r2>>i2;
    Complex a(r1,i1),b(r2,i2);
    add(a,b).Print();
    //因爲add()返回的是對象所以可以直接調用Print()打印結果
    add(a,deverse(b)).Print();
    b.Print();
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章