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

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

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值