编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:
要求:(1)定义一个结构体类型来描述复数。
(2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
(3)必须使用结构体指针的方法把函数的计算结果返回。
说明:用户输入:运算符号(+,-,*,/) a b c d.
输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。
输入:
- 2.5 3.6 1.5 4.9
输出:
要求:(1)定义一个结构体类型来描述复数。
(2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
(3)必须使用结构体指针的方法把函数的计算结果返回。
说明:用户输入:运算符号(+,-,*,/) a b c d.
输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。
输入:
- 2.5 3.6 1.5 4.9
输出:
1.00+-1.30i
复数的加法: (a+bi)+(c+di)=(a+c)+(b+d)i
复数的减法: (a+bi)-(c+di)=(a-c)+(b-d)i
复数的乘法:(a+bi)(c+di)=(ac-bd)+(bc+ad)i
复数的除法:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i
import java.util.Scanner;
class plural{
public float a;
public float b;
public float getA() {
return a;
}
public void setA(float a) {
this.a = a;
}
public float getB() {
return b;
}
public void setB(float b) {
this.b = b;
}
public plural(float a, float b) {
super();
this.a = a;
this.b = b;
}
}
public class algo_142 {
static String mul(plural p1,plural p2){
String t1 = String.format("%.2f", p1.a*p2.a-p1.b*p2.b);
String t2 = String.format("%.2f", p1.b*p2.a+p1.a*p2.b);
return t1+"+"+t2+"i";
}
static String div(plural p1,plural p2){
String t1 = String.format("%.2f", (p1.a*p2.a+p1.b*p2.b)/(p2.a*p2.a+p2.b*p2.b));
String t2 = String.format("%.2f", (p1.b*p2.a-p1.a*p2.b)/(p2.a*p2.a+p2.b*p2.b));
return t1+"+"+t2+"i";
}
static String add(plural p1,plural p2){
String t1 = String.format("%.2f", p1.a+p2.a);
String t2 = String.format("%.2f", p1.b+p2.b);
return t1+"+"+t2+"i";
}
static String sub(plural p1,plural p2){
String t1 = String.format("%.2f", p1.a-p2.a);
String t2 = String.format("%.2f", p1.b-p2.b);
return t1+"+"+t2+"i";
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String op = sc.next();
float a = sc.nextFloat();
float b = sc.nextFloat();
float c = sc.nextFloat();
float d = sc.nextFloat();
plural p1 = new plural(a,b);
plural p2 = new plural(c,d);
if(op.equals("*"))
System.out.println(mul(p1,p2));
if(op.equals("/"))
System.out.println(div(p1,p2));
if(op.equals("+"))
System.out.println(add(p1,p2));
if(op.equals("-"))
System.out.println(sub(p1,p2));
}
}