I have here a code that should print the sum and difference of two complex numbers. The instructions given are:
make the methods add
, subtract
, and print
to be void
and
test using the constructor's object.
public class Complex {
/**
* @param args
*/
public double real;
public double imag;
public String output = "";
public Complex(double real, double imag){
this.real += real;
this.imag += imag;
}
public Complex(){
real = 0;
imag = 0;
}
public double getReal(){
return real;
}
public void setReal(double real){
this.real = real;
}
public double getImag(){
return imag;
}
public void setImag(double imag){
this.imag = imag;
}
public void add(Complex num){
this.real = real + num.real;
this.imag = imag + num.imag;
}
public void subtract(Complex num){
this.real = real - num.real;
this.imag = imag - num.imag;
}
public void print(){
//
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Complex c1 = new Complex(4.0, 8.5);
Complex c2 = new Complex(8.0, 4.5);
c1.add(c2);
c1.subtract(c2);
c1.print(); //expected answer 12.0 + 13.0i
//-4.0 - 4.0i
}
}
The expected answers are 12.0 + 13.0i and -4.0 - 4.0i. Please help me with the method print
. Thank you.
Perhaps this is not what you're looking for, but to make the number be printed isn't enough to make something like this in your print method?
System.out.print("The number is: " +real +"+i" +imag);
public void print(){
if(this.imag <0){
System.out.println(this.real+" "+this.imag+"i");
}
if(this.imag >0){
System.out.println(this.real+"+"+this.imag+"i");
}
}
You incorrectly use print merhod. if you want to see correct result you need to rewrite add method like this:
public void add(Complex num, Complex num2){
this.real = num.real + num2.real;
this.imag = num.imag + num2.imag;
}
rewrite subtract method also.
public void subtract(Complex num){
this.real = real - num.real;
this.imag = imag - num.imag;
}
Now main method look like this:
public static void main(String[] args) {
Complex c1 = new Complex(4.0, 8.5);
Complex c2 = new Complex(8.0, 4.5);
Complex result = new Complex(8.0, 4.5);
result.add(c1,c2);
result.print();
result.subtract(c1,c2);
result.print();
print method as I told previously look like:
public void print(){
System.out.println(real + " " + imag +"i");
}
Explanation:
In your code you have error. You add c2 to c1 and then subtract c2 frim c1 and then print result. Mathematically this looks like : c1= c1+c2-c2;
来源:https://stackoverflow.com/questions/18550771/adding-and-subtract-complex-numbers-using-oop-structure