c++第十章第七题

第十章第七题

#ifndef COMPLEX0_H_
#define COMPLEX0_H_
class complex
{
public:
 complex();
 ~complex();
 complex(const double n, const double m);
 complex operator+(const complex& b)const;
 complex operator-(const complex& b)const;
 complex operator*(const complex& b)const;
 complex operator*(double n)const;
 complex operator~()const;
 friend std::ostream& operator<<(std::ostream& os, const complex& b);
 friend std::istream& operator>>(std::istream& is, complex& c);
private:
 double x;
 double y;
};
#endif // DEBUG
include<iostream>
#include"complex0.h"
complex::complex()
{
 x = y = 0;
}
complex::~complex()
{
}
complex::complex(const double n, const double m)
{
 x = n;
 y = m;
}
complex complex::operator+(const complex& b)const
{
 return complex(x + b.x, y + b.y);
}
complex complex::operator-(const complex& b)const
{
 return complex(x - b.x, y - b.y);
}
complex complex::operator*(const complex& b)const
{
 complex sum;
 sum.x = x * b.x - y * b.y;
 sum.y = x * b.y + y * b.x;
 return sum;
}
complex complex::operator*(double n)const
{
 return complex(x * n, y * n);
}
complex complex::operator~()const
{
 return complex(x, -y);
}
std::ostream& operator << (std::ostream& os, const complex& b)
{
 os << "(" << b.x << ", " << b.y << "i)";
 return os;
}
std::istream& operator >> (std::istream& is,complex& c)
{
 std::cout << "real: ";
 if (!(is >> c.x))
  return is;
 std::cout << "imaginary: ";
 is >> c.y;
 return is;
}
#include <iostream>
#include"complex0.h"
using namespace std;
int main()
{
        complex a(3.0, 4.0);
        complex c;
        cout << "Enter a complex number (q to quit):\n";
        while (cin >> c)
        {
            cout << "c is " << c << '\n';
            cout << "complex conjugate is " << ~c << '\n';
            cout << "a is " << a << '\n';
            cout << "a + c is " << a + c << '\n';
            cout << "a - c is " << a - c << '\n';
            cout << "a * c is " << a * c << '\n';
            cout << "2 * c is " << c * 2 << '\n';
            cout << "Enter a complex number (q to quit):\n";
        }
        cout << "Done!\n";
        return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值