using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ImaginaryNumber   //  本来写虚数的,一不小心写成完整的复数了
{class Complex   //  虚数类{private double Real;    //  实部private double Img;     //  虚部public double GetReal   // 获取实部{get { return Real; }set { Real = value; }}public double GetImg    // 获取虚部{get { return Img; }set { Img = value; }}public Complex() // 构造函数{Real = Img = 0;}public Complex(double real, double img) // 重载构造函数{Real = real;Img = img;}public void Print() // 输出虚数,符合书写习惯,且四舍五入保留小数点后4位数字{if (Real == 0 && Img == 0)      // 为零Console.WriteLine("0");else if (Real == 0)             // 只有虚部,纯虚数Console.WriteLine("{0}i", (double)Math.Round((double)Img, 4));else if (Img == 0)              // 只有实部,实数Console.WriteLine("{0}", (double)Math.Round((double)Real, 4));else if (Img < 0)               // 虚部为负Console.WriteLine("{0} - {1}i", (double)Math.Round((double)Real, 4), (double)Math.Round((double)-Img, 4));else                            // 标准的复数 Console.WriteLine("{0} + {1}i", (double)Math.Round((double)Real, 4), (double)Math.Round((double)Img, 4));}public static Complex operator +(Complex c1, Complex c2)   // 重载加号{return new Complex(c1.Real + c2.Real, c1.Img + c2.Img);}public static Complex operator -(Complex c)    // 重载取反符号{return new Complex(-c.Real, -c.Img);}public static Complex operator -(Complex c1, Complex c2)   // 重载减号{return new Complex(c1.Real - c2.Real, c1.Img - c2.Img);}public static Complex operator *(Complex c1, Complex c2)   // 重载乘号{return new Complex(c1.Real * c2.Real - c1.Img * c2.Img, c1.Real * c2.Img + c1.Img * c2.Real);}public static Complex operator /(Complex c1, Complex c2)   //  重载除号{return new Complex((c1.Real * c2.Real + c1.Img * c2.Img) * 1.0 / (c2.Real * c2.Real + c2.Img * c2.Img), (c1.Img * c2.Real - c1.Real * c2.Img) * 1.0 / (c2.Real * c2.Real + c2.Img * c2.Img));}}class Program{static void Main(string[] args){// 随意测试Complex c1 = new Complex();Complex c2 = new Complex(5, 5);Complex c3 = new Complex(0, -2.3);Complex c4 = new Complex(3, 0);c4 = -c4;Console.Write("c1 = "); c1.Print();Console.Write("c2 = "); c2.Print();Console.Write("c3 = "); c3.Print();Console.Write("c4 = "); c4.Print();c1 = c2 + c3;c2 = c3 / c4;c3 = c1 * c2;c4 = c2 - c3;Console.Write("c1 = "); c1.Print();Console.Write("c2 = "); c2.Print();Console.Write("c3 = "); c3.Print();Console.Write("c4 = "); c4.Print();Console.ReadLine();}}
}

转载于:https://www.cnblogs.com/Genesis2018/p/9079826.html

复数类完整实现 + 四则运算符重载相关推荐

  1. 设计复数类Complex,实现运算符重载。

    设计复数类Complex,实现运算符重载. 要求: (1)重载运算符"+"和"*",使之分别能用于复数相加和相乘.(30分) (2)重载运算符"< ...

  2. [YTU]_2354 (实现复数类中的加运算符重载【C++运算符重载】)

    题目描述 int家有i1和i2弟兄俩,小手一拉i1+i2,加起来了:double家有d1和d2姐妹俩,小手也一拉,d1+d2,也加起来了.C++村子里来了复数(Complex)一家子,也有俩兄弟c1和 ...

  3. [YTU]_2354 (H 实现复数类中的加运算符重载【C++运算符重载】)

    #include <iostream> using namespace std; class Complex { public:Complex();//此函数必须定义Complex(dou ...

  4. C++学习笔记 - 阶段三:C++核心编程 - Chapter7:类和对象-C++运算符重载

    阶段三:C++核心编程 Chapter7:类和对象-C++运算符重载 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 7.1 加号运算符重载 作用:实现两个自定义数 ...

  5. 从零开始学C++之运算符重载(三):完善String类([]、 +、 += 运算符重载)、和运算符重载...

    在前面文章中使用过几次String类的例子,现在多重载几个运算符,更加完善一下,并且重载流类运算符. []运算符重载 +运算符重载 +=运算符重载 <<运算符重载 >>运算符重 ...

  6. C++_类和对象_C++运算符重载_函数调用运算符重载_---C++语言工作笔记060

    然后我们再来看函数调用运算符重载, 其实这个,重载后的,函数调用运算符有点像,仿函数,什么是仿函数,一会我们再说 我们去写一个MyPrint类 里面重载函数调用运算符,可以看到函数调用运算符的重载的写 ...

  7. C++ 学习 ::【基础篇:17】:C++ 类与对象:运算符重载介绍、运算符重载函数(类内与类外区别)写法及简单设计实现

    本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇.STL 篇.高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C++的三大特 ...

  8. C++_类和对象_C++运算符重载_加号运算符重载_实现两个对象相加_对象和int类型相加_通过成员函数重载+号_全局函数重载+号_以及重载_运算符重载函数实现---C++语言工作笔记055

    然后我们再来看,运算符的重载,首先我们来看加号的运算符的重载. 这个的作用是很明显的,比如我们有两个Person对象,p1,p2,如果我们想 p3 = p1+p2能可以嘛,不可以对吧,因为系统给我们提 ...

  9. C++_类和对象_C++运算符重载_关系运算符重载_对== !=重载实现对象的对比_---C++语言工作笔记059

    然后我们再来看关系运算符的重载, 关系运算符就是下面这种,用来判断的符号 > < = 可以看到,普通的int类型,系统是知道怎么去判断相等的 但是如果我们自己写的类,比如上面 p1 == ...

最新文章

  1. Silverlight开发中遇到的几个小问题
  2. AngularJs学习笔记--expression
  3. 关于jetty的那些奇葩问题
  4. 认识python编程环境_认识Python和安装Python环境
  5. python rgb led控件_Raspberry Pi-用树莓派实现RGB LED的颜色控制——Python版本-电路城论坛 - 电子工程师学习交流园地...
  6. 小米网关控制空调伴侣_小爱同学怎么控制灯?
  7. JS-函数(匿名-自调用-回调)-递归
  8. Spring-beans-BeanDefinitionReader
  9. LeetCode(235)——二叉搜索树的最近公共祖先(JavaScript)
  10. PAT乙级 1033 旧键盘打字 (20 分)
  11. 使用递归解决斐波那契数列的性能问题
  12. 如何使用JavaScript从字符串中删除空格?
  13. 绿色版Mysql数据库快速搭建
  14. 任玉刚【Android开发艺术探索】读后笔记二
  15. 最详细的 paypal 支付接口开发--Java版
  16. QQ、微信、QQ浏览器UserAgent
  17. 2017年中兴捧月神算师算法精英挑战赛之阿尔法勒克斯特派(AlphaNext派)-----进来加群咯
  18. 计算机系统的主要部件和功能,《计算机系统的组成》教案
  19. http://nian.so/#网站的拓展工具编写
  20. PADS2007中怎么设置过孔盖油与过孔开窗及其验证过程

热门文章

  1. Win8.1 “运行”在Ipad Mini上
  2. Yii CDbCriteria 常用方法
  3. 高效学习Oracle的方法论
  4. 锁类型_ sys.dm_os_wait_stats
  5. 删除文件session丢失
  6. WCF后续之旅(10): 通过WCF Extension实现以对象池的方式创建Service Instance
  7. python selenium自动化获取oracle,python27+selenium3自动化登录测试
  8. led灯串怎么摆造型_一元包邮的家用LED日光灯泡,究竟是怎么做到的?
  9. Kong APIGW — Overview
  10. Linux 操作系统原理 — Namespace 资源隔离