• 复数四则及比较运算


    #include <iostream.h>

    #include <cmath>

    class complex

    {public:

         friend istream & operator >> (istream & ,complex &);  //提取运算符重载友元函数声明。

          

         friend ostream & operator << (ostream &,complex &);  //插入运算符重载友元函数声明。

          

         complex operator + (complex &);  //运算符“+”重载函数声明。

         complex operator - (complex &);  //运算符“-”重载函数声明。

          

         complex operator * (complex &);  //运算符“*”重载函数声明。

         complex operator / (complex &);  //运算符“/”重载函数声明。

          

         void bijiao(complex &,complex &);  // 比较函数bijiao声明。

    private:

           double a;  //定义双精度型私有数据成员a 变量。

           double b;   //定义双精度型私有数据成员a 变量。

           };

    complex complex::operator + (complex &t)  //类外定义运算符“+”重载函数。

           {   //复数相加实现过程。

                t.a=a+t.a;

                t.b=b+t.b;

           return t;

           }

    complex complex::operator - (complex &t)  //类外定义运算符“-”重载函数。

           {  //复数相减实现过程。

                t.a=a-t.a;

                t.b=b-t.b;

           return t;

           }

    complex complex::operator * (complex &t)  //类外定义运算符“*”重载函数。

           {  //复数相乘实现过程。

                double s;

                s=a*t.b+t.a*b;

                   t.a=a*t.a-b*t.b;

                t.b=s;

           return t;

           }

          

    complex complex::operator / (complex &t)  //类外定义运算符“/”重载函数。

           {  //复数相除实现过程。

                double s,v;

                v=-a*t.b+b*t.a;

             s=t.a*t.a+t.b*t.b;

                t.a=(a*t.a+b*t.b)/s;

                t.b=v;

           return t;

           }

          

    void complex::bijiao(complex &z1,complex &z2)  //类外定义bijiao函数。

           {  //复数比较实现过程。

                  double d1,d2;

                  d1=pow(z1.a*z1.a+z1.b*z1.b,0.5);

                  d2=pow(z2.a*z2.a+z2.b*z2.b,0.5);

                  if(d1>d2) cout<<"|z1|>|z2|"<<endl;

                  if(d1<d2) cout<<"|z1|<|z2|"<<endl;

                  if(d1==d2) cout<<"|z1|=|z2|"<<endl;

           }           

    istream & operator >> (istream &input ,complex &t)  //定义提取运算符重载函数。

       {  //输入对象实现过程。

    input>>t.a>>t.b;

         return input;

       }

      

    ostream & operator << (ostream &output ,complex &t)

       {  //输出对象实现过程。

    if(t.b<0) output<<t.a<<t.b<<"i"<<endl;

               if(t.b>=0)  output<<t.a<<"+"<<t.b<<"i"<<endl;

         return output;

       }

    int main()  //定义主函数。

     {

          complex z1,z2,z3;  //定义complex类的z1,z2,z3对象。

          char str;

          cout<<"计算两个复数的四则运算及比较运算:Z1=a+bi,Z2=c+di;"<<endl;

          cout<<"请输入: (a)_(b)_(运算符)_(c)_(d);()里写数字。"<<endl;

    cout<<"“运算符”包括“+,-,*,/,?”,“_”为空格。"<<endl;

    while(cin>>z1>>str>>z2)

           {

              if(str=='+')  {z3=z1+z2;cout<<"z1+z2="<<z3;}

              if(str=='-')  {z3=z1-z2;cout<<"z1-z2="<<z3;}

              if(str=='*')  {z3=z1*z2;cout<<"z1*z2="<<z3;}

           if(str=='/')  {z3=z1/z2;cout<<"z1/z2="<<z3;}

           if(str=='?') z3.bijiao(z1,z2);

         }

       return 0;   

     }

  • 相关阅读:
    关于 广义相对论 引力红移 的 一个 疑问
    随便 说说 非欧几何
    收录 几篇 关于 电磁波 麦克斯韦方程 的 文章
    从 广义相对论 看到 “数学陷阱”
    对 广义相对论 的 评价
    收录 几篇 关于 广义相对论 水星进动 的 文章
    关于 1 和 0.999999……
    我对 量子力学 提出了一个 修正,名为 “K氏修正”
    随便记录点 在 贴吧 里 讨论 广义相对论 的 想法
    C#程序员初学Python
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4567184.html
Copyright © 2020-2023  润新知