//类的定义
package cn.itcat.demo04; //包名
public class Complex{
protected double real; //实部
protected double image;//虚部
Complex() {
this.real=0;
this.image=0;
}
Complex(double real, double image) {//带参数的构造函数
this.real = real;
this.image = image;
}
public double getReal() {
return real;
}
public void setReal(double real) {
this.real = real;
}
public double getImage() {
return image;
}
public void setImage(double image) {
this.image = image;
}
//加法
public Complex Add(Complex a) {
this.real=this.real+a.real;
this.image=this.image+a.image;
return this;
}
//减法
public Complex Sub(Complex a) {
this.real=this.real-a.real;
this.image=this.image-a.image;
return this;
}
//乘法
public Complex Mul(Complex a) {
this.real=this.real*a.real-this.image*a.image;
this.image=this.image*a.real+((this.real+(this.image*a.image))/a.real)*a.image;
return this;
}
//除法
public Complex Div(Complex a) {
if(a.image==0){
System.err.println("除数不能为0!!!");
}
this.real = (this.real*a.real+this.image*a.image)/(a.real*a.real+a.image*a.image);
this.image = (this.image*a.real-(((this.real*(a.real*a.real+a.image*a.image)-(this.image*a.image))/a.real))*a.image)/(a.real*a.real+a.image*a.image);
return this;
}
}
//测试
package cn.itcat.demo04;
import java.util.Scanner;
public class TestComplex {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个数的实部和虚部:");
double real1=sc.nextDouble();
double image1=sc.nextDouble();
System.out.println("请输入第二个数的实部和虚部:");
double real2=sc.nextDouble();
double image2=sc.nextDouble();
Complex C1=new Complex(real1,image1);
Complex C2=new Complex(real2,image2);
System.out.println("请输入运算符(-、+、*、/)其中一个:");
Scanner S=new Scanner(System.in);
String s=S.nextLine();
char C=s.charAt(0);
switch(C){
//加法
case '+':
C1.Add(C2);
if(C1.image < 0){
System.out.println("加法:"+C1.real+C1.image+"i");
}
else{
System.out.println("加法:"+C1.real+"+"+C1.image+"i");
}
break;
//减法
case '-':
C1.Sub(C2);
if(C1.image < 0){
System.out.println("减法:"+C1.real+C1.image+"i");
}else {
System.out.println("减法:"+C1.real+"+"+C1.image+"i");
}
break;
//乘法
case '*':
C1.Mul(C2);
System.out.println("乘法:"+C1.real+"+"+C1.image+"i");
break;
//除法
case '/':
C1.Div(C2);
System.out.println("除法:"+C1.real+"+"+C1.image+"i");
}
}
}