m0_66319751 2022-05-16 17:24 采纳率: 0%
浏览 351

运算符重载,+-*/,以及求模的大小比较

本题考虑对运算符进行重载。分别重载复数运算的+,-,*,/,=(赋值)运算符,以及比较大小的<=(复数1的模是否小于等于复数2的模)运算符,其中,比较运算符按复数的模进行比较。测试程序根据输入的mode值分别测试各个函数是否编写正确。

函数接口定义:
在这里描述函数接口:
i#include
using namespace std;

class Complex {
double real;
double imag;
public:
//构造函数
Complex(double real=0, double imag=0);

//operator+-*/=操作符函数
Complex operator+(const Complex& c) const;
Complex operator-(const Complex& c) const;
Complex operator*(const Complex& c) const;
Complex operator/(const Complex& c) const;
Complex operator=(const Complex& c);

//operator <=操作符函数
bool operator<=(const Complex& c) const;

//友元函数声明以帮助operator<<()函数访问Complex类的私有成员
friend ostream& operator<<(ostream& out, const Complex& c);

};

//n个复数,按模从小到达排序
void bubble_sort(Complex[],int n);
bubble_sort函数按冒泡排序的算法对n个复数按模从小到大的顺序排序。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子:
int main() {
double dReal1, dImag1, dReal2, dImag2;

int mode;
cin>>mode;
cin>>dReal1>>dImag1>>dReal2>>dImag2;
Complex c1(dReal1, dImag1);
Complex c2(dReal2, dImag2);
Complex c[6] = {c1,c2,c1+c2,c1-c2,c1*c2,c1/c2};
switch(mode)
{
    case 1: cout << c[0]<<" "<<c[1];break;
    case 2: cout << c[2];break;
    case 3: cout << c[3];break;
    case 4: cout << c[4];break;
    case 5: cout << c[5];break;
    case 6: bubble_sort(c,6);
            for(int i=0;i<6;i++)
                cout<<c[i]<<" ";

}

return 0;

}
/* 请在这里填写答案 */
输入样例1:
在这里给出一组输入。例如:

1
1 2 3 4
输出样例1:
在这里给出相应的输出。例如:

1+2i 3+4i
注意:复数的输出,实部和虚部即使为0也输出。

输入样例2:
在这里给出一组输入。例如:

2
4 5 6 7
输出样例2:
在这里给出相应的输出。例如:

10+12i
注意:复数的输出,实部和虚部即使为0也输出。

  • 写回答

3条回答 默认 最新

  • rousongcaicai 2022-05-16 20:05
    关注

    写出来了吗 吨吨吨

    评论

报告相同问题?

问题事件

  • 创建了问题 5月16日

悬赏问题

  • ¥30 电脑误删了手机的照片怎么恢复?
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了