早教吧 育儿知识 作业答案 考试题库 百科 知识分享

大家帮忙看一下了,用c#编写(2)定义一个复数类,通过重载运算符:+、-、*、/,直接实现两个复数之间的四则运算。编写一个完整的程序包括测试各种运算符的程序部分。提示:两个复数相

题目详情
大家帮忙看一下了,用c#编写
(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博客

看了 大家帮忙看一下了,用c#编写...的网友还看了以下:

对手,狼常到一个牧场叼羊.牧场主用了整整一个冬季,请猎手围猎狼群,狼患总算解除了.过了不久,羊群开  2020-05-13 …

①狼常到一个牧场叼羊.牧场主用了整整一个冬季,请猎手围猎狼群,狼患总算解除了.过了不久,羊群开始流  2020-05-13 …

对手!是议论文吗?这篇文章是名人写的吗①狼常到一个牧场叼羊.牧场主用了整整一个冬季,请猎手围猎狼群  2020-05-17 …

经整流后电压值变大?我用了一个220V转15V的变压器,经变压后得到15V交流电.经过桥式整流电路  2020-06-04 …

一列火车“匀加速”出战台,第一节从指挥员身边过时用了4S,整列火车过完用了20S火车车厢间隔不算,  2020-06-16 …

对手,①狼常到一个牧场叼羊.牧场主用了整整一个冬季,请猎手围猎狼群,狼患总算解除了.①狼常到一个牧  2020-06-16 …

狼常到一个牧场叼羊.牧场主用了整整一个冬季,请猎手围猎狼群,狼患总算解除了.过了不久,羊群开始流行  2020-06-16 …

针对药品市场价格不规范的现象,药监部门对部分药品的价格进行了调整,已知某药品原价为a元,经过调整后  2020-07-15 …

高分求解:环牛为什么经过整流后,电流弱了很多?12V约15A在整流前短路时,那火花简直吓人,但整流后  2020-11-26 …

基因工程问题将目的基因导入受体细胞的时候,那个质粒整合到受体细胞的话,不是会破坏受体细胞的整套DNA  2021-01-07 …