复数类的JAVA实现

来源:互联网 发布:nginx引入端口 编辑:程序博客网 时间:2024/04/28 00:09
  复数的存储和简单计算的实现
/**
 *Name:ComplexNumber.java
 *Author:Richard
 *Date:Apr-13,2006
 *Version:1.0.0.0
 *=======================
 *create complex number and caculate it
 */
 
 public class ComplexNumber{
  
  protected double realPart;
  protected double imaginPart;
  
  /**
   *construct method
   */
  public ComplexNumber(){
   
   realPart = 0.0;
   imaginPart = 0.0;
  }
  
  /**
   *reload construct method
   */
  public ComplexNumber(double r, double i){
   
   realPart = r;
   imaginPart = i;
  }
  
  /**
   *set the real part with r
   */
  public void setReal(double r){
   
   realPart = r;
  }
  
  /**
   *set the imagin part with i
   */
 public void setImagin(double i){
  
  imaginPart = i;
 }
 
 /**
  *get the real part of complex number
  */
 public double getReal(){
  
  return realPart;
 }
  
  /**
   *get the imagin part of complex number
   */
  public double getImagin(){
   
   return imaginPart;
  }
  
  /**
   *convers the real part and imagin part to string
   */
  public String toStr(){
   
   return String.valueOf(realPart +"+"+ imaginPart +"i");
  }
  
  /**
   *add two complex numbers and return the result as ComplexNumber
    */
  public static ComplexNumber complexAdd(ComplexNumber parm1, ComplexNumber parm2){
   
   ComplexNumber result = new ComplexNumber();
   result.setReal(parm1.getReal()+parm2.getReal());
   result.setImagin(parm1.getImagin()+parm2.getImagin());
   return result;
  }
  
  /**
   *minus two complex numbers and return the result as ComplexNumber
   */
  public static ComplexNumber complexMinus(ComplexNumber parm1, ComplexNumber parm2){
   
   ComplexNumber result = new ComplexNumber();
   result.setReal(parm1.getReal()-parm2.getReal());
   result.setImagin(parm1.getImagin()-parm2.getImagin());
   return result;
  }
  
  /**
   *multi two complex numbers and return the result as ComplexNumber
   */
  public static ComplexNumber complexMulti(ComplexNumber parm1, ComplexNumber parm2){
   
   ComplexNumber result = new ComplexNumber();
   double realTemp = 0.0;
   double imaginTemp = 0.0;
   
   realTemp = parm1.getReal()*parm2.getReal()-parm1.getImagin()*parm2.getImagin();
   imaginTemp = parm1.getReal()*parm2.getImagin()+parm1.getImagin()*parm2.getReal();
   
   result.setReal(realTemp);
   result.setImagin(imaginTemp);
   return result;
  }
  
  /**
   *div two complex numbers and return the result as ComplexNumber
   */
  public static ComplexNumber complexDiv(ComplexNumber parm1, ComplexNumber parm2){
 
  ComplexNumber result = new ComplexNumber();
   double realTemp = 0.0;
   double imaginTemp = 0.0;
   double div = 0.0;
   
   div = Math.pow(parm2.getReal(), 2)+Math.pow(parm2.getImagin(), 2);
   realTemp = parm1.getReal()*parm2.getReal()+parm1.getImagin()*parm2.getImagin();
   imaginTemp = parm2.getReal()*parm1.getImagin()-parm1.getReal()*parm2.getImagin();
   
   result.setReal(realTemp/div);
   result.setImagin(imaginTemp/div);
   return result;
 } 
 };
 //==========End Class ComplexNumber==========
原创粉丝点击