Java实现复数的加减乘除
题目:
编程练习:复数的类封装
完成复数加减乘除四则运算的类封装,主类Main输入两个复数输出其四则运算后的结果。
如:输入 1 2 1 -2
输出 复数: 1.0+2.0i 与复数: 1.0-2.0i
相加得: 2.0
相减得: 4.0i
相乘得: 5.0
相除得: -0.6+0.8i
题目分析
看到题目时我首先想到的是复数的加减乘除是怎样计算的,因此我去百度了一番!
- 形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。. 当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。【来源百度百科】
- 复数的基本运算,请参考【此文】
我的答案
import java.util.Scanner;
class Fushu {//复数类,成员变量shibu,xubu分别存放复数实部和虚部的值
double shibu, xubu;
public Fushu(double shibu, double xubu) {//含参构造方法,指定复数的实部和虚部
this.shibu = shibu;
this.xubu = xubu;
}
//---begin---
//定义复数类的加减乘除四则运算方法
//复数加法运算
Fushu add(Fushu c) {
return new Fushu(shibu + c.shibu, xubu + c.xubu);
}
// 复数减法运算
Fushu sub(Fushu c) {
return new Fushu(shibu - c.shibu, xubu - c.xubu);
}
// 复数乘法运算
Fushu muti(Fushu c) {
return new Fushu(shibu * c.shibu - xubu * c.xubu, shibu * c.xubu + xubu * c.shibu);
}
// 复数除法运算
Fushu div(Fushu c) {
double denominator = c.shibu * c.shibu + c.xubu * c.xubu;
return new Fushu((shibu * c.shibu + xubu * c.xubu) / denominator, (xubu * c.shibu - shibu * c.xubu) / denominator);
}
// 定义一个输出方法
void print() {
if (shibu == 0) {
System.out.print(xubu + "i");
} else if (xubu > 0) {
System.out.print(shibu + "+" + xubu + "i");
} else if (xubu < 0) {
System.out.print(shibu + "" + xubu + "i");
} else {
System.out.print(shibu);
}
}
//---end---
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Fushu r1 = new Fushu(sc.nextDouble(), sc.nextDouble());
Fushu r2 = new Fushu(sc.nextDouble(), sc.nextDouble());
//---begin---
//输出复数r1,r2,并对复数r1,r2进行四则运算,输出运算结果
System.out.print("复数: ");
r1.print();
System.out.print(" 与复数: ");
r2.print();
Fushu sum = r1.add(r2);
System.out.print("\n相加得: ");
sum.print();
Fushu difference = r1.sub(r2);
System.out.print("\n相减得: ");
difference.print();
Fushu product = r1.muti(r2);
System.out.print("\n相乘得: ");
product.print();
Fushu quotient = r1.div(r2);
System.out.print("\n相除得: ");
quotient.print();
//---end---
}
}
如果此文对你有帮助,可以点赞+评论哟!