EN3085 Assessed Coursework 1 1. Create a class Complex to allow programmers the easy use of complex numbers in their programs. An object of that class should: [5] a. Be able to store a complex number in the most efficient way. b. Make use of constructor and destructor functions if needed. The constructor should take three arguments: a character indicating if the last two arguments should be interpreted as real and imaginary parts or magnitude and angle, and two real numbers defining the value of the complex number. The constructor should also initialise the members of the object appropriately, including for cases when it receives only some or no arguments. c. Be able to return individual element of the complex number in both rectangular (real and imaginary) and polar form (magnitude and angle). d. Allow modification of the stored complex number by enabling the modification of individual elements of the complex number (both in rectangular and polar form). e. Include a function to print on the screen the complex number, either in rectangular or polar form. 2. Create a function GetComplexListFromFile, that: [2] a. Reads all complex numbers recorded in a text file. Each data line in the text file always consist of one of the following, to define a complex number: • a letter ‘p’ followed by a magnitude and an angle (in radians), all separated by a space. • a letter ‘r’ followed by the real and imaginary parts, all separated by a space. b. Creates for each of them an object of type Complex. c. Stores each created Complex object in a vector to obtain a list of all complex number defined in the file. d. Returns the resulting vector to the function call location. 3. Create a function SaveComplexListToFile that saves a provided list of Complex objects into a text file, using the same text file format mentioned in question 2.a. [2] 4. Using the Complex class and the functions developed previously, write a main function which will in the order provided below: [2] a. Stores in a vector ComplexList all complex number stored in the provided file "ComplexList.txt". b. Prints on the screen, in both rectangular and polar forms, all complex numbers stored in ComplexList. c. Keeps asking on the screen if the user wants to add a complex number to the list and if so asks for the relevant information and stores the provided new complex number in the vector ComplexList. d. Saves all the object stored in ComplexList in the file "ComplexList.txt". 5. Expand the class Complex with the following overloaded member operators: binary operators "+", "-", "*", and "/" and a unary operator "-". [4] The operators should return complex numbers only in rectangular form and provide the standard functionality for arithmetic operations on complex numbers. Using these operators, in the main function: a. Calculate the sum of all complex number stored in the vector ComplexList, after the reading of the file "ComplexList.t ...