1. A complex (\"imaginary\") number has the form a + bi, where a is called the r
ID: 3590087 • Letter: 1
Question
1. A complex ("imaginary") number has the form a + bi, where a is called the real part, b is called the imaginary part, and i = sqrt(-1). A complex number a + bi can be expressed as the ordered pair of real numbers (a, b).
Arithmetic operations on two complex numbers (a, b) and (c, d) are as follows:
Addition: (a, b) + (c, d) = (a + c, b + d)
Subtraction: (a, b) - (c, d) = (a - c, b - d)
Multiplication: (a, b) * (c, d) = (a * c - b * d, a * d + b * c)
Division: (a, b) / (c, d) = ((a * c + b * d)/(c2 + d2), (b * c - a * d)/(c2 + d2))
Absolute value: |(a, b)| = sqrt(a2 + b2)
Design and implement a ComplexNumber class that represents the real and imaginary parts as double values and provides at least the following methods:
Constructors for default and explicit initialization.
A method to read (get input) a complex number. Look at the sample output screen for the design required.
A method to print a complex number as (a, b). Have 2 decimals for both.
A method called getReal that returns the real part of a complex number.
A method called getImaginary that returns the imaginary part of a complex number.
Methods equals, copy, getCopy, toString.
Arithmetic methods to add, subtract, multiply, and divide two complex numbers.
A method called cAbs to implement the absolute value of a complex number.
To test your class write a client that has at least a function menu() with options for the methods implemented and an option to exit. Your program should loop until the user chooses to exit. In this loop you are required to use a switch statement for all possible cases (similar design as the one used for Problem#1 in Assignment#1).
SAMPLE OUTPUT:
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 2
Enter complex number (real imaginary): 3.4 5.6
Enter complex number (real imaginary): 1.23 2.56
First complex number is: (3.40, 5.60)
Second complex number is: (1.23, 2.56)
Result: (3.40, 5.60) - (1.23, 2.56) = (2.17, 3.04)
Command number 1 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 4
Enter complex number (real imaginary): 11.2 22.1
Enter complex number (real imaginary): 1.45 3.56
First complex number is: (11.20, 22.10)
Second complex number is: (1.45, 3.56)
Result: (11.20, 22.10) / (1.45, 3.56) = (6.42, -0.53)
Command number 2 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 2
Enter complex number (real imaginary): 1.78 4.5
Enter complex number (real imaginary): 3.56 8.9
First complex number is: (1.78, 4.50)
Second complex number is: (3.56, 8.90)
Result: (1.78, 4.50) - (3.56, 8.90) = (-1.78, -4.40)
Command number 3 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 3
Enter complex number (real imaginary): 2.22 3.33
Enter complex number (real imaginary): 1.24 2.45
First complex number is: (2.22, 3.33)
Second complex number is: (1.24, 2.45)
Result: (2.22, 3.33) * (1.24, 2.45) = (-5.41, 9.57)
Command number 4 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 6
Enter complex number (real imaginary): 1.11 2.22
Enter complex number (real imaginary): 1.11 2.22
First complex number is: (1.11, 2.22)
Second complex number is: (1.11, 2.22)
The complex numbers are equal.
Command number 5 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 6
Enter complex number (real imaginary): 1.2 2.3
Enter complex number (real imaginary): 11.2 2.3
First complex number is: (1.20, 2.30)
Second complex number is: (11.20, 2.30)
The complex numbers are NOT equal.
Command number 6 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 5
Enter complex number (real imaginary): 11.1 22.2
The complex number is: (11.10, 22.20)
Result: |(11.1, 22.2)| = 24.82
Command number 7 completed.
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option: 0
Testing completed.
Explanation / Answer
ComplexNumber.java
import java.text.DecimalFormat;
import java.util.Scanner;
public class ComplexNumber {
private double a, b;
Scanner sc;
DecimalFormat df;
public ComplexNumber() {
super();
sc = new Scanner(System.in);
df = new DecimalFormat("#.##");
}
public void readComplecNumber() {
//Getting the First Complex number entered by the user
System.out.print("Enter complex number (real imaginary):");
a = sc.nextDouble();
b = sc.nextDouble();
}
public String print() {
return "(" + a + "," + b + ")";
}
public String add(ComplexNumber cn) {
return "Result: (" + a + "," + b + ") + (" + cn.a + "," + cn.b + ") =" + "(" + df.format(a + cn.a) + "," + df.format(b + cn.b) + ")";
}
public String subtract(ComplexNumber cn) {
return "Result: (" + a + "," + b + ") - (" + cn.a + "," + cn.b + ") =" + "(" + df.format(a - cn.a) + "," + df.format(b - cn.b) + ")";
}
public String multiply(ComplexNumber cn) {
double Real = ((a * cn.a) - (b * cn.b));
double Im = ((a * cn.b) + (b * cn.a));
return "Result: (" + a + "," + b + ") * (" + cn.a + "," + cn.b + ") =" + "(" + df.format(Real) + "," + df.format(Im) + ")";
}
public String divide(ComplexNumber cn) {
double Real = ((a * cn.a) + (b * cn.b)) / ((cn.a * cn.a) + (cn.b * cn.b));
double Im = ((b * cn.a) - (a * cn.b)) / ((cn.a * cn.a) + (cn.b * cn.b));
return "Result: (" + a + "," + b + ") / (" + cn.a + "," + cn.b + ") =" + "(" + df.format(Real) + "," + df.format(Im) + ")";
}
public String abs() {
return "Result: |(" + a + "," + b + ")| =" + df.format(Math.sqrt((a * a) + (b * b)));
}
public void equals(ComplexNumber cn) {
//checking whether the complex numbers are equal or not.
if (a == cn.a && b == cn.b)
System.out.println("The complex numbers are equal.");
else
System.out.println("The complex numbers are Not equal.");
}
}
_________________
Test.java
import java.text.DecimalFormat;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//declaring variable
int option;
Scanner sc = new Scanner(System.in);
int count = 0;
//this loop continue to execute until user enters Zero(0) as option
do {
//Displaying the menu
System.out.println(" Your options for Complex arithmetic are:");
System.out.println("----------------------------------------");
System.out.println("1) Add 2 complex numbers");
System.out.println("2) Subtract 2 complex numbers");
System.out.println("3) Multiply 2 complex numbers");
System.out.println("4) Divide 2 complex numbers");
System.out.println("5) Absolute value of a complex number");
System.out.println("6) Compare 2 complex numbers");
System.out.println("0) EXIT");
//Getting the Option entered by the user
System.out.print("Please enter your option:");
option = sc.nextInt();
//based on the user selected option the corresponding case will be executed
switch (option) {
//This will add the complex numbers
case 1:
{
ComplexNumber cn1 = new ComplexNumber();
cn1.readComplecNumber();
ComplexNumber cn2 = new ComplexNumber();
cn2.readComplecNumber();
//Displaying the complex numbers
System.out.println("First complex number is:" + cn1.print());
System.out.println("Second complex number is:" + cn2.print());
//Displaying the result after performing the addition of two complex numbers
System.out.println(cn1.add(cn2));
System.out.println("Command number " + (++count) + " completed");
continue;
}
case 2:
{
ComplexNumber cn1 = new ComplexNumber();
cn1.readComplecNumber();
ComplexNumber cn2 = new ComplexNumber();
cn2.readComplecNumber();
//Displaying the complex numbers
System.out.println("First complex number is:" + cn1.print());
System.out.println("Second complex number is:" + cn2.print());
//Displaying the result after performing the subtraction of two complex numbers
System.out.println(cn1.subtract(cn2));
System.out.println("Command number " + (++count) + " completed");
continue;
}
case 3:
{
ComplexNumber cn1 = new ComplexNumber();
cn1.readComplecNumber();
ComplexNumber cn2 = new ComplexNumber();
cn2.readComplecNumber();
//Displaying the complex numbers
System.out.println("First complex number is:" + cn1.print());
System.out.println("Second complex number is:" + cn2.print());
//Displaying the result after performing the multiplication of two complex numbers
System.out.println(cn1.multiply(cn2));
System.out.println("Command number " + (++count) + " completed");
continue;
}
case 4:
{
ComplexNumber cn1 = new ComplexNumber();
cn1.readComplecNumber();
ComplexNumber cn2 = new ComplexNumber();
cn2.readComplecNumber();
//Displaying the complex numbers
System.out.println("First complex number is:" + cn1.print());
System.out.println("Second complex number is:" + cn2.print());
//Displaying the result after performing the multiplication of two complex numbers
System.out.println(cn1.divide(cn2));
System.out.println("Command number " + (++count) + " completed");
continue;
}
case 5:
{
ComplexNumber cn1 = new ComplexNumber();
cn1.readComplecNumber();
//Displaying the complex numbers
System.out.println("First complex number is:" + cn1.print());
//Displaying the result after performing the abs of a complex number
System.out.println(cn1.abs());
System.out.println("Command number " + (++count) + " completed");
continue;
}
case 6:
{
ComplexNumber cn1 = new ComplexNumber();
cn1.readComplecNumber();
ComplexNumber cn2 = new ComplexNumber();
cn2.readComplecNumber();
//Displaying the complex numbers
System.out.println("First complex number is:" + cn1.print());
System.out.println("Second complex number is:" + cn2.print());
//Displaying the result after performing the multiplication of two complex numbers
cn1.equals(cn2);
System.out.println("Command number " + (++count) + " completed");
continue;
}
case 0:
{
//Displaying the message
System.out.println("Testing completed.");
break;
}
}
} while (option != 0);
}
}
_________________
Output:
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:2
Enter complex number (real imaginary):3.4 5.6
Enter complex number (real imaginary):1.23 2.56
First complex number is:(3.4,5.6)
Second complex number is:(1.23,2.56)
Result: (3.4,5.6) - (1.23,2.56) =(2.17,3.04)
Command number 1 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:4
Enter complex number (real imaginary):11.2 22.1
Enter complex number (real imaginary):1.45 3.56
First complex number is:(11.2,22.1)
Second complex number is:(1.45,3.56)
Result: (11.2,22.1) / (1.45,3.56) =(6.42,-0.53)
Command number 2 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:2
Enter complex number (real imaginary):1.78 4.5
Enter complex number (real imaginary):3.56 8.9
First complex number is:(1.78,4.5)
Second complex number is:(3.56,8.9)
Result: (1.78,4.5) - (3.56,8.9) =(-1.78,-4.4)
Command number 3 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:3
Enter complex number (real imaginary):2.22 3.33
Enter complex number (real imaginary):1.24 2.45
First complex number is:(2.22,3.33)
Second complex number is:(1.24,2.45)
Result: (2.22,3.33) * (1.24,2.45) =(-5.41,9.57)
Command number 4 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:6
Enter complex number (real imaginary):1.11 2.22
Enter complex number (real imaginary):1.11 2.22
First complex number is:(1.11,2.22)
Second complex number is:(1.11,2.22)
The complex numbers are equal.
Command number 5 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:6
Enter complex number (real imaginary):1.2 2.3
Enter complex number (real imaginary):11.2 2.3
First complex number is:(1.2,2.3)
Second complex number is:(11.2,2.3)
The complex numbers are Not equal.
Command number 6 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:5
Enter complex number (real imaginary):11.1 22.2
First complex number is:(11.1,22.2)
Result: |(11.1,22.2)| =24.82
Command number 7 completed
Your options for Complex arithmetic are:
----------------------------------------
1) Add 2 complex numbers
2) Subtract 2 complex numbers
3) Multiply 2 complex numbers
4) Divide 2 complex numbers
5) Absolute value of a complex number
6) Compare 2 complex numbers
0) EXIT
Please enter your option:0
Testing completed.
_____________Could you rate me well.Plz .Thank You
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.