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

A complex number is a number in the form a + bi, where a and b are real numbers

ID: 3762341 • Letter: A

Question

A complex number is a number in the form a + bi, where a and b are real numbers and i is sqrt(-1). The numbers a and b are known as the real part and imaginary part of the complex number, respectively. You can perform addition, subtraction, multiplication, and division for complex numbers using the following formulas:

a + bi + c + di = (a + c) + (b + d)i

a + bi - (c + di) = (a - c) + (b - d)i

(a + bi)*(c + di) = (ac - bd) + (bc + ad)i

(a + bi)/(c + di) = (ac + bd)/(c2 + d2) + (bc - ad)i/(c2 + d2)

Design and implement a class named Complex (subclass of Number) for representing complex numbers and the methods add, subtract, multiply, and divide for performing complex number operations, and override toString method for returning a string representation for a complex number. The toString method returns (a + bi) as a string. If b is 0, it simply returns a. Your Complex class should also implement the Comparable and Cloneable interfaces. Provide three constructors Complex(a, b), Complex(a), and Complex(). Complex() creates a Complex object for number 0 and Complex(a) creates a Complex object with 0 for b. Also provide the getRealPart() and getImaginaryPart() methods for returning the real and imaginary part of the

complex number, respectively. Write a test program that prompts the user to enter two complex numbers and

displays the result of their addition, subtraction, multiplication, and division.

Explanation / Answer

#include #include struct complex { int real, img; }; int main() { int choice, temp1, temp2, temp3; struct complex a, b, c; while(1) { printf("Press 1 to add two complex numbers. "); printf("Press 2 to subtract two complex numbers. "); printf("Press 3 to multiply two complex numbers. "); printf("Press 4 to divide two complex numbers. "); printf("Press 5 to exit. "); printf("Enter your choice "); scanf("%d",&choice); if( choice == 5) exit(0); if(choice >= 1 && choice = 0 ) printf("Sum of two complex numbers = %d + %di",c.real,c.img); else printf("Sum of two complex numbers = %d %di",c.real,c.img); } else if ( choice == 2 ) { c.real = a.real - b.real; c.img = a.img - b.img; if ( c.img >= 0 ) printf("Difference of two complex numbers = %d + %di",c.real,c.img); else printf("Difference of two complex numbers = %d %di",c.real,c.img); } else if ( choice == 3 ) { c.real = a.real*b.real - a.img*b.img; c.img = a.img*b.real + a.real*b.img; if ( c.img >= 0 ) printf("Multiplication of two complex numbers = %d + %di",c.real,c.img); else printf("Multiplication of two complex numbers = %d %di",c.real,c.img); } else if ( choice == 4 ) { if ( b.real == 0 && b.img == 0 ) printf("Division by 0 + 0i is not allowed."); else { temp1 = a.real*b.real + a.img*b.img; temp2 = a.img*b.real - a.real*b.img; temp3 = b.real*b.real + b.img*b.img; if ( temp1%temp3 == 0 && temp2%temp3 == 0 ) { if ( temp2/temp3 >= 0) printf("Division of two complex numbers = %d + %di",temp1/temp3,temp2/temp3); else printf("Division of two complex numbers = %d %di",temp1/temp3,temp2/temp3); } else if ( temp1%temp3 == 0 && temp2%temp3 != 0 ) { if ( temp2/temp3 >= 0) printf("Division of two complex numbers = %d + %d/%di",temp1/temp3,temp2,temp3); else printf("Division of two complex numbers = %d %d/%di",temp1/temp3,temp2,temp3); } else if ( temp1%temp3 != 0 && temp2%temp3 == 0 ) { if ( temp2/temp3 >= 0) printf("Division of two complex numbers = %d/%d + %di",temp1,temp3,temp2/temp3); else printf("Division of two complex numbers = %d %d/%di",temp1,temp3,temp2/temp3); } else { if ( temp2/temp3 >= 0) printf("Division of two complex numbers = %d/%d + %d/%di",temp1,temp3,temp2,temp3); else printf("Division of two complex numbers = %d/%d %d/%di",temp1,temp3,temp2,temp3); } } } else printf("Invalid choice."); printf(" Press any key to enter choice again... "); } }
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