**EE150 Project **

**Project: ADT for Complex Numbers**

**Project Descriptions:**

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.

**Project Requirements:**

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%