2441: C++习题 复数类--重载运算符2+

时间限制: 1 Sec  内存限制: 128 MB

提交: 847  解决: 618

题目描述

定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如,c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2为复数)。编写程序,分别求两个复数之和、整数和复数之和。

输入

两个复数 

一个复数和一个整数 

一个整数和一个复数

输出

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

样例输入

3 4 5 -10
3 4 5
5 3 4

样例输出

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

提示

前置代码及类型定义已给定如下,提交时不需要包含,会自动添加到程序前部







/* C++代码 */



#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 &c2);



    Complex operator+(int &i);



    friend Complex operator+(int&,Complex &);



    void display();



private:



    double real;



    double imag;



};











主函数已给定如下,提交时不需要包含,会自动添加到程序尾部







/* C++代码 */







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();



    int i;



    cin>>real>>imag;



    cin>>i;



    c3=Complex(real,imag)+i;



    cout<<"c1+i=";



    c3.display();



    cin>>i;



    cin>>real>>imag;



    c1=Complex(real,imag);



    c3=i+c1;



    cout<<"i+c1=";



    c3.display();



    return 0;



}

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

#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 &c2);
Complex operator+(int &i);
friend Complex operator+(int&,Complex &);
void display();
private:
double real;
double imag;
};
Complex Complex:: operator +(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
Complex Complex:: operator +(int &i)
{
Complex c;
c.real=real+i;
c.imag=imag;
return c; }
Complex operator + (int &i,Complex &c2)
{
Complex c;
c.real=i+c2.real;
c.imag=c2.imag;
return c;
}
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();
int i;
cin>>real>>imag;
cin>>i;
c3=Complex(real,imag)+i;
cout<<"c1+i=";
c3.display();
cin>>i;
cin>>real>>imag;
c1=Complex(real,imag);
c3=i+c1;
cout<<"i+c1=";
c3.display();
return 0;
}

YTU 2441: C++习题 复数类--重载运算符2+的更多相关文章

  1. YTU 2443: C++习题 复数类--重载运算符3+

    2443: C++习题 复数类--重载运算符3+ 时间限制: 1 Sec  内存限制: 128 MB 提交: 1368  解决: 733 题目描述 请编写程序,处理一个复数与一个double数相加的运 ...

  2. YTU 2440: C++习题 复数类--重载运算符+,-,*,/

    2440: C++习题 复数类--重载运算符+,-,*,/ 时间限制: 1 Sec  内存限制: 128 MB 提交: 1189  解决: 774 题目描述 定义一个复数类Complex,重载运算符& ...

  3. YTU 2439: C++习题 复数类--重载运算符+

    2439: C++习题 复数类--重载运算符+ 时间限制: 1 Sec  内存限制: 128 MB 提交: 1022  解决: 669 题目描述 定义一个复数类Complex,重载运算符"+ ...

  4. C++习题 复数类--重载运算符2+

    Description 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意.例如,c1+ ...

  5. C++习题 复数类--重载运算符+

    Description 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.将运算符函数重载为非成员.非友元的普通函数.编写程序,求两个复数之和. Input ...

  6. YTU 2442: C++习题 矩阵求和--重载运算符

    2442: C++习题 矩阵求和--重载运算符 时间限制: 1 Sec  内存限制: 128 MB 提交: 1457  解决: 565 题目描述 有两个矩阵a和b,均为2行3列.求两个矩阵之和.重载运 ...

  7. sdut 4-1 复数类的运算符重载

    4-1 复数类的运算符重载 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握成员运算符重载及友元运算符重载 要求定义一个复数类.重 ...

  8. C++重载运算符练习--对people类重载“= =”运算符和“=”运算符

    题目描述 对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等:“=”运算符实现people类对象的赋值操作. 代码如下 #include&l ...

  9. YTU 2617: B C++时间类的运算符重载

    2617: B C++时间类的运算符重载 时间限制: 1 Sec  内存限制: 128 MB 提交: 284  解决: 108 题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为 ...

随机推荐

  1. NYOJ-481平衡字符串

    平衡字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给你一定长度的字符串.字符串中只包含26个小写字母,首先我们把字母a-z分为2堆(a--m)和(n--z),判 ...

  2. hdu 4801模拟题

    /* 模拟: 注意:实质上一次魔方的一半要变化 用c++超内存 用g++过了 */ #include<stdio.h> #include<string.h> #include& ...

  3. [Usaco2006 Nov] Fence Repair 切割木板

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1356  Solved: 714[Submit][Status][Discuss] Description ...

  4. 【HDOJ6299】Balanced Sequence(贪心)

    题意:给定n个只有左右括号的序列,要求将它们重新排序使得匹配的括号对数最大. n<=1e5 s[i]<=1e5 sum s[i]<=5e6 思路: 先把每个串内部的匹配数量减去,剩下 ...

  5. springmvc和dubbo整合时,不配置spring listener报错找不到/WEB-INF/config/applicationContext.xml

    原因,dubbo2.6.3版本开始就需要先在listener中配置容器,否则报错,2.6.2版本则不需要

  6. ajax请求数据之后在已经有的数据前面打对勾的方法

    今天遇到这么一个需求: 选择一部分人,在点击确定的时候添加到对应的div中,也就是添加到对应的表单下面,当再次查询的时候需要在已经选过的人的复选框前面打伤对勾.

  7. 建设DevOps统一运维监控平台,先从日志监控说起

    https://blog.csdn.net/jessise_zhan/article/details/80129915 https://blog.csdn.net/JThink_/article/de ...

  8. js正则匹配身份证号 有坑

    // 不能加g,每次匹配会以lastIndex为起始位去查找 // 若加g,匹配到会用最后一位的index去改变lastIndex,没有匹配到则会把lastIndex重置为0 // 不加g,lastI ...

  9. [Bzoj1022][SHOI2008]小约翰的游戏John(博弈论)

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2976  Solved: 1894[Submit] ...

  10. Atom编辑Markdown文件保存后行尾的空格自动消失的问题解决

    Markdown文件的行尾增加两个空格表示一行结束需要换行. 但保存文件后,行尾的空格自动消失,导致不换行. 解决方法: 1.[Edit]->[Preferences]->[Package ...