编程练习:复数的类封装
有理数的类封装 完成 复数加减乘除四则运算的类封装,主类Main输入两个复数输出其四则运算后的结果。
如:输入 1 2 1 -2 输出 复数: 1.0+2.0i 与复数: 1.0-2.0i 相加得: 2.0 相减得: 4.0i 相乘得: 5.0 相除得: -0.6+0.8i
目录
题目已有代码:
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