2009-10-15 3 views
-1

이것은 CSE 숙제입니다. 친절한 사람들과 개랄한 사람들이 있을지도 모른다고 기대 했었습니다. 빨리 살펴보고 들어가면 좋을지 모릅니다. .CSE 214, Java, 복소수 도움말

(1) 어떤 매개 변수를 사용하지 않는 생성자 (여기서 기본값 : 여기

가 함께 ComplexNumber 객체 클래스를 작성

안보국의 지시와 내가 쓴 코드입니다 이 경우 복소수의 0과 0i가되어야합니다.)

(2) 정수 유형의 실수와 허수 부분을 매개 변수로 취하는 다른 생성자

(3) 또 다른 복소수 c2를 매개 변수로 취하고 이것을 현재 복소수 에 추가하고 결과 복소수를 반환합니다. (4) 다른 복소수 c2를 매개 변수로 취하고 현재 복소수 this에서 c2를 뺀 다음 결과 복소수를 반환하는 빼기 방법.

(5) 다른 복소수 c2를 매개 변수로 사용하고 현재 복소수 this와 c2를 곱하는 곱셈 방식으로 결과 복소수를 반환합니다.

(6) 또 다른 복소수 c2를 매개 변수로 사용하여 현재 복소수를 c2로 나눈 결과 복소수를 반환하는 나누기 메소드.

(7) a + b의 형식으로 현재 복소수 인 문자열을 인쇄하는 toString1 메서드입니다. 여기서 a와 b는 자연수의 실수와 허수의 값이됩니다.

/* 
* Kyle Arthur Benzle 
* CSE 214 
* 10/13/9 
* Tagore 
* 
* This program takes two int variables and performs 
* four mathematical operations (+, -, *, /) to them before returning the result from a  toString1 method. 
*/ 


//our first class Complex# 
public class ComplexNumber { 

// two int variables real and imagine 
int real; 
int imagine; 

// Constructor, no parameters, setting our complex number equal to o + oi 
ComplexNumber() { 
    real = 0; 
    imagine = 0;  } 

// Constructor taking two int variables as parameters. 
ComplexNumber(int rePart, int imaginePart) { 
    real = rePart; 
    imagine = imaginePart;  } 

// This is the add method, taking object c2 as parameter, and adding it to .this to return 
public ComplexNumber add(ComplexNumber c2) { 
    return new ComplexNumber(this.real + c2.real, this.imagine + c2.imagine);  } 

// Now the subtract method, followed by the methods to multiply and divide according to hand-out rules. 
public ComplexNumber substract(ComplexNumber c2) { 
    return new ComplexNumber(this.real - c2.real, this.imagine - c2.imagine);  } 

public ComplexNumber multiply(ComplexNumber c2) { 
    ComplexNumber c3 = new ComplexNumber(); 
    c3.real = this.real * c2.real - this.imagine * c2.imagine; 
    c3.imagine = this.real * c2.imagine + this.imagine * c2.real; 
    return c3;  } 

public ComplexNumber divide(ComplexNumber c2) { 
    ComplexNumber c3 = new ComplexNumber(); 
    c3.real = this.real/c2.real - this.imagine/c2.imagine; 
    c3.imagine = this.real/c2.imagine + this.imagine/c2.real; 
    return c3;  } 

// toString1 method to return "a+bi" as a String. 
public String toString1() { 
    return this.real + " + " + this.imagine + "i"; 
} 
/* And we are all done, except for this last little } right here. */  } 
+0

유사한 질문이 이미 여기에서 닫았습니다. http://stackoverflow.com/questions/1562286/beginner-java-working-with-complex-numberbers 코드에 대한 질문이 있으면 질문하십시오. – Kevin

답변

0

카일,

은 다행 당신은 당신의 코드를 확인하는 관심! 테스트 주도 개발에 대해 들었습니까? 그것은 코드를 작성하기 전에 단위 테스트를 작성하는 과정입니다.

일반적으로 테스트를 통해 코드가 수행 할 작업을 수행하는지 확인할 수 있습니다. 따라서 테스트를 수행하더라도 코드가 수행해야 할 작업 (대부분)을 수행한다는 것을 알 수 있습니다.

내가 제안하는 바 : 몇 가지 j- 단위 테스트 (매우 빠르고 구현하기 쉽다)를 작성하고 실제로 솔루션을 테스트 해보십시오! 이러한 테스트를 구현 한 후에는 코드가 변경되면이 테스트를 다시 실행할 수 있기 때문에 매우 좋습니다 ...

믿을 지 말지 모르겠지만 놀라운 개발자가 될 것입니다. 이 일찍부터 시작하십시오! 업계의 많은 사람들이 코드를 테스트하지 않으며 많은 문제를 야기했습니다.

0

인스턴스 변수 real 및 imagine은 아마도 private이어야합니다.

mulitply 및 divide의 경우 빼기 및 추가와 마찬가지로 zero-args 생성자를 사용하지 말고 직접 c3을 구성 할 수 있습니다. 못생긴 것처럼 생각한다면 임시 변수를 사용하여 실제와 현재 부분을 보유하십시오.당신은 인수로

new Complex() 

에 전달하면

는 분할 경우에는 어떻게됩니까? 최소한, 일어날 일이 당신이 의도하는 것이라면, 그것을 문서화하십시오.

+0

추가하면 생성자 이후 더 이상 수정하지 않으므로 인스턴스 필드를 '최종'으로 지정해야합니다. 그리고 주변 코드와 정확히 똑같은 모든 주석을 제거 할 수 있습니다. 주석은 호출자에게 중요하거나 코드로 표현할 수없는 것을 표현하기위한 것입니다. 첫 번째 의견은 오해의 소지가 있습니다. 이 작업을 수행하는 프로그램이 없습니다. 여기에 표시된 것은 모두 수행 할 수있는 클래스입니다. –

0

아무도 자신의 부서가 해제되었다는 것을 지적하지 않습니까?

a + bi/x + yi은 단순히 a/x + b/y + "i"이 아닙니다.

올바른 형태는

(a*x + b*x) - (a*y - b*y*(-1))/(X^2 + y^2) 될 것이다.

내가 누락 된 부분을 수정하십시오.