当前位置: 代码迷 >> Java相关 >> 各位大侠站站脚,帮下兄弟哈
  详细解决方案

各位大侠站站脚,帮下兄弟哈

热度:162   发布时间:2009-11-02 17:43:33.0
各位大侠站站脚,帮下兄弟哈
最近不知道咋回事,学习特不在状态,这不,老师出了道题目,一直弄不出来,值得求大家帮忙了,嘿嘿
题目是这样的:声明一个复数类,其方法包括toString()及复数的加、减、乘、除运算。谢了哈!
搜索更多相关的解决方案: 兄弟  站站  

----------------解决方案--------------------------------------------------------
定义实部跟虚部,然后分别运用运算符不是可以了?
----------------解决方案--------------------------------------------------------
public class Complex {

private double x;//实部
private double y;//虚部

public Complex(){}

/**构造函数
* @param x 实数部分
* @param y 虚数部分
*/
public Complex(double x,double y){
super();
this.x = x;
this.y = y;
}

/**求模
* @return 该复数的模
*/
public double mod(){
return x * x + y * y;
}

/**复数间加法
* @param complex 加数
* @return 计算结果
*/
public Complex add(Complex complex){
double x = this.x + complex.x;
double y = this.y + complex.y;
return new Complex(x,y);
}

/**复数与实数的加法
* @param a 加数
* @return 计算结果
*/
public Complex add(double a){
return this.add(new Complex(a,0));
}

/**复数间减法
* @param complex 减数
* @return 计算结果
*/
public Complex subtract(Complex complex){
double x = this.x - complex.x;
double y = this.y - complex.y;
return new Complex(x,y);
}

/**复数与实数的减法
* @param a 减数
* @return 计算结果
*/
public Complex subtract(double a){
return subtract(new Complex(a,0));
}

/**复数间乘法
* @param complex 乘数
* @return 计算结果
*/
public Complex multiply(Complex complex){
double x = this.x * complex.x - this.y * complex.y;
double y = this.y * complex.x + this.x * complex.y;
return new Complex(x,y);
}

/**复数间除法
* @param complex 除数
* @return 计算结果
*/
public Complex divide(Complex complex){
double x = (this.x * complex.x + this.y * complex.y) / (complex.mod());
double y = (this.y * complex.x - this.x * complex.y) / (complex.mod());
return new Complex(x,y);
}

public String toString(){
StringBuffer sb = new StringBuffer();
if(x != 0){
sb.append(x);
if(y > 0){
sb.append("+" + y + "i");
}else if(y < 0){
sb.append(y + "i");
}
}else{
if(y != 0){
sb.append(y + "i");
}
}
if(x == 0 && y == 0){
return "0";
}
return sb.toString();
}

public double getX() {
return x;
}

public void setX(double x) {
this.x = x;
}

public double getY() {
return y;
}

public void setY(double y) {
this.y = y;
}

public static void main(String[] args) {
Complex a = new Complex(2,0.5);
Complex b = new Complex(0.5,2);
System.out.println("(" + a + ")+(" + b + ")=" + a.add(b));
System.out.println("(" + a + ")+" + 2 + "=" + a.add(2));
System.out.println("(" + a + ")-(" + b + ")=" + a.subtract(b));
System.out.println("(" + a + ")-" + 2 + "=" + a.subtract(2));
System.out.println("(" + a + ")*(" + b + ")=" + a.multiply(b));
System.out.println("(" + a + ")/(" + b + ")=" + a.divide(b));
}

}

[ 本帖最后由 lampeter123 于 2009-11-3 08:42 编辑 ]
----------------解决方案--------------------------------------------------------
回复 3楼 lampeter123
谢啦前辈!嘿嘿

[ 本帖最后由 多多关照 于 2009-11-3 18:00 编辑 ]
----------------解决方案--------------------------------------------------------
。。。。。。。。。。怎么和我刚学JAVA那会老师出的一样的题目啊
----------------解决方案--------------------------------------------------------
回复 5楼 windizual
估计教学大纲上是这样要求的吧,嘿嘿
----------------解决方案--------------------------------------------------------
3楼 好

----------------解决方案--------------------------------------------------------
  相关解决方案