> 文章列表 > Java实现复数的加减乘除

Java实现复数的加减乘除

Java实现复数的加减乘除

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---}
}

如果此文对你有帮助,可以点赞+评论哟!