精华内容
下载资源
问答
  • 复数运算符的重载

    2020-03-22 11:58:50
    复数运算符的重载 代码 #include"pch.h" #include <iostream> using namespace std; class Complex { public: Complex (double real = 0,double imgic = 0):_real(real),_imgic(imgic){} Complex operator +...

    复数运算符的重载

    代码

    #include"pch.h"
    #include <iostream>
    using namespace std;
    class Complex {
    public:
     Complex (double real = 0,double imgic = 0):_real(real),_imgic(imgic){}
     Complex operator + (const Complex &num);
     Complex operator - (const Complex &num);
     Complex operator * (const Complex &num);
     Complex operator / (Complex &num);
     Complex operator ~ ();
     friend ostream & operator <<(ostream &out, const Complex &num)
     {
      if (num._imgic < 0.0)
      {
       out << "(" << num._real << " - " << -num._imgic << "i" << ")";
      }
      else
      {
       out << "(" << num._real << " + " << num._imgic << "i" << ")";
      }
      return out;
     }
     friend istream & operator >>(istream &in, Complex &num)
     {
      in >> num._real;
      in >> num._imgic;
      return in;
     }
    private:
     double _real;
     double _imgic;
    };
    Complex Complex::operator +(const Complex &num)
    {
     return Complex(_real + num._real, _imgic + num._imgic);
    }
    Complex Complex::operator -(const Complex &num)
    {
     return Complex(_real - num._real, _imgic - num._imgic);
    }
    Complex Complex::operator *(const Complex &num)
    {
     return Complex((_real * num._real-_imgic * num._imgic), (_imgic * num._real + _real * num._imgic));
    }
    Complex Complex::operator /(Complex &num)
    {
     return Complex(((*this * (~num))._real) /((num*(~num))._real), ((*this*(~num))._imgic) / ((num*(~num))._real));
    }
    Complex Complex::operator ~()
    {
     return Complex(_real,-_imgic);
    }
    int main() 
    {
     Complex complex1, complex2, complex3;
     cin >> complex1 >> complex2;
     cout << "These two complex Numbers are:" << endl << complex1 << endl << complex2<<endl;
     cout << complex1 << " + "<<complex2 << "=" << complex1 + complex2<<endl;
     cout << complex1 << " - " << complex2 << "=" << complex1 - complex2 << endl;
     cout << complex1 << " * " << complex2 << "=" << complex1 * complex2 << endl;
     cout << complex1 << " / " << complex2 << "=" << complex1 / complex2 << endl;
     return 0;

    运行结果

    在这里插入图片描述

    展开全文
  • #include #include "operatorOverload.h" #include using namespace std; int main() {  Complex c1(1,2),c2(4,-5),c3,c4,c5;  c3 = c1+c2;  c4 = c1*c2;  c5 = c1/c2;  c3.print();...
    #include <iostream>
    #include "operatorOverload.h"
    #include<complex>
    using namespace std;


    int main()
    {
        Complex c1(1,2),c2(4,-5),c3,c4,c5;
        c3 = c1+c2;
        c4 = c1*c2;
        c5 = c1/c2;
        c3.print();
        c4.print();
        c5.print();


        complex<double> d1(1,2),d2(4,-5),d3,d4,d5;
        d3=d1+d2;
        d4=d1*d2;
        d5=d1/d2;
        cout<<"d3="<<d3.real()<<" "<<d3.imag()<<endl;
        cout<<"d4="<<d4.real()<<" "<<d4.imag()<<endl;
        cout<<"d5="<<d5.real()<<" "<<d5.imag()<<endl;
        return 0;

    }


    //.h文件

    #include<string>
    #include<string.h>
    #include<iostream>
    using namespace std;
    class Complex
    {
        public:
        Complex(double r= 0,double i = 0)
        {
            real = r;
            image = i;
           // cout <<"构造函数被调用"<<endl;
        }
        void print()
        {
            if(image >0) cout<<real <<"+" <<image<<"i"<<endl;
            else if(image <0) cout <<real <<image<<"i"<<endl;
            else cout <<real;
        }
        Complex operator*(const Complex &c);
        friend Complex operator + (const Complex &c1,const Complex &c2);
        friend Complex operator / (const Complex &c1,const Complex &c2);
    private :
        double real,image;
    };
    Complex operator /(const Complex &c1,const Complex &c2)
    {
        Complex c3;
        double a,b,c,d;
        a = c1.real;b = c1.image;c = c2.real; d = c2.image;
        c3.real = (a*c + b*d)/(c*c+d*d);
        c3.image = (b*c - a*d)/(c*c+d*d);
        return c3;


    }
    Complex operator+(const Complex &c1,const Complex &c2)
    {
        Complex c3;
        c3.real = c1.real+c2.real;
        c3.image = c1.image +c2.image;


        return c3;
    }
    Complex Complex ::operator *(const Complex &c)
    {
        Complex c3;
        c3.real = real * c.real - image *c.image;
        c3.image = real * c.image + image * c.real;
        return c3;
    }



    展开全文
  • /* * Copyright (c) 2013, 烟台大学... * All rights reserved.... * 文件名称:text.cpp * 作者:胡颖 ...* 完成日期:2013年4月24日 ...* 问题描述:利用友员函数实现复数的加减乘除运算 ...* 程序输出:输出复数的运算结
    /*   
    * Copyright (c) 2013, 烟台大学计算机学院   
    * All rights reserved.   
    * 文件名称:text.cpp   
    * 作者:胡颖   
    * 完成日期:2013年4月24日   
    * 版本号:v1.0   
    *   
    * 输入描述:无   
    * 问题描述:利用友员函数实现复数的加减乘除运算 
    * 程序输出:输出复数的运算结果  
    * 问题分析:   
    * 算法设计:略   
    */      
    #include <iostream>
    using namespace std;
    class Complex
    {
    public:
    	Complex(){real=0;imag=0;}
    	Complex(double r,double i){real=r;imag=i;}
    	friend Complex operator+(Complex &c1,Complex &c2);
    	friend Complex operator-(Complex &c1,Complex &c2);
    	friend Complex operator*(Complex &c1,Complex &c2);
    	friend Complex operator/(Complex &c1,Complex &c2);
    	void display();
    private:
    	double real;
    	double imag;
    };
    //下面定义成员函数
    Complex operator+(Complex &c1,Complex &c2)
    {
        Complex c;
        c.real=c1.real+c2.real;
        c.imag=c1.imag+c2.imag;
        return c;
    }
    Complex operator-(Complex &c1,Complex &c2)
    {
        Complex c;
        c.real=c1.real-c2.real;
        c.imag=c1.imag-c2.imag;
        return c;
    }
    Complex operator*(Complex &c1,Complex &c2)
    {
        Complex c;
        c.real=(c1.real*c2.real-c1.imag*c2.imag);
        c.imag=(c1.imag*c2.real+c1.real*c2.imag);
        return c;
    }
    Complex operator/(Complex &c1,Complex &c2)
    {
        Complex c;
        c.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
        c.imag=(c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
        return c;
    }
    void Complex::display()
    {
    
        cout<<"("<<real<<","<<imag<<"i)"<<endl;
    }
    //下面定义用于测试的main()函数
    int main()
    {
    	Complex c1(3,4),c2(5,-10),c3;
    	cout<<"c1=";
    	c1.display();
    	cout<<"c2=";
    	c2.display();
    	c3=c1+c2;
    	cout<<"c1+c2=";
    	c3.display();
    	c3=c1-c2;
    	cout<<"c1-c2=";
    	c3.display();
    	c3=c1*c2;
    	cout<<"c1*c2=";
    	c3.display();
    	c3=c1/c2;
    	cout<<"c1/c2=";
    	c3.display();
    	return 0;
    }
    
    

    运算结果:
    展开全文
  • /*烟台大学计算机学院学生 *All right reserved. *文件名称:OJ 练习一 (3) ...07.*对任务及求解方法描述部分::OJ 练习一 (3) 08.*我程序:*/ #include #include using namespace std;
    /*烟台大学计算机学院学生 
    *All right reserved. 
    *文件名称:OJ 练习一 (3) 
    04.*作者:王洪海 
    05.*完成日期:2014年6月10日 
    06.*版本号:v1.0 
    07.*对任务及求解方法的描述部分::OJ 练习一 (3)
    08.*我的程序:*/  
    
    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    class Complex
    {
    public:
    Complex():real(0),imag(0) {}
    Complex(double r,double i):real(r),imag(i) {}
    Complex operator+(Complex &);
    Complex operator+(double &);
    friend Complex operator+(double&,Complex &);
    friend ostream& operator << (ostream& output, const Complex& c);
    private:
    double real;
    double imag;
    };
    
    //将程序需要的其他成份写在下面,只提交begin到end部分的代码
    //******************** begin ********************
    Complex Complex::operator+(Complex &c)
    {
        Complex c1;
        c1.real=real+c.real;
        c1.imag=imag+c.imag;
        return c1;
    }
    Complex Complex::operator+(double &d)
    {
        Complex c1;
        c1.real=d+real;
        c1.imag=imag;
        return c1;
    }
     Complex operator+(double &d,Complex &c)
     {
         Complex c1;
         c1.real=d+c.real;
         c1.imag=c.imag;
         return c1;
     }
     ostream& operator << (ostream& output, const Complex& c)
     {
         output<<"("<<setiosflags(ios::fixed)<<setprecision(2)<<c.real;
         if(c.imag>0)
         output<<"+"<<setiosflags(ios::fixed)<<setprecision(2)<<c.imag;
         else
         output<<setiosflags(ios::fixed)<<setprecision(2)<<c.imag;
         output<<"i)"<<endl;
         return output;
     }
    //********************* end ********************
    int main()
    {
    //测试复数加复数
    double real,imag;
    cin>>real>>imag;
    Complex c1(real,imag);
    cin>>real>>imag;
    Complex c2(real,imag);
    Complex c3=c1+c2;
    cout<<"c1+c2=";
    cout<<c3;
    
    //测试复数加实数
    double d;
    cin>>real>>imag;
    cin>>d;
    c3=Complex(real,imag)+d;
    cout<<"c1+d=";
    cout<<c3;
    
    //测试实数加复数
    cin>>d;
    cin>>real>>imag;
    c1=Complex(real,imag);
    c3=d+c1;
    cout<<"d+c1=";
    cout<<c3;
    
    return 0;
    }
    
    


    运行结果,如下图:

    展开全文
  • 在学习了运算符重载后,知道了运算符重载的本质是一个特殊成员或友元函数,重载后原意义没有失去,而是定义了相对类一个新运算符。下面来做个运算符重载的练习: 先在复数类中声明好函数原型与复数私有变量 ...
  •    所谓运算符的重载,我们可以这样理解;我们知道C语言中,我们所使用的“+,-,*,/”等符号都是用于数学运算表达的,可以用于数值与非数值之间,还可以用于表达式和变量常量之间,其表达的含义各不相同,所以...
  • 【C++】复数的运算符重载

    千次阅读 2015-06-07 00:58:36
    运算符重载的定义: 用户对于自定义类型运算操作,例如复数的运算。需要重新定义运算符号(创建函数)。  除了类属关系运算符"."、成员指针运算符".*...复数的运算符重载如下: #include #include using namespac
  • 一、对复数进行运算符重载 1、加法运算符重载 1、因为我们要输入复数的值,所以我们应当运用构造函数,我们不仅要定义默认构造函数,来构造m3,还要定义一个构造函数使输入数相加。 下面展示一些 代码。 #include ...
  • //#include //using namespace std; #include class Complex { private: double real; double img; public: Complex(double lp=0.0,double rp=0.0);...最近写关于C++ 复数运算符重载的,特分享一下
  • 程序实现了c++中加法、减法‘乘法、除法运算符的重载.
  • C++复数运算符重载(+与)

    千次阅读 2014-06-03 17:31:08
    Problem A: C++复数运算符重载(+与 [Submit][Status][Web Board] Description 定义一个复数类Complex,重载运算符“+”,使之能用于复数加法运算与输出操作。 (1)参加运算两个运算量可以都是类...
  • /* ... * All rights reserved. * 作 者: 霍雨佳 * 完成日期:2014 年5月20日 * 版 本 号:v1.0 ...* 问题分析:定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算与输出操作。 *(1
  • 复数运算符重载(3)

    2016-05-23 19:32:02
      *Copyright (c) 2014,烟台大学计算机学院 *All right reserved. ...*问题描述:定义一个定义完整类(是可以当作独立产品发布,成为众多项目中“基础工程”)。这样类在(2)基础上,扩展+、-
  • 2535: C++复数运算符重载(+与<<) 时间限制:1 Sec内存限制:128 MB 提交:867解决:532 题目描述 定义一个复数类Complex,重载运算符“+”,使之能用于复数加法运算与输出操作。 (1)参加运算...
  • C++ 复数运算符重载

    2020-12-30 21:06:59
    定义一个复数类Complex,重载运算符"*","<<",">>",使之能够用于复数的乘法、输入、输出 main函数中定义复数对象c1,c2,c3,c4,实现 cin>>c1>>c2>>c3; c4=c1*c2*c3; cout<<c4<...
  • 复数的运算符重载1

    千次阅读 2013-04-21 23:33:25
    * 问题描述: 运用运算符重载实现复数的加减乘除 * 程序输出: * 问题分析: * 算法设计:略 */ #include using namespace std; class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double...
  • 文章目录一、运算符重载二、复数类CComplex三、输出运算符重载 一、运算符重载 ...运算符重载实质上是函数的重载,重载运算符的函数一般格式如下: 函数类型 operator 运算符名称(形参表) {对运算符的重...
  • Problem J: C++复数运算符重载(+与 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 755 Solved: 466 [Submit][Status][Web Board] Description 定义一个复数类Complex,重载运算符“+”,使之能用于...
  • 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算与输出操作。(1)参加运算两个运算量可以都是类对象,也可以其中有一个是实数,顺序任意。例如,c1+c2,d+c1,c1+d均合法(设d为实数,c1,c2为复数...
  • *【项目1】实现复数类中的运算符重载 * 程序版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.cpp * 攻城菜鸟:蛋蛋 * 完成日期: 2013年 4 月 ...
  • (2)定义Complex类中的>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。 #include using namespace std; class Complex { public:  Complex()  

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,667
精华内容 666
关键字:

复数运算符的重载