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;
    }
  • 相关阅读:
    java桌面应用开发可视化工具windowbuilder详细使用方法
    Java 编程思想(第四版)
    锚点
    IT资源
    JDK安装与环境变量配置
    Maven的安装及配置
    jsp 文件导出到Excel
    linux 命令
    java web 登录功能相关资料
    IBM SPSS Modeler 预测建模基础(一)
  • 原文地址:https://www.cnblogs.com/zhengkang/p/5712416.html
Copyright © 2011-2022 走看看