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();
 }
}

输出结果:

经验分享 程序员 微信小程序 职场和发展