大家帮忙看一下了,用c#编写(2)定义一个复数类,通过重载运算符:+、-、*、/,直接实现两个复数之间的四则运算。编写一个完整的程序包括测试各种运算符的程序部分。提示:两个复数相
(2) 定义一个复数类,通过重载运算符:+、-、*、/,直接实现两个复数之间的四则运算。编写一个完整的程序包括测试各种运算符的程序部分。
提示:两个复数相乘的计算公式为(a+bi)* (c+di) = (ac-bd) + (ad+bc)i。
两个复数相除的计算公式为(a+bi)/ (c+di) = (ac+bd)/(c*c+d*d) + (bc -ad)/ (c*c+d*d) i。
class Complex
{
public double real;
public double imaginary;
public Complex(double real, double imaginary) //构造函数
{
this.real = real;
this.imaginary = imaginary;
}
//声明重载运算符(+),将两个复数对象相加,返回复数类型
public static Complex operator + (Complex c1, Complex c2)
{
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}
//声明重载运算符(-),将两个复数对象相减,返回复数类型
public static Complex operator - (Complex c1, Complex c2)
{
return new Complex(c1.real - c2.real, c1.imaginary - c2.imaginary);
}
//声明重载运算符(*),将两个复数对象相乘,返回复数类型
public static Complex operator * (Complex c1, Complex c2)
{
return new Complex(c1.real * c2.real - c1.imaginary * c2.imaginary , c1.real *c2.imaginary + c1.imaginary * c2.real);
}
//声明重载运算符(/),将两个复数对象相除,返回复数类型
public static Complex operator / (Complex c1, Complex c2)
{
double cd = c2.real * c2.real + c2.imaginary * c2.imaginary ;
return new Complex((c1.real * c2.real + c1.imaginary * c2.imaginary) / cd, (c1.imaginary * c2.real -c1.real*c2.imaginary)/cd);
}
//重载ToString() 方法,以传统格式显示复数
public override string ToString()
{
return (String.Format("{0} + {1}i", real, imaginary));
}
}
class TestComplex
{
static void Main()
{
Complex num1 = new Complex(2, 3);
Complex num2 = new Complex(3, 4);
Complex sum = num1 + num2; //重载加运算符添加复数对象
Complex sub = num1 - num2; //重载减运算符添加复数对象
Complex multiplication = num1 * num2; //重载减运算符添加复数对象
Complex division = num1 / num2; //重载减运算符添加复数对象
//重载ToString方法输出复数的加减乘除
Console.WriteLine("第一个复数: {0}", num1);
Console.WriteLine("第二个复数: {0}", num2);
Console.WriteLine("复数和: {0}", sum);
Console.WriteLine("复数差: {0}", sub);
Console.WriteLine("复数积: {0}", multiplication);
Console.WriteLine("复数商: {0}", division);
}
}
请看我的博客danyaody 163博客
牛顿第一定律一定正确吗从相对运动的角度看好象不对物体A和物体B作相对运动时,假设物体A受到1N的力 2020-04-27 …
(1)根据所给名称的要求,写出相应的化学符号名称1个硫原子+3价的铝元素1个硫酸根离子2个氮气分子 2020-05-14 …
和C相似的符号?跪求有么子与大小写字母C相关的符号… 2020-05-15 …
有相对分子质量为58的几种有机物,试写出符合下列条件的有机物的结构简式有相对分子质量为58的几种有 2020-05-16 …
2014年12月10日沪昆高铁江西路段正式通车,“江西人笑得更灿烂了”.与普通铁路运输相比,符合高 2020-07-01 …
ISO9000认证,不符合项报告怎么写不符合项描述:审核时发现,部门2006年质量目标为实际利用外 2020-07-17 …
C语言求解1、打印九九乘法表。2、输入若干字符,换行结束。统计其中大写字符、小写字符、数字字符和其 2020-07-23 …
2道关于工程力学的问题,1.在梁的集中力偶作用处,其左,右两侧无限接近的横截面上的剪力()A.大小 2020-07-28 …
写出化学符号或者写出符号所表示的意义.2个氮原子.氖气.4个镁离子.2Al.相对分子质量最小的氧化 2020-07-29 …
下面是某校高三同学在毕业时和班主任畅谈友谊时,对“友谊”的不同表达,请在下面的横线上写两句运用比喻、 2021-02-02 …