参考,误抄袭
问题描述:
创建一个复数类Complex,对复数进行数学运算,复数具有如下格式:realPart+imaginaryPart*i,其中,i为-1的平方根,具体要求如下:
(1)利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明时对象的初始化;一个为带默认值得无参构造方法。
(2)提供两复数加、减、乘的运算方法。
(3)按格式(a,b)打印复数,其中a为实部,b为虚部。
【输入形式】
输入两个复数的实部和虚部,构造两个复数对象
【输出形式】
输出两个复数的相加、相减、相乘的结果
【样例输入】
input c1:
1 2
input c2:
3 4
【样例输出】
ComplexNumber a: 1.0 + 2.0i
ComplexNumber b: 3.0 + 4.0i
(a + b) = 4.0 + 6.0i
(a - b) = -2.0 + -2.0i
(a * b) = -5.0 + 10.0i
package Demo;
import java.util.Scanner;
public class Demo20 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("input c1:");
double real1 = in.nextDouble();
double image1 = in.nextDouble();
System.out.println("input c2:");
double real2 = in.nextDouble();
double image2 = in.nextDouble();
Complex s1 = new Complex();//新建Complex对象
Complex s2 = new Complex();
s1.realPart = real1;//对无参构造进行赋值
s1.imaginaryPart = image1;
s2.realPart = real2;
s2.imaginaryPart = image2;
System.out.println("ComplexNumber a: "+s1.realPart+" + "+s1.imaginaryPart+"i");
System.out.println("ComplexNumber b: "+s2.realPart+" + "+s2.imaginaryPart+"i");
add(s1,s2);
delete(s1,s2);
mult(s1,s2);
in.close();
}
static class Complex{//无参构造,用于存储real和image值
double realPart;
double imaginaryPart;
}
public static void add(Complex s1,Complex s2){//加法函数
System.out.println("(a + b) = "+(s1.realPart+s2.realPart)+" + "+(s1.imaginaryPart+s2.imaginaryPart)+"i");
}
public static void delete(Complex s1,Complex s2){//减法函数
System.out.println("(a - b) = "+(s1.realPart-s2.realPart)+" + "+(s1.imaginaryPart-s2.imaginaryPart)+"i");
}
public static void mult(Complex s1,Complex s2){//乘法函数
double real;
double image;
double temp;//由于i*i会变换符号,这里用于记录i*i
real = s1.realPart*s2.realPart;
image = s1.realPart*s2.imaginaryPart+s1.imaginaryPart*s2.realPart;
if (s1.imaginaryPart>0&&s2.imaginaryPart>0||s1.imaginaryPart<0&&s2.imaginaryPart<0){//对i*i进行正负判断
temp = -(s1.imaginaryPart*s2.imaginaryPart);
}else {
temp = (s1.imaginaryPart*s2.imaginaryPart);
}
real = real+temp;//最后的real部分值
System.out.println("(a * b) = "+real+" + "+image+"i");
}
}