zoukankan      html  css  js  c++  java
  • C++习题 复数类--重载运算符+,-,*,/

    Description

    定义一个复数类Complex,重载运算符“+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编写程序,分别求两个复数之和、差、积和商。

    Input

    两个复数

    Output

    两个复数之和、差、积和商

    Sample Input

    3 4
    5 -10
    

    Sample Output

    c1+c2=(8.00,-6.00i)
    c1-c2=(-2.00,14.00i)
    c1*c2=(55.00,-10.00i)
    c1/c2=(-0.20,0.40i)
    
    /* C++代码 */
    
    #include <iostream>
    
    #include <iomanip>
    
    using namespace std;
    
    class Complex
    
    {
    
    public:
    
        Complex();
    
        Complex(double r,double i);
    
        Complex operator+(Complex &c2);
    
        Complex operator-(Complex &c2);
    
        Complex operator*(Complex &c2);
    
        Complex operator/(Complex &c2);
    
        void display();
    
    private:
    
        double real;
    
        double imag;
    
    };
    
    Complex ::Complex()
    {return ;}
    Complex::Complex(double r,double i)
    {real=r;imag=i;}
    Complex Complex:: operator+(Complex &c2)
    {return Complex(real+c2.real,imag+c2.imag);}
    
        Complex Complex::operator-(Complex &c2)
    {return Complex(real-c2.real,imag-c2.imag);}
    
        Complex Complex::operator*(Complex &c2)
    		{return Complex(real*c2.real-imag*c2.imag,real*c2.imag+imag*c2.real);}
    
        Complex Complex::operator/(Complex &c2)
    	{double x;
    	x=c2.imag*c2.imag+c2.real*c2.real;
    	return Complex((real*c2.real+imag*c2.imag)/x,(-real*c2.imag+imag*c2.real)/x);}
    	void	Complex::display()
    	{cout<<'('<<real<<','<<imag<<'i'<<')'<<endl;}
    
    
    
    int main()
    
    {
    
        double real,imag;
    
        cin>>real>>imag;
    
        Complex c1(real,imag);
    
        cin>>real>>imag;
    
        Complex c2(real,imag);
    
        cout<<setiosflags(ios::fixed);
    
        cout<<setprecision(2);
    
        Complex 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;
    
    }
    

  • 相关阅读:
    递归算法
    抽象类(abstract class)和接口(interface)
    静态变量和实例变量
    java 工厂化生产
    win10安装使用ffmpeg+python中使用ffmpy
    C++ Concurrency in Action 读书笔记三:并发操作的同步
    C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据
    C++ Concurrency in Action 读书笔记一:thread的管理
    C++正则表达式 <regex>
    CMake使用Boost
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3766928.html
Copyright © 2011-2022 走看看