博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复数类完整实现 + 四则运算符重载
阅读量:6379 次
发布时间:2019-06-23

本文共 3289 字,大约阅读时间需要 10 分钟。

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/8304746.html

你可能感兴趣的文章
if lte IE if gte IE 浏览器兼容
查看>>
基于Lumisoft.NET组件和.NET API实现邮件发送功能的对比
查看>>
C#数据库访问技术之DATAREADER对象读取数据
查看>>
各种排序方法
查看>>
编译时程序透彻理解异常并合理使用异常
查看>>
2013年5月18日星期六
查看>>
js 字符串操作函数集合
查看>>
nullnullCF 312B(Archer-等比数列极限求和)
查看>>
消息函数windows 程序设计 第三章 (下)
查看>>
Javascript 坦克大战
查看>>
Linux内核中__init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等作用
查看>>
leetcode -- Two Sum
查看>>
Windows多线程
查看>>
C语言局部变量和全局变量问题汇总
查看>>
android 下的网络图片加载
查看>>
Paip.语义分析----情绪情感词汇表总结
查看>>
Linux下软件安装,卸载,管理
查看>>
View Programming Guide for iOS_读书笔记[正在更新……]
查看>>
排查VMWare虚拟机的性能问题
查看>>
yum安装Apache Web Server后各个文件存放位置
查看>>