PTA 复数类的操作

242 阅读1分钟

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{
    private:
        double real,image;
    public:
        Complex()
        {
            real = 0;
            image = 0;
        }
        void get(double r , double i)
        {
            real = r;
            image = i;
        }
        void fan()
        {
            real = -real;
            image = -image;
        }
        void Print()
        {
            cout << "("
                << real
                << ", "
                << image
                << ")"
                <<endl;
        }
        friend void Sum(Complex ob1,Complex ob2)
        {
            cout << "("
                << ob1.real + ob2.real 
                << ", "
                << ob1.image + ob2.image
                << ")" 
                << endl;
        }
};
int main ()
{
    double a1,a2;
    double b1,b2;
    cin >> a1 >> a2 >> b1 >> b2 ;
    Complex ob1,ob2;
    ob1.get(a1,a2);
    ob2.get(b1,b2);
    Sum(ob1,ob2);
    ob2.fan();
    Sum(ob1,ob2);
    ob2.fan();
    ob2.Print();
}

提交结果:

2.png