C# 实现 复数 运算 类

实现复数的加、减、乘、除,求实部、虚部、模和命令行输出。源代码如下:

    /// <summary>

    /// 复数类

    /// </summary>

    public class Complex

    {

 

        /// <summary>

        /// 默认构造函数

        /// </summary>

        public Complex()

            : this(0, 0)

        {

        }

 

        /// <summary>

        /// 只有实部的构造函数

        /// </summary>

        /// <param name="real">实部</param>

        public Complex(double real)

            : this(real, 0) { }

 

        /// <summary>

        /// 由实部和虚部构造

        /// </summary>

        /// <param name="real">实部</param>

        /// <param name="image">虚部</param>

        public Complex(double real, double image)

        {

            this.real = real;

            this.image = image;

        }

 

        private double real;

        /// <summary>

        /// 复数的实部

        /// </summary>

        public double Real

        {

            get { return real; }

            set { real = value; }

        }

 

        private double image;

        /// <summary>

        /// 复数的虚部

        /// </summary>

        public double Image

        {

            get { return image; }

            set { image = value; }

        }

 

        ///重载加法

        public static Complex operator +(Complex c1, Complex c2)

        {

            return new Complex(c1.real + c2.real, c1.image + c2.image);

        }

 

        ///重载减法

        public static Complex operator -(Complex c1, Complex c2)

        {

            return new Complex(c1.real - c2.real, c1.image - c2.image);

        }

 

        ///重载乘法

        public static Complex operator *(Complex c1, Complex c2)

        {

            return new Complex(c1.real * c2.real - c1.image * c2.image, c1.image * c2.real + c1.real * c2.image);

        }

 

        /// <summary>

        /// 求复数的模

        /// </summary>

        /// <returns></returns>

        public double ToModul()

        {

            return Math.Sqrt(real * real + image * image);

        }

 

        /// <summary>

        /// 重载ToString方法

        /// </summary>

        /// <returns>打印字符串</returns>

        public override string ToString()

        {

            if (Real == 0 && Image == 0)

            {

                return string.Format("{0}", 0);

            }

            if (Real == 0 && (Image != 1 && Image != -1))

            {

                return string.Format("{0} i", Image);

            }

            if (Image == 0)

            {

                return string.Format("{0}", Real);

            }

            if (Image == 1)

            {

                return string.Format("i");

            }

            if (Image == -1)

            {

                return string.Format("- i");

            }

            if (Image < 0)

            {

                return string.Format("{0} - {1} i", Real, -Image);

            }

            return string.Format("{0} + {1} i", Real, Image);

        }

    }

转载于:https://www.cnblogs.com/oyjj/archive/2009/05/15/2133001.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值