zoukankan      html  css  js  c++  java
  • YTU 2535: C++复数运算符重载(+与<<)

    2535: C++复数运算符重载(+与<<)

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 867  解决: 532

    题目描述

    定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算与输出操作。
    (1)参加运算的两个运算量可以都是类对象,也可以其中有一个是实数,顺序任意。例如,c1+c2,d+c1,c1+d均合法(设d为实数,c1,c2为复数)。
    (2)输出的算数,在复数两端加上括号,实部和虚部均保留两位小数,如(8.23+2.00i)、(7.45-3.40i)、(-3.25+4.13i)等。
    编写程序,分别求两个复数之和、整数和复数之和,并且输出。

    请在下面的程序段基础上完成设计:
    #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 ********************


    //********************* 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;
    }

    输入

    一个复数的实部和虚部,另一个复数的实部和虚部 
    一个复数的实部和虚部,一个实数 
    一个实数,一个复数的实部和虚部

    输出

    两个复数之和、复数和实数之和,实数和复数之和。

    样例输入

    3 4 5 -10
    3 4 5
    5 3 4

    样例输出

    c1+c2=(8.00-6.00i)
    c1+d=(8.00+4.00i)
    d+c1=(8.00+4.00i)

    提示

    只提交自己定义的函数部分,控制输出小数点后两位,用 setiosflags(ios::fixed);和setprecision(2);控制



    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #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;
    };
    Complex Complex::operator+(double &x)
    {
        Complex c;
        c.real=x+real;
        c.imag=imag;
        return c;
    }
    Complex Complex::operator+(Complex &c1)
    {
        Complex c;
        c.real=real+c1.real;
        c.imag=imag+c1.imag;
        return c;
    }
    ostream& operator << (ostream& output, const Complex& c)
    {
        output<<"("<<setiosflags(ios::fixed)<<setprecision(2)<<c.real;
        output<<setiosflags(ios::fixed)<<setprecision(2);
        if(c.imag<0)cout<<c.imag<<"i)"<<endl;
        else cout<<"+"<<c.imag<<"i)"<<endl;
        return output;
    }
    Complex operator+(double &x,Complex &c1)
    {
        return Complex(x+c1.real,c1.imag);
    }
    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;
    }

  • 相关阅读:
    Springboot 之 自定义配置文件及读取配置文件
    SQLSERVER系统视图 sql server系统表详细说明
    MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义
    使用Ecplise git commit时出现"There are no stages files"
    maven添加sqlserver的jdbc驱动包
    java将XML文档转换成json格式数据
    java将XML文档转换成json格式数据
    cannot be resolved. It is indirectly referenced from required .class files
    org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-12 12:01:01': not a valid representation (error: Can not parse date "2012-12-
    @Autowired注解和静态方法 NoClassDefFoundError could not initialize class 静态类
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989488.html
Copyright © 2011-2022 走看看