Project: ADT for Complex Numbers
1. Define an ADT for complex numbers
· The internal state of a complex number should be presented by a double precisionfloating point value for the real part and a similar floating point value for the imaginary part.
· Implement two constructors. The default constructor takes no arguments. A constructor with two double precision arguments sets both fields.
· Define pair of member functions to return real and imaginary part of the complex number.
· Define arithmetic operations of addition, subtraction and multiplication.
2. Based on the ADT developed above, write a main program to read in two complex numbers, calculate the sum, difference, and product of two numbers. Write two functions to calculate and display
· The absolute value of a complex number
· The square root(s) of a complex number.
Notes on complex number operations:
To find square roots of a complex number :
(1) if both a and b are 0, only one square root, 0.
(2) if only b is 0, then we will have two real square roots, and- if a > 0; or we will have two imaginary square roots, and- if a < 0.
(3) if b is not 0, we have two roots and :
where , i.e., the absolute value of a complex number.
1. The program must be properly indented and documented.
2. When submitting your project, please submit an archive of your entire project directory (i.e., complexADT.tar.gz)
3. Grading guideline:
— Correctness 60%
— Coding conventions, documentation, and style 20%
— Tests (Diversity, Correct formulation, and Documentation) 20%