大家帮忙看一下了,用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.最能说明基因分 2020-04-11 …
直伸网监测时,用威尔特T3经伟仪按全圆方向法观测( )个测回。A.6B.9C.12D.15 2020-05-27 …
在确立以夏、商、周为核心的中国上古史基本框架的基础上,“夏商周断代工程”将历谱推定、文献梳理、考库 2020-06-09 …
设对某角观测一测回的观测中误差为±2.4″,现要使该角的观测结果精度达到±1.4″,则需观测()个 2020-06-13 …
夏季防汛时,一水文站对长江某河段的水位进行一日四测,某天四次测量的结果为:第一次上升38mm,第二 2020-06-21 …
逻辑题详细解答校友返校,在猜测个人的事业发展的情况时,老校长猜测到:“张华是从事房地产的或者李默是 2020-06-22 …
个006年美国和俄罗斯的科学家利用回旋加速器,通过&nb7p;四8个0Ca(钙四8)轰击&nb7p 2020-07-02 …
来帮我做一些数学题1.1997×0.71+11×七分之四+2222×0.29=?2.一与一个数的倒 2020-07-19 …
对普通群众来讲,认识假人民币的“最简单”的方法,可概括为“一看、二摸、三听、四测”。从哲学角度看,“ 2020-11-02 …
100分.请教一个英语称呼的问题.公司组织内部招聘,要测试英语口语,评审组有男有女四五个人,要求先做 2020-12-05 …