Complex.cs实现Complex类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test04_4_Complex { class Complex { private double real; private double image; public Complex() { real = 0; image = 0; } public Complex(double r,double i) { real = r; image = i; } //输入 public void Input(double r,double i) { real = r; image = i; } //输出 public string Output() { if(image >= 0) { return (real + "+" + image + "i"); } else return (real + "-" + (-image) + "i"); //return real + "+" + image + "i"; } /*运算符重载实现加法*/ public static Complex operator + (Complex s,Complex p) { Complex C = new Complex(); C.real = s.real + p.real; C.image = s.image + p.image; return C; } /*减法*/ public static Complex operator - (Complex s,Complex p) { Complex C = new Complex(); C.real = s.real - p.real; C.image = s.image - p.image; return C; } /* *乘法 *(a+bi)(c+di)=(ac-bd)+(bc+ad)i */ public static Complex operator *(Complex s, Complex p) { Complex C = new Complex(); C.real = (s.real * p.real - s.image * p.image); C.image = (s.image * p.real + s.real * p.image); return C; } /* * 除法 *(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i */ public static Complex operator /(Complex s, Complex p) { Complex C = new Complex(); C.real = (s.real * p.real + s.image * p.image) / (Math.Pow(p.image, 2) + (Math.Pow(p.real, 2))); C.image = (s.image * p.real - s.real * p.image) / (Math.Pow(p.image, 2) + (Math.Pow(p.real, 2))); return C; } } }Program.cs实现运算:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test04_4_Complex { class Program { static void Main(string[] args) { Complex c1 = new Complex(10, 20); Complex c2 = new Complex(20, 30); Complex c3 = new Complex(); Console.WriteLine(c1.Output()); Console.WriteLine(c2.Output()); c2.Input(10, -10); Console.WriteLine(c2.Output()); c3 = c1 + c2;//加法 Console.WriteLine("({0})+({1})={2}",c1.Output(),c2.Output(),c3.Output()); c3 = c1 - c2;//减法 Console.WriteLine("({0})-({1})={2}", c1.Output(), c2.Output(), c3.Output()); c3 = c1 * c2;//乘法 Console.WriteLine("({0})*({1})={2}", c1.Output(), c2.Output(), c3.Output()); c3 = c1 / c2;//除法 Console.WriteLine("({0})/({1})={2}", c1.Output(), c2.Output(), c3.Output()); } } }结果就是这样:
