您的位置:首页 > 编程语言 > Java开发

java求复数四则运算,习题5.23(最终版)

2007-04-27 12:44 609 查看
习题5.23(最终版),经过对第五章-类的定义与使用的摸索, 对于复数的四则运算,已按题目要求正确编写程序,并运行得到正确结果。各位朋友可以参考,有更好的方法,请留言。

ComplexNumber.java

import java.io.*;

class ComplexNumber //定义ComplexNumber 类
{
double m_dRealPart; //定义实部
double m_dImaginPart; //定义虚部

public ComplexNumber(double r,double i) //构造函数,创建复数对象
{
this.m_dRealPart=r; //初始化实部
this.m_dImaginPart=i; //初始化虚部
}
public double getRealPart() //获得复数对象的实部
{ return m_dRealPart;}

public double getImaginPart() //获得复数对象的虚部
{ return m_dImaginPart;}

public void setRealPart(double d) //把当前复数对象的实部设置为给定的形式参数的数字
{m_dRealPart=d;}

public void setImaginaryPart(double d) //把当前复数对象的虚部设置为给定的形式参数的数字
{m_dImaginPart=d;}

ComplexNumber complexAdd(ComplexNumber c) //定义加法方法
{
ComplexNumber result=new ComplexNumber(m_dRealPart,m_dImaginPart) ;
result.setRealPart(this.m_dRealPart+c.m_dRealPart);
result.setImaginaryPart(this.m_dImaginPart+c.m_dImaginPart);
// 结果中:实部=实部+实部,虚部=虚部+虚部
return result; //返回给此方法的调用者
}
ComplexNumber complexMinus(ComplexNumber c) //定义减法方法
{
ComplexNumber result=new ComplexNumber(m_dRealPart,m_dImaginPart);
result.setRealPart(this.m_dRealPart-c.m_dRealPart);
result.setImaginaryPart(this.m_dImaginPart-c.m_dImaginPart);
// 结果中:实部=实部-实部,虚部=虚部-虚部
return result;
}

ComplexNumber complexMulti(ComplexNumber c) //定义乘法方法
{
ComplexNumber result=new ComplexNumber(m_dRealPart,m_dImaginPart);
result.setRealPart(c.m_dRealPart*getRealPart()-c.m_dImaginPart*getImaginPart());
//结果中:实部=实部×实部-虚部×虚部
result.setImaginaryPart(c.m_dRealPart*getImaginPart()+c.m_dImaginPart*getRealPart());
// 虚部=实部×虚部+实部×虚部
return result;
}

ComplexNumber complexDivide(ComplexNumber c) //定义除法方法
{
ComplexNumber conjugate = new ComplexNumber(m_dRealPart, -m_dImaginPart);
ComplexNumber multiplication = conjugate.complexMulti(c);
// 定义新方法,将复数实数化
multiplication.m_dRealPart /= this.m_dRealPart*this.m_dRealPart + this.m_dImaginPart * this.m_dImaginPart;
// 除法结果中的实部=被除数/( 除数中的实部平方+虚部平方 )
multiplication.m_dImaginPart /= this.m_dRealPart*this.m_dRealPart + this.m_dImaginPart * this.m_dImaginPart;
// 除法结果中的虚部=被除数/( 除数中的实部平方+虚部平方 )
return multiplication;
}

public String toString() // 显示结果
{
double a=m_dRealPart;
double b=m_dImaginPart;
return String.valueOf(a+"+"+b+"i"); //组合成a+bi的字符串形式
}

public static void main(String[]args) // 使用ComplexNumber 类
{
ComplexNumber M = new ComplexNumber(1.0,1.0);
ComplexNumber N = new ComplexNumber(1.0,1.0);
System.out.println("复数运算结果为:");
System.out.println((M.complexAdd(N)).toString()); // 加
System.out.println((M.complexMinus(N)).toString()); // 减
System.out.println((M.complexMulti(N)).toString()); // 乘
System.out.println((M.complexDivide(N)).toString()); // 除
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: