Java练习题-复数类的封装

编程练习:复数的类封装 

有理数的类封装 完成 复数加减乘除四则运算的类封装,主类Main输入两个复数输出其四则运算后的结果。

如:输入 1 2 1 -2
   输出 复数: 1.0+2.0i 与复数: 1.0-2.0i
       相加得: 2.0
       相减得: 4.0i
       相乘得: 5.0
       相除得: -0.6+0.8i

目录

题目已有代码:

1.首先给Fushu类添加了无参构造

2.接着就是在Fushu类中定义复数的加减乘除方法

3.在Main类中调用方法以及有条件判断输出

4.完整代码展示(非最简化版本):

5.简化后代码展示:简化了输出格式判断和类型转换


题目已有代码:

import java.util.Scanner;
class Fushu {//复数类,成员变量shibu,xubu分别存放复数实部和虚部的值
double shibu,xubu;

public Fushu(double shibu,double xubu){//含参构造方法,指定复数的实部和虚部
	this.shibu=shibu;
	this.xubu=xubu;
}
     //---begin---
    //定义复数类的加减乘除四则运算方法

    //---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进行四则运算,输出运算结果
    

    //---end---
	}

}

在现有代码基础上继续完成题目:

1.首先给Fushu类添加了无参构造

public Fushu(double shibu,double xubu){//含参构造方法,指定复数的实部和虚部
	this.shibu=shibu;
	this.xubu=xubu;
}
//填加了无参构造
Fushu(){
}

     //---begin---
    //定义复数类的加减乘除四则运算方法

    //---end---

}

2.接着就是在Fushu类中定义复数的加减乘除方法

 //加法
    Fushu add(Fushu r1,Fushu r2){
        Fushu result = new Fushu();
        double s1 = r1.shibu;
        double x1 = r1.xubu;
        double s2 = r2.shibu;
        double x2 = r2.xubu;
        //计算实部和虚部
        result.shibu = (s1 +s2);
        result.xubu = (x1 +x2);
        return result;
    }
    //减法
    Fushu sub(Fushu r1,Fushu r2){
        Fushu result = new Fushu();
        double s1 = r1.shibu;
        double x1 = r1.xubu;
        double s2 = r2.shibu;
        double x2 = r2.xubu;
        //计算实部和虚部
        result.shibu = (s1 - s2);
        result.xubu = (x1 - x2);
        return result;
    }
    //乘法
    Fushu muti(Fushu r1,Fushu r2){
        Fushu result = new Fushu();
        double s1 = r1.shibu;
        double x1 = r1.xubu;
        double s2 = r2.shibu;
        double x2 = r2.xubu;
        //计算实部和虚部
        result.shibu = ((s1 * s2)-(x1*x2));
        result.xubu = ((x1 * s2)+(s1*x2));
        return result;

    }
    //除法
    Fushu div(Fushu r1,Fushu r2){
        Fushu result = new Fushu();
        double s1 = r1.shibu;
        double x1 = r1.xubu;
        double s2 = r2.shibu;
        double x2 = r2.xubu;
        //计算实部和虚部
        result.shibu = ((s1*s2 + x1*x2)/(s2*s2 + x2*x2));
        result.xubu = ((x1*s2 - s1*x2)/(s2*s2 + x2*x2));
        return result;

    }

3.在Main类中调用方法以及有条件判断输出

        //获取原复数的实部和虚部
        double y1s1 = r1.shibu;
        double y1x1 = r1.xubu;
        double y2s2 = r2.shibu;
        double y2x2 = r2.xubu;
        //创建复数对象
        Fushu fushu = new Fushu();
        //调用加法方法
        Fushu result1=fushu.add(r1,r2);
        double a1 = result1.shibu;
        double b1 = result1.xubu;
        //调用减法方法
        Fushu result2=fushu.sub(r1,r2);
        double a2 = result2.shibu;
        double b2 = result2.xubu;
        //调用乘法方法
        Fushu result3 = fushu.muti(r1,r2);
        double a3 = result
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值