zoukankan      html  css  js  c++  java
  • complex类定义

    关于complex类的定义:

    #include<iostream>
    using namespace std;
    class complex
    {
        public:
            complex()
            {real=0;im=0;}
            complex(float a,float b):real(a),im(b){}
            friend complex operator+(complex& a,complex& b);
            friend complex operator-(complex& a,complex& b);
            friend complex operator*(complex& a,complex& b);
            friend complex operator/(complex& a,complex& b);
            friend istream& operator>> (istream&,complex&);
            friend ostream& operator<< (ostream& output,complex& a);
            void display();
    
        private:
            float real;
            float im;
    };
    
    void complex::display()
    {
    
        if(real<0.1&&real>-0.1)
            real = 0;
        if(im<0.1&&im>-0.1)
            im=0;   
        if(im==0)
            {   cout.setf(ios::fixed);
                cout.precision(1);
                cout<<real;}
        else if(real==0.0&&im!=0)
            {
                cout.setf(ios::fixed);
                cout.precision(1);
                cout<<im<<'i';
            }
        else
            {
                if(im>0)
                {cout.setf(ios::fixed);
                cout.precision(1);
    
                cout<<real<<'+'<<im<<'i';}
                else
                {
                cout.setf(ios::fixed);
                cout.precision(1);
    
                cout<<real<<im<<'i';
                }   
            }
    }
    complex operator+(complex& a,complex& b)
    {
        complex ans;
        ans.real = a.real+b.real;
        ans.im = a.im+b.im; 
        return ans;
    }
    complex operator-(complex& a,complex& b)
    {
        complex ans;
        ans.real = a.real-b.real;
        ans.im = a.im-b.im; 
        return ans;
    }
    complex operator*(complex& a,complex& b)
    {
        complex ans;
        ans.real = a.real*b.real-a.im*b.im;
        ans.im = a.real*b.im+a.im*b.real;   
        return ans;
    }
    complex operator/(complex& a,complex& b)
    {
        complex ans;
        ans.real = (a.real*b.real+a.im*b.im)/(b.real*b.real+b.im*b.im);
        ans.im =  (a.im*b.real-a.real*b.im)/(b.real*b.real+b.im*b.im);
        return ans;
    }
    istream& operator>> (istream& input,complex& a)
    {
        input>>a.real>>a.im;
        return input;
    }
    ostream& operator<< (ostream& output,complex& a)
    {
        output<<'('<<a.real<<','<<a.im<<')';
        return output;
    }
    int main()
    {
    
        complex a,b,ans1,ans2,ans3,ans4;
        cin>>a>>b;
        ans1=a+b;
        ans2=a-b;
        ans3=a*b;
        ans4=a/b;
    
        return 0;
    }
  • 相关阅读:
    HANDLER进行堆叠注入
    CDUT第一届信安大挑战Re-wp
    Nu1LBook第一章wp
    Linux和VMWare
    [MRCTF]Xor
    IDA 调整栈帧 (411A04:positive sp value has been found)
    [BUU] 简单注册器
    2020年“安洵杯”四川省大学生信息安全技术大赛 部分WRITEUP
    关于我的pip不听话,总是说【Fatal error in launcher: Unable to create process using '"'】这件事
    C语言的PELode编写记录
  • 原文地址:https://www.cnblogs.com/zhengkang/p/5712416.html
Copyright © 2011-2022 走看看