资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
/* * 操作复数的类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 - 指定的实部 * 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 - 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 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 - 指定的实部 * 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.trim();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 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 Float(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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号