您的位置:首页 > 编程语言 > C#

C# 实现 复数 运算 类

2009-05-15 19:43 225 查看
实现复数的加、减、乘、除,求实部、虚部、模和命令行输出。源代码如下:

/// <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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: