zoukankan      html  css  js  c++  java
  • 复数类重载加法、减法和乘法运算符

    以下定义了一个复数类及其部分实现,现要求将类的构造函数以及运算符+、- 和 * 函数重载补充完整。

    复数类定义:

    在这里描述复数类定义。具体如下:
    class complex {
    	public:
    		complex(float r=0,float i=0);                   // 构造函数
    		complex operator+(const complex &op2) const;    //重载运算符 +
    		complex operator-(const complex &op2) const;    //重载运算符 -
    		complex operator*(const complex &op2) const;    //重载运算符 *
    		void display() const;                           // 按数学写法输出复数
    	private:
    		float real;
    		float imag;
    };
     

    裁判测试程序样例:

    在这里给出复数类测试的例子。例如:
    #include <iostream>
    using namespace std;
    class complex {
    	public:
    		complex(float r=0,float i=0);                   // 构造函数
    		complex operator+(const complex &op2) const;    //重载运算符 +
    		complex operator-(const complex &op2) const;    //重载运算符 -
    		complex operator*(const complex &op2) const;    //重载运算符 *
    		void display() const;                           // 按数学写法输出复数
    	private:
    		float real;
    		float imag;
    };
    

    /* ------------------- 请在这里填写答案-------------------- */

    void complex::display() const {
    if(real&&imag)
    if(imag1||imag-1)
    cout<<real<<(imag>0?"+":"-")<<"i"<<endl;
    else
    cout<<real<<(imag>0?"+":"")<<imag<<"i"<<endl;
    else if(real)
    cout<<real<<endl;
    else if (imag)
    if(imag1||imag-1)
    cout<<(imag>0?"":"-")<<"i"<<endl;
    else
    cout<<imag<<"i"<<endl;
    else
    cout<<0<<endl;
    }

    int main() {
    double real,imag;
    complex c,d,e;

    <span class="hljs-built_in">cin</span>&gt;&gt;real&gt;&gt;imag;
    <span class="hljs-function"><span class="hljs-built_in">complex</span> <span class="hljs-title">c1</span><span class="hljs-params">(real,imag)</span></span>;
    <span class="hljs-built_in">cin</span>&gt;&gt;real&gt;&gt;imag;
    <span class="hljs-function"><span class="hljs-built_in">complex</span> <span class="hljs-title">c2</span><span class="hljs-params">(real,imag)</span></span>;
    
    c=c1+c2;
    d=c1-c2;
    e=c1*c2;
    c.<span class="hljs-built_in">display</span>() ;
    d.<span class="hljs-built_in">display</span>() ;
    e.<span class="hljs-built_in">display</span>();
    
    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
    

    }

    输入样例:

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

    2 3
    -4 -5
     

    输出样例:

    在这里给出相应的输出。例如:

    -2-2i
    6+8i
    7-22i
     

    正确代码:

    complex::complex(float r,float i){
        real = r;
        imag = i;
    }
    complex complex::operator+(const complex &op2) const{
        complex temp;
        temp.imag = this->imag + op2.imag;
        temp.real = this->real + op2.real;
        return temp;
    }
    complex complex::operator-(const complex &op2) const{
        complex temp;
        temp.imag = this->imag - op2.imag;
        temp.real = this->real - op2.real;
        return temp;
    }
    complex complex::operator*(const complex &op2) const{
        complex temp;
        temp.imag = this->imag * op2.real+this->real*op2.imag;
        temp.real = this->real * op2.real-this->imag*op2.imag;
        return temp;
    }   
    
    
  • 相关阅读:
    关闭防火墙,仍然无法访问80端口 centos
    apache添加虚拟主机(windows下)
    PHP实现文件下载
    chmod 777 修改权限之后,文件夹颜色变绿:解决方案
    element ui table(表格)点击一行展开
    vue中eventbus 多次触发的问题
    console.log、toString方法与js判断变量类型
    另一个维度:cocos-2d VS vue
    浏览器内置的base64方法
    H5网页涂鸦canvas
  • 原文地址:https://www.cnblogs.com/pluie/p/12670559.html
Copyright © 2011-2022 走看看