第十五周oj刷题——Problem N: C++习题 复数类--重载运算符3+

Description

请编写程序,处理一个复数与一个double数相加的运算,结果存放在一个double型的变量d1中,输出d1的值,再以复数形式输出此值。定义Complex(复数)类,在成员函数中包含重载类型转换运算符:

operator double() { return real; }

Input

一个复数与一个double数

Output

d1的值和复数形式的此值

Sample Input

3 4
2.5

Sample Output

d1=5.50
c2=(5.50, 0.00)
 
/* All rights reserved.
 * 文件名称:test.cpp
 * 作者:陈丹妮
 * 完成日期:2015年 6 月 24 日
 * 版 本 号:v1.0
 */  

#include <iostream>
#include <iomanip>
using namespace std;
class Complex
{
public:
    Complex();
    Complex(double r);
    Complex(double r,double i);
    operator double();
    void display();
private:
    double real;
    double imag;
};
Complex::Complex(){}
Complex::Complex(double r)
{
    real=r;
}
Complex::Complex(double r,double i)
{
    real=r;
    imag=i;
}
Complex::operator double()
{
    return real;
}
void Complex::display()
{
    cout<<"("<<real<<", "<<imag<<")";
}
int main()
{
    cout<<setiosflags(ios::fixed);
    cout<<setprecision(2);
    double real,imag;
    cin>>real>>imag;
    Complex c1(real,imag);
    double d1;
    cin>>d1;
    d1=d1+c1;
    cout<<"d1="<<d1<<endl;
    Complex c2=Complex(d1);
    cout<<"c2=";
    c2.display();
    return 0;
}
 
学习心得:这道题还是比较好写的,但是就是输出时的格式得注意,格式也是一个大问题,继续努力,最近都是自己在解决额问题,这样很好,继续努力咯!!!
时间: 2024-10-12 08:35:23

第十五周oj刷题——Problem N: C++习题 复数类--重载运算符3+的相关文章

第十五周oj刷题——Problem K: C++习题 复数类--重载运算符+,-,*,/

Description 定义一个复数类Complex,重载运算符"+","-","*","/",使之能用于复数的加.减.乘.除.运算符重载函数作为Complex类的成员函数.编写程序,分别求两个复数之和.差.积和商. Input 两个复数 Output 两个复数之和.差.积和商 Sample Input 3 4 5 -10 Sample Output c1+c2=(8.00,-6.00i) c1-c2=(-2.00,14.00

第十五周oj刷题——Problem L: C++习题 复数类--重载运算符2+

Description 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算.参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意.例如,c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2为复数).编写程序,分别求两个复数之和.整数和复数之和. Input 两个复数 一个复数和一个整数 一个整数和一个复数 Output 两个复数之和.复数和整数之和,整数和复数之和. Sample Input 3 4 5 -10 3 4 5 5 3 4 Sa

第十五周oj刷题——Problem M: C++习题 矩阵求和--重载运算符

Description 有两个矩阵a和b,均为2行3列.求两个矩阵之和.重载运算符"+",使之能用于矩阵相加(如c=a+b). 重载流插入运算符"<<"和流提取运算符">>".使之能用于该矩阵的输入和输出. Input 两个2行3列矩阵 Output 矩阵之和 Sample Input 1 2 3 4 5 6 7 8 9 1 2 3 Sample Output 8 10 12 5 7 9 /* All rights res

第十五周oj刷题——Problem I: C++ 习题 比较大小-类模板

Description 声明一个类模板,利用它分别实现两个整数.浮点数和字符的比较,求出大数和小数.说明:在类模板外定义各成员函数. Input 输入两个整数.两个浮点数和两个字符 Output 从大到小输出两个整数.两个浮点数和两个字符 Sample Input 3 7 45.78 93.6 a A Sample Output 7 3 93.60 45.78 a A   /* All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年

第十五周oj刷题——Problem E: C++习题 对象数组求最大值

Description 建立一个对象数组,内放n(<10)个学生的数据(学号.成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出n个学生中成绩最高者,并输出其学号. Input n和n个学生的学号.成绩 Output 成绩最高者的学号和成绩 Sample Input 5 101 78.5 102 85.5 103 98.5 104 100.0 105 95.5 Sample Output 104 100.00 /* All rights reserved. * 文件名称:

第十五周oj刷题——Problem F: C++习题 商品销售

Description 商店销售某一商品,每天公布统一的折扣(discount).同时允许销售人员在销售时灵活掌握售价(price),在此基础上,一次购10件以上者,还可以享受9.8折优惠.现已知当天m个销货员销售情况为 销货员号(num)            销货件数(quantity)       销货单价(price) 101                                              5                            23.5 10

第十五周oj刷题——Problem D: C++习题 对象数组输入与输出

Description 建立一个对象数组,内放n(n<10)个学生的数据(学号.成绩),用指针指向数组首元素,输出第奇数(1,3,5,7)个学生的数据. Input n和n个学生的学号.成绩 Output 奇数学生的数据 Sample Input 5 101 78.5 102 85.5 103 98.5 104 100.0 105 95.5 Sample Output 101 78.50 103 98.50 105 95.50 /* All rights reserved. * 文件名称:tes

第十五周oj刷题—— Problem C: 矩形类中运算符重载【C++】

Description 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. 两个矩形相加的规则是:决定矩形的对应坐标分别相加,如 左下角(1,2),右上角(3,4)的矩形,与 左下角(2,3),右上角(4,5)的矩形相加,得到的矩形是 左下角(3,5),右上角(7,9)的矩形. 这个规则没有几何意义,就这么定义好了. 输出面积的功能通过重载"<<&quo

第十五周oj刷题——Problem B: 矩形类定义【C++】

Description 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. Input 四个数,分别表示矩形左下角和右上角顶点的坐标,如输入3.7 0.4 6.5 4.9,代表左下角坐标为(3.7, 0.4),右上角坐标为(6.5, 4.9). Output 输出一共有3行(请参考提示(hint)中的main函数): 第一行:由输入的坐标确定的矩形对象p1的面积 第二行:由对象复