复数

public class Text implements Comparable<Text>{
private double RealPart,ImagePart;
public Text(){}
public Text(double R,double I){ //R实部 I虚部;构造函数
this.RealPart=R;
this.ImagePart=I;
}
public void setReal(double r){
this.RealPart=r;
}
public void setImage(double i){
this.ImagePart=i;
}
public double getReal(){
return this.RealPart;
}
public double getImage(){
return this.ImagePart;
}
public Text ComplexAdd(Text a){ //加
return new Text(this.RealPart+a.RealPart,this.ImagePart+a.ImagePart);
}
public Text ComplexSub(Text a){ //减
return new Text(this.RealPart-a.RealPart,this.ImagePart-a.ImagePart);
}
public Text ComplexMul(Text a){ //乘
return new Text(this.RealPart*a.RealPart-this.ImagePart*a.ImagePart,this.ImagePart*a.RealPart+this.RealPart*a.ImagePart);
}
public Text ComplexDiv(Text a){ //除
if(a.RealPart==0&&a.ImagePart==0){
System.out.println("输入的被除数不能都为0!\n");
return null;
}
double xx=a.RealPart*a.RealPart+a.ImagePart*a.ImagePart;
double r=(this.RealPart*a.RealPart+this.ImagePart*a.ImagePart)/xx;
double i=(this.ImagePart*a.RealPart-this.RealPart*a.ImagePart)/xx;
return new Text(r,i);
}
public String ToString(){ //输出复数形式的数
return this.RealPart+"+"+this.ImagePart+"i";
}
/*public void Complexcom(Text a){ //两个复数之间做比较(绝对值)
double x=this.ImagePart*this.ImagePart+this.RealPart+this.RealPart;
double y=a.ImagePart*a.ImagePart+a.RealPart*a.RealPart;
if(x>y){
System.out.println(this.RealPart+"+"+this.ImagePart+"i"+"大");
}else if(x<y){
System.out.println(a.RealPart+"+"+a.ImagePart+"i"+"大");
}else{
System.out.println("一样大");
}
}*/
@Override
public int compareTo(Text a) {
// TODO Auto-generated method stub
double x=this.ImagePart*this.ImagePart+this.RealPart+this.RealPart;
double y=a.ImagePart*a.ImagePart+a.RealPart*a.RealPart;
if(x>y){
return 1;
}else if(x==y){
return 0;
}else{
return -1;
}
}

}
class one{
public static void main(String[] args){
Text a=new Text();
Text b=new Text(1,2);
Text c=new Text(3,4);
System.out.println("a的值为:"+a.ToString());
System.out.println("b的值为:"+b.ToString());
System.out.println("c的值为:"+c.ToString());
Text d=b.ComplexAdd(c);
System.out.println("d的值为:"+d.ToString());
Text e=c.ComplexDiv(c);
System.out.println("e的值为:"+e.ToString());
Text f=c.ComplexMul(b);
System.out.println("f的值为:"+f.ToString());
Text g=c.ComplexSub(b);
System.out.println("g的值为:"+g.ToString());
//c.Complexcom(b);
if(c.compareTo(a)==1){
System.out.println(c.getReal()+"+"+c.getImage()+"i"+"大");
}else if(c.compareTo(a)==0){
System.out.println("一样大");
}else{
System.out.println(a.getReal()+"+"+a.getImage()+"i"+"大");
};
}
}

posted @ 2017-12-07 09:31  wannur  阅读(140)  评论(0编辑  收藏  举报