Your task is to design and develop a C++ class whose objects represent polynomials.
A polynomial is shown as:anxn + an-1xn-1 + ... + a0
To simplify things, you can safely assume that the power of x and the coefficients are all integers.
Your Polynomial class should provide at least the following methods:
1 A default contructor, that produces a polynomial that has only a constant term of 0.
2 A constructor with a single argument of type int, that produces the polynomial that has only one constant term that is equal to the
constructor argument.
3 A constructor with three arguments, two int arrays and an int typed size. The first array stores exponents of the terms and the second
array stores the coefficients of the corresponding terms.
4 A copy constructor.
5 A suitable destructor.
6 A method to evaluate the polynomial. This method has one argument of type int, and returns the value obtained by plugging in its
argument for x and performing the indicated operations.
7 Overload the operators +, -, and * for addition, subtraction, and multiplication of polynomials.
8 As friend functions, overload input operator and output operator to input and output polynomials.When the user inputs a polynomial, the user types in a list of integer pairs. In each pair, the first is the exponent of the term and the second is the coefficient of the term. A pair starts with 0 (meaning constant term) indicates the end of the input for this polynomial. For example, the polynomialx7 + 3x4 - 5x3 + 2
will be entered by a user as:
7 1
4 3
3 -5
0 2
and the output should be shown as:
x^7 + 3x^4 - 5x^3 + 2
And as another example, the polynomial
2x4 + x3 - x2
will be entered by a user as:
4 2
3 1
2 -1
0 0
and the output should be shown as:
2x^4 + x^3 - x^2
For a sample main function to test the Polynomial class, click here. You need to include your own main function to test your Polynomial class.Design and DocumentationYou need to make and document decisions about which concrete data structure(s) to use for your Polynomial class implementation.You need to develop a README file as a way of design documentation. In your README file (Note: do not give it any extension name), there should be following sections:
1 Overview: briefly describe the requirement of this program, especially of the class Polynomial.
2 Design: briefly describe the modules in your design and why you choose your current design.
3 Implementation: briefly describe the concrete data structures used in each module. List the advantage and disadvantage of using these data structures. Explain whether there are alternative ways to implement this program.
4 Accomplishment: state clearly which parts of the assignment you completed.
5 Testing: list the test cases you have covered to test your program. For each test case, describe the data you used and the result shown by your program. Alternatively, if you used script to capture the sample run of your program, then you only need to describe your test cases and refer to your typescript file for the test run result.
6 Know Bugs.
7 Note: anything you would like to draw to the attention of the marker. Your source code file(s) should have the usual documentation as
mentioned in the first assignment.Create a Makefile to automate the building of your program. Upon typing make, an executable file named pex2 should be generated.