Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'ve done a complex number class and have a demo it runs with but I need to cre

ID: 3642616 • Letter: I

Question

I've done a complex number class and have a demo it runs with but I need to create a constructor to enhance the project. Also I was wondering if there is a way to prompt the user with explicit instructions to have them enter two complex numbers instead of having them in the demo.

Here is my class:
public class ComplexNumber{
double real;
double imaginary;

ComplexNumber(double real,double imaginary){
this.real = real;
this.imaginary = imaginary;
}

public ComplexNumber add(ComplexNumber n){
ComplexNumber result = new ComplexNumber(0, 0);
result.real = real + n.real;
result.imaginary = imaginary + n.imaginary;
return result;
}

public ComplexNumber subtract(ComplexNumber n){
ComplexNumber result = new ComplexNumber(0, 0);
result.real = real - n.real;
result.imaginary = imaginary - n.imaginary;
return result;
}

public ComplexNumber multiply(ComplexNumber n){
ComplexNumber result = new ComplexNumber(0, 0);
result.real = real * n.real - imaginary * n.imaginary;
result.imaginary = real * n.imaginary + imaginary * n.real;
return result;
}

public ComplexNumber divide(ComplexNumber n){
ComplexNumber result = null;
ComplexNumber denominatorConjugate = new ComplexNumber(n.real,-n.imaginary);
ComplexNumber denominator = n.multiply(denominatorConjugate);
result = new ComplexNumber((this.real/denominator.real),(this.imaginary/denominator.real));
result = result.multiply(denominatorConjugate);
return result;
}
}



Here is the Demo it runs with:

public class ComplexNumberDemo {
public static void main (String[] args) {

ComplexNumber cn1 = new ComplexNumber(4, 5);
ComplexNumber cn2 = new ComplexNumber(3, -2);
ComplexNumber cn4, cn5, cn6, cn7;
System.out.println("First ComplexNumber number: " + cn1.real + " + "+cn1.imaginary+"i");
System.out.println("Second ComplexNumber number: " + cn2.real + " + "+cn2.imaginary+"i");
if (cn1.equals(cn2))
System.out.println("cn1 and cn2 are equal.");
else
System.out.println("cn1 and cn2 are NOT equal.");
cn4 = cn1.add(cn2);
cn5 = cn1.subtract(cn2);
cn6 = cn1.multiply(cn2);
cn7 = cn1.divide(cn2);
System.out.println("cn1 + cn2: " + cn4.real + " + "+cn4.imaginary+"i");
System.out.println("cn1 - cn2: " + cn5.real+ " + "+cn5.imaginary+"i");
System.out.println("cn1 * cn2: " + cn6.real+" + "+cn6.imaginary+"i");
System.out.println("cn1 / cn2: " + cn7.real+" + "+cn7.imaginary+"i");
}

Explanation / Answer

Hi,

To enhance your project, I have used overloaded Constructor like ComplexNumber(float real, float imaginary) and ComplexNumber(String real, String imaginary).

And I have created 4 functions to call those functions

addDouble();
addFloat();
addString();

Last function static void addDouble(double d1, double d2, double d3, double d4) needs user Input as per your requirement.

Please find below the workable code.

import java.util.Scanner;

class ComplexNumber {
double real;
double imaginary;

ComplexNumber(double real, double imaginary) {
this.real = real;
this.imaginary = imaginary;
}

ComplexNumber(float real, float imaginary) {
this.real = real;
this.imaginary = imaginary;
}

ComplexNumber(String real, String imaginary) {
Double realNew = new Double(real);
Double imaginaryNew = new Double(real);

this.real = realNew;
this.imaginary = imaginaryNew;
}

public ComplexNumber add(ComplexNumber n) {
ComplexNumber result = new ComplexNumber(0, 0);
result.real = real + n.real;
result.imaginary = imaginary + n.imaginary;
return result;
}

public ComplexNumber subtract(ComplexNumber n) {
ComplexNumber result = new ComplexNumber(0, 0);
result.real = real - n.real;
result.imaginary = imaginary - n.imaginary;
return result;
}

public ComplexNumber multiply(ComplexNumber n) {
ComplexNumber result = new ComplexNumber(0, 0);
result.real = real * n.real - imaginary * n.imaginary;
result.imaginary = real * n.imaginary + imaginary * n.real;
return result;
}

public ComplexNumber divide(ComplexNumber n) {
ComplexNumber result = null;
ComplexNumber denominatorConjugate = new ComplexNumber(n.real,
-n.imaginary);
ComplexNumber denominator = n.multiply(denominatorConjugate);
result = new ComplexNumber((this.real / denominator.real),
(this.imaginary / denominator.real));
result = result.multiply(denominatorConjugate);
return result;
}
}

public class ComplexNumberDemo {
public static void main(String[] args) {

addDouble();
addFloat();
addString();
// User Input
Scanner sc = new Scanner(System.in);
System.out.println("Enter real number for constructor 1");
double d1 = sc.nextDouble();
System.out.println("Enter real number for constructor 2");
double d2 = sc.nextDouble();
System.out.println("Enter Imaginery number for constructor 1");
double d3 = sc.nextDouble();
System.out.println("Enter Imaginery number for constructor 2");
double d4 = sc.nextDouble();

addDouble(d1, d2, d3, d4);
}

static void addDouble() {
System.out.println("Adding Double");
ComplexNumber cn1 = new ComplexNumber(4, 5);
ComplexNumber cn2 = new ComplexNumber(3, -2);
ComplexNumber cn4, cn5, cn6, cn7;
System.out.println("First ComplexNumber number: " + cn1.real + " + "
+ cn1.imaginary + "i");
System.out.println("Second ComplexNumber number: " + cn2.real + " + "
+ cn2.imaginary + "i");
if (cn1.equals(cn2))
System.out.println("cn1 and cn2 are equal.");
else
System.out.println("cn1 and cn2 are NOT equal.");
cn4 = cn1.add(cn2);
cn5 = cn1.subtract(cn2);
cn6 = cn1.multiply(cn2);
cn7 = cn1.divide(cn2);
System.out.println("cn1 + cn2: " + cn4.real + " + " + cn4.imaginary
+ "i");
System.out.println("cn1 - cn2: " + cn5.real + " + " + cn5.imaginary
+ "i");
System.out.println("cn1 * cn2: " + cn6.real + " + " + cn6.imaginary
+ "i");
System.out.println("cn1 / cn2: " + cn7.real + " + " + cn7.imaginary
+ "i");
}

static void addFloat() {
System.out.println("Adding Float");
ComplexNumber cn1 = new ComplexNumber(4F, 5F);
ComplexNumber cn2 = new ComplexNumber(3F, -2F);
ComplexNumber cn4, cn5, cn6, cn7;
System.out.println("First ComplexNumber number: " + cn1.real + " + "
+ cn1.imaginary + "i");
System.out.println("Second ComplexNumber number: " + cn2.real + " + "
+ cn2.imaginary + "i");
if (cn1.equals(cn2))
System.out.println("cn1 and cn2 are equal.");
else
System.out.println("cn1 and cn2 are NOT equal.");
cn4 = cn1.add(cn2);
cn5 = cn1.subtract(cn2);
cn6 = cn1.multiply(cn2);
cn7 = cn1.divide(cn2);
System.out.println("cn1 + cn2: " + cn4.real + " + " + cn4.imaginary
+ "i");
System.out.println("cn1 - cn2: " + cn5.real + " + " + cn5.imaginary
+ "i");
System.out.println("cn1 * cn2: " + cn6.real + " + " + cn6.imaginary
+ "i");
System.out.println("cn1 / cn2: " + cn7.real + " + " + cn7.imaginary
+ "i");
}

static void addString() {
System.out.println("Adding String");
ComplexNumber cn1 = new ComplexNumber("4", "5");
ComplexNumber cn2 = new ComplexNumber("3", "-2");
ComplexNumber cn4, cn5, cn6, cn7;
System.out.println("First ComplexNumber number: " + cn1.real + " + "
+ cn1.imaginary + "i");
System.out.println("Second ComplexNumber number: " + cn2.real + " + "
+ cn2.imaginary + "i");
if (cn1.equals(cn2))
System.out.println("cn1 and cn2 are equal.");
else
System.out.println("cn1 and cn2 are NOT equal.");
cn4 = cn1.add(cn2);
cn5 = cn1.subtract(cn2);
cn6 = cn1.multiply(cn2);
cn7 = cn1.divide(cn2);
System.out.println("cn1 + cn2: " + cn4.real + " + " + cn4.imaginary
+ "i");
System.out.println("cn1 - cn2: " + cn5.real + " + " + cn5.imaginary
+ "i");
System.out.println("cn1 * cn2: " + cn6.real + " + " + cn6.imaginary
+ "i");
System.out.println("cn1 / cn2: " + cn7.real + " + " + cn7.imaginary
+ "i");
}

static void addDouble(double d1, double d2, double d3, double d4) {
System.out.println("Adding Double for user Input");
ComplexNumber cn1 = new ComplexNumber(d1, d3);
ComplexNumber cn2 = new ComplexNumber(d2, d4);
ComplexNumber cn4, cn5, cn6, cn7;
System.out.println("First ComplexNumber number: " + cn1.real + " + "
+ cn1.imaginary + "i");
System.out.println("Second ComplexNumber number: " + cn2.real + " + "
+ cn2.imaginary + "i");
if (cn1.equals(cn2))
System.out.println("cn1 and cn2 are equal.");
else
System.out.println("cn1 and cn2 are NOT equal.");
cn4 = cn1.add(cn2);
cn5 = cn1.subtract(cn2);
cn6 = cn1.multiply(cn2);
cn7 = cn1.divide(cn2);
System.out.println("cn1 + cn2: " + cn4.real + " + " + cn4.imaginary
+ "i");
System.out.println("cn1 - cn2: " + cn5.real + " + " + cn5.imaginary
+ "i");
System.out.println("cn1 * cn2: " + cn6.real + " + " + cn6.imaginary
+ "i");
System.out.println("cn1 / cn2: " + cn7.real + " + " + cn7.imaginary
+ "i");
}

}

Please find below the output.

Adding Double
First ComplexNumber number: 4.0 + 5.0i
Second ComplexNumber number: 3.0 + -2.0i
cn1 and cn2 are NOT equal.
cn1 + cn2: 7.0 + 3.0i
cn1 - cn2: 1.0 + 7.0i
cn1 * cn2: 22.0 + 7.0i
cn1 / cn2: 0.15384615384615385 + 1.7692307692307694i
Adding Float
First ComplexNumber number: 4.0 + 5.0i
Second ComplexNumber number: 3.0 + -2.0i
cn1 and cn2 are NOT equal.
cn1 + cn2: 7.0 + 3.0i
cn1 - cn2: 1.0 + 7.0i
cn1 * cn2: 22.0 + 7.0i
cn1 / cn2: 0.15384615384615385 + 1.7692307692307694i
Adding String
First ComplexNumber number: 4.0 + 4.0i
Second ComplexNumber number: 3.0 + 3.0i
cn1 and cn2 are NOT equal.
cn1 + cn2: 7.0 + 7.0i
cn1 - cn2: 1.0 + 1.0i
cn1 * cn2: 0.0 + 24.0i
cn1 / cn2: 1.3333333333333333 + 0.0i
Enter real number for constructor 1
1
Enter real number for constructor 2
2
Enter Imaginery number for constructor 1
3
Enter Imaginery number for constructor 2
4
Adding Double for user Input
First ComplexNumber number: 1.0 + 3.0i
Second ComplexNumber number: 2.0 + 4.0i
cn1 and cn2 are NOT equal.
cn1 + cn2: 3.0 + 7.0i
cn1 - cn2: -1.0 + -1.0i
cn1 * cn2: -10.0 + 10.0i
cn1 / cn2: 0.7 + 0.09999999999999998i

Hope it helps and satisfies the requirement.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote