Java实验——复数类complex
Java实验——复数类complex
创建一个复数类complex,以复数进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*i ,其中,i为-1的平方根。
要求如下:
1、利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。
2、提供两复数加、减、乘、除的运算方法。
3、按格式(a,b)打印复数。其中a为实部,b为虚部。
import java.util.*;
public class complex {
private double a;
private double b;
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public complex() {
this.a=0.0;
this.b=0.0;
}
public complex(double aa,double bb) {
this.a=aa;
this.b=bb;
}
//加法
//(a+bi)+(c+di)=(a+c)+(b+d)i
public complex add(complex c) {
complex add=new complex(this.a+c.a,this.b+c.b);
return add;
}
//减法
//(a+bi)-(c+di)=(a-c)+(b-d)i
public complex sub(complex c) {
complex sub=new complex(this.a-c.a,this.b-c.b);
return sub;
}
//乘法
//(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
public complex mul(complex c) {
double aa=this.a*c.a-this.b*c.b;
double bb=this.a*c.b+this.b*c.a;
complex mul=new complex(aa,bb);
return mul;
}
//除法
//(a+bi)/(c+di)=(ac+bd)/(c²+d²)+((bc-ad)/(c²+d²))i
public complex div(complex c) {
double x=c.a*c.a+c.b*c.b;
double aa=(this.a*c.a+this.b*c.b)/x;
double bb=(this.b*c.a-this.a*c.b)/x;
complex div=new complex(aa,bb);
return div;
}
//格式
public String toString() {
return "("+this.a+","+this.b+")";
}
//main()方法
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入c1的实部和虚部:");
double a1=input.nextDouble();
double b1=input.nextDouble();
System.out.print("请输入c2的实部和虚部:");
double a2=input.nextDouble();
double b2=input.nextDouble();
System.out.println("c1:"+"("+a1+","+b1+")");
System.out.println("c2:"+"("+a2+","+b2+")");
complex c1=new complex(a1,b1);
complex c2=new complex(a2,b2);
System.out.println("c1和c2的运算结果:");
System.out.println("c1+c2:"+c1.add(c2));
System.out.println("c1-c2:"+c1.sub(c2));
System.out.println("c1*c2:"+c1.mul(c2));
System.out.println("c1/c2:"+c1.div(c2));
input.close();
}
}
输出结果:
