复数类Java实现.docx

上传人:枫** 文档编号:550934083 上传时间:2022-10-12 格式:DOCX 页数:13 大小:16.96KB
返回 下载 相关 举报
复数类Java实现.docx_第1页
第1页 / 共13页
复数类Java实现.docx_第2页
第2页 / 共13页
复数类Java实现.docx_第3页
第3页 / 共13页
复数类Java实现.docx_第4页
第4页 / 共13页
复数类Java实现.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《复数类Java实现.docx》由会员分享,可在线阅读,更多相关《复数类Java实现.docx(13页珍藏版)》请在金锄头文库上搜索。

1、/* * 操作复数的类Complex * * 周长发编制 */package javaalgorithm.algorithm;/* * 操作复数的类Complex * author 周长发 * version 1.0 */public class Complex private double real = 0.0;/ 复数的实部private double imaginary = 0.0;/ 复数的虚部private double eps = 0.0; / 缺省精度/* * 基本构造函数 */public Complex() /* * 指定值构造函数 * * param dblX - 指定的实

2、部 * param dblY - 指定的虚部 */public Complex(double dblX, double dblY)real = dblX;imaginary = dblY;/* * 拷贝构造函数 * * param other - 源复数 */public Complex(Complex other)real = other.real;imaginary = other.imaginary;/* * 根据a,b形式的字符串来构造复数,以a为复数的实部,b为复数的虚部 * * param s - a,b形式的字符串,a为复数的实部,b为复数的虚部 * param sDelim -

3、 a, b之间的分隔符 */public Complex(String s, String sDelim)setValue(s, sDelim);/* * 设置复数运算的精度 * * param newEps - 新的精度值 */public void setEps(double newEps)eps = newEps;/* * 取复数的精度值 * * return double型,复数的精度值 */public double getEps()return eps;/* * 指定复数的实部 * * param dblX - 复数的实部 */public void setReal(double

4、dblX)real = dblX;/* * 指定复数的虚部 * * param dblY - 复数的虚部 */public void setImag(double dblY)imaginary = dblY;/* * 取复数的实部 * * return double 型,复数的实部 */public double getReal()return real;/* * 取复数的虚部 * * return double 型,复数的虚部 */public double getImag()return imaginary;/* * 指定复数的实部和虚部值 * * param real - 指定的实部 *

5、 param imag - 指定的虚部 */public void setValue(double real, double imag)setReal(real);setImag(imag);/* * 将a,b形式的字符串转化为复数,以a为复数的实部,b为复数的虚部 * * param s - a,b形式的字符串,a为复数的实部,b为复数的虚部 * param sDelim - a, b之间的分隔符 */public void setValue(String s, String sDelim)int nPos = s.indexOf(sDelim);if (nPos = -1)s = s.tr

6、im();real = Double.parseDouble(s);imaginary = 0;elseint nLen = s.length();String sLeft = s.substring(0, nPos);String sRight = s.substring(nPos+1, nLen);sLeft = sLeft.trim();sRight = sRight.trim();real = Double.parseDouble(sLeft);imaginary = Double.parseDouble(sRight);/* * 将复数转化为a+bj形式的字符串 * * return

7、 String 型,a+bj形式的字符串 */public String toString()String s;if (real != 0.0)if (imaginary 0)s = new Float(real).toString() + + + new Float(imaginary).toString() + j;else if (imaginary 0)s = new Float(imaginary).toString() + j;else if (imaginary 0)s = new Float(-1*imaginary).toString() + j;elses = new Fl

8、oat(real).toString();return s;/* * 比较两个复数是否相等 * * param cpxX - 用于比较的复数 * return boolean型,相等则为true,否则为false */public boolean equal(Complex cpxX)return Math.abs(real - cpxX.real) = eps & Math.abs(imaginary - cpxX.imaginary) = Math.abs(cpxX.imaginary) e = cpxX.imaginary / cpxX.real; f = cpxX.real + e * cpxX.imaginary; x = (real + imaginary * e) / f; y = (imaginary - real * e) / f; else e = cpxX.real / cpxX.imaginary; f = cpxX.imaginary + e * cpxX.real; x = (real * e + imaginary) / f; y = (imaginary * e - real) / f; return new Complex(x, y);/* * 计算复数的模 * * return double型,指定复数的模 */public

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号