美文网首页
上交OJ-1011. 复数类

上交OJ-1011. 复数类

作者: code猪 | 来源:发表于2018-05-17 17:15 被阅读24次

1011. 复数类


题目描述

写一个复数类,实现以下程序主函数中所需要的功能。

#include <iostream>
using namespace std;

class MyComplex
{
private:
  double x,y;
public:
  /* Implementation of MyComplex */
};

int main()
{
  MyComplex z1;
  MyComplex z2;

  cin >> z1 >> z2;

  cout << z1 + z2 <<endl;
  cout << z1 - z2 <<endl;
  cout << z1 * z2 <<endl;
  cout << z1 / z2 <<endl;
  cout << (z1 += z2) <<endl;
  cout << (z1 -= z2) <<endl;
  cout << (z1 *= z2) <<endl;
  cout << (z1 /= z2) <<endl;

  return 0;
}

输入格式

输入包括两行,第一行是两个整数a, b(0<|a|+1,|b|<10001),表示复数a+bi。

第二行是两个整数c, d(0<|c|+1,|d|<10001),表示复数c+di。输入数据保证不出现除以0的情况。

输出格式

输出包括八行,对应所给程序中的输出。注意输出浮点数保留2位小数。

Sample Input 1

3 6
-3 5

Sample Output 1

0.00 11.00
6.00 1.00
-39.00 -3.00
0.62 -0.97
0.00 11.00
3.00 6.00
-39.00 -3.00
3.00 6.00

Sample Input 2

5 9
5 -9

Sample Output 2

10.00 0.00
0.00 18.00
106.00 0.00
-0.53 0.85
10.00 0.00
5.00 9.00
106.00 0.00
5.00 9.00

分析

这是对运算符和输入输出重载的题目。

#include <iostream>
#include <iomanip>
using namespace std;

class MyComplex
{
private:
  double x,y;
public:
  /* Implementation of MyComplex */
  MyComplex(){x=0; y=0;}
  MyComplex(double r,double i){x=r; y=i;}
  
  friend ostream& operator << (ostream&, MyComplex);
  friend istream& operator >> (istream&, MyComplex&);
  
  MyComplex operator + (const MyComplex &c2);
  MyComplex operator - (const MyComplex &c2);
  MyComplex operator * (const MyComplex &c2);
  MyComplex operator / (const MyComplex &c2);
  MyComplex& operator += (const MyComplex &c2);
  MyComplex& operator -= (const MyComplex &c2);
  MyComplex& operator *= (const MyComplex &c2);
  MyComplex& operator /= (const MyComplex &c2);
};

ostream& operator << (ostream& output, MyComplex c) //定义运算符“<<”重载函数
{
  output<<fixed<<setprecision(2)<<c.x<<" "<<c.y;
  return output;
}

istream& operator >> (istream& input, MyComplex& c) //定义运算符“<<”重载函数
{
  input>>c.x>>c.y;
  return input;
}

MyComplex MyComplex::operator + (const MyComplex &c2)//定义运算符“+”重载函数
{
  return MyComplex(x+c2.x, y+c2.y);
}

MyComplex MyComplex::operator - (const MyComplex &c2)//定义运算符“+”重载函数
{
  return MyComplex(x-c2.x, y-c2.y);
}

MyComplex MyComplex::operator * (const MyComplex &c2)//定义运算符“+”重载函数
{
  return MyComplex(x*c2.x-y*c2.y, x*c2.y+y*c2.x);
}

MyComplex MyComplex::operator / (const MyComplex &c2)//定义运算符“+”重载函数
{
  return MyComplex((x*c2.x+y*c2.y)/(c2.x*c2.x+c2.y*c2.y), (-x*c2.y+y*c2.x)/(c2.x*c2.x+c2.y*c2.y));
}

MyComplex& MyComplex::operator += (const MyComplex &c2)//定义运算符“+”重载函数
{
  *this = *this + c2;
  return *this;
}

MyComplex& MyComplex::operator -= (const MyComplex &c2)//定义运算符“+”重载函数
{
  *this = *this - c2;
  return *this;
}

MyComplex& MyComplex::operator *= (const MyComplex &c2)//定义运算符“+”重载函数
{
  *this = *this * c2;
  return *this;
}

MyComplex& MyComplex::operator /= (const MyComplex &c2)//定义运算符“+”重载函数
{
  *this = *this / c2;
  return *this;
}

int main()
{
  MyComplex z1;
  MyComplex z2;

  cin >> z1 >> z2;

  cout << z1 + z2 <<endl;
  cout << z1 - z2 <<endl;
  cout << z1 * z2 <<endl;
  cout << z1 / z2 <<endl;
  cout << (z1 += z2) <<endl;
  cout << (z1 -= z2) <<endl;
  cout << (z1 *= z2) <<endl;
  cout << (z1 /= z2) <<endl;

  return 0;
}

相关文章

  • 上交OJ-1011. 复数类

    1011. 复数类 题目描述 写一个复数类,实现以下程序主函数中所需要的功能。 输入格式 输入包括两行,第一行是两...

  • 英语如何表达一类名词呢?

    英文表达一类: 名词表达分四类: a +名词单数, the +名词单数, 名词复数,the +名词复数 加a表泛指...

  • 复数

    //复数类 class complex { var real:Int //实部 var virtual:...

  • 7. Elequent Model 起步

    生成Model 上面注意规范:通常model类用单数,controller类用复数 app\Article.php...

  • C++ 实现复数类

    一个复数类 测试程序 构造函数的名字要和类的名字相同,每个类必须有构造函数,同时还要有对应的析构函数。const使...

  • 2017-12-11

    【上交所:新蓝筹行动可能诞生类BAT企业】12月11日讯,上交所副总经理徐毅林表示,上交所打造新蓝筹市场,就是要把...

  • Boolan_c++第1周笔记

    一/ 二/ 头文件与类的声明 1.数据和函数包含到一起------类---创建对象 complex(复数) 创建对...

  • 项目:mySTL

    黑体部分可尝试自行实现 1. 复数类模板 complex<>include/Complex.hTest/compl...

  • 浅析Android中的allowBackup属性

    allowBackup = true,允许用户备份或者恢复数据。在金融类或者通讯类app中可能会导致重要信息被窃取...

  • 第十六章 string类和标准模板库(7)其他库

    (七)其他库 c++还提供了其他一些类库,比如头文件为复数运算提供了类模板complex,包含用...

网友评论

      本文标题:上交OJ-1011. 复数类

      本文链接:https://www.haomeiwen.com/subject/qjfidftx.html