CIS 278 Project 5 The QUAD CLASS solution

$24.99

Original Work ?
Category: You will Instantly receive a download link for .ZIP solution file upon Payment

Description

5/5 - (2 votes)

You are to implement a Quad class, such that you have both a ‘header file’ and an ‘implementation file ’ (see Chapter 11). The header file, Quad.h, provides class declaration and identifies public and private class members. The implementation file provides definitions for all member and friend functions.

A Quad object represents a Quadratic expression of degree 2, that is: ax2 + bx + c
For this assignment, the coefficients a, b and c are restricted to integers.

Public functions:
Quad()
Effect: create a Quadratic with a,b and c set to 0

Quad(int value)
Effect: creates a Quadratic with a=0, b=0, c = value

Quad(int a, int b, int c)
Effect: creates a Quadratic with the specified parameter values as coefficients

int eval(int value) const
Effect: evaluates the Quadratic for x = value
Postcondition: the Quad is unchanged
Returns: the computed result
For example, if the Quad equation was: 2×2 + 2x + 1
And method eval was called with value = 2, eval would return 14 ( 2*22 + 2*2 + 1)

int& operator[](int index)
Effect: set/access method for the coefficient of xindex
Returns: the coefficient of xindex

const Quad Quad::operator+(const Quad& qu) const // member function
Effect: overloads the + operator for Quad objects
Postcondition: this object and qu are unchanged
Returns: a new Quad object which is termwise sum of this object and qu

bool Quad::operator== (const Quad& q) const //member function
Effect: Compare this Quad to another object p to see if they are equal
Postcondition: this Quad object is unchanged
Returns:
A return value of true indicates that p refers to a Quad object
the same value as this Quad object. False is returned otherwise.

const Quad multiple(int value) const //member function
Effect: new Quad object is created in which each coefficient is a multiple of this object
Postcondition: this object is not changed
Returns: new object where each coefficient is ‘value times’ the coefficient of this object
(ie. this object a=2, b=4, c=3, value=6; new object a = 12, b =24, c = 18)
const Quad operator-() const // unary minus member function
Effect: new Quad object created identical to this one except coefficients are negated
Postcondition: this Quad object is unchanged
Returns: the new object

const Quad operator++() // autopreincrement member function
Effect: new Quad object created identical to this one after data is incremented
Postcondition: this Quad object coeffiecient are incremented by one
Returns: the new object

const Quad operator++(int) // autopreincrement member function
Effect: new Quad object created identical to this one before data is incremented
Postcondition: this Quad object coeffiecient are incremented by one
Returns: the new object

friend ostream& operator<<(ostream& out, const Quad& obj) //friend function Effect: outputs a string representation of this Quad Postcondition: this Quad object is unchanged Returns: a string of the form: a x2 + b x + c where a, b and c are the actual coeffients of the Quad object Quad operator-(const Quad& qu1, const Quad& qu2) //non- friend, non-member function Effect: overloads the binary - operator for Quad objects Postcondition: qu1 and qu2 are unchanged Returns: a new Quad object which is termwise difference of this qu1 and qu2 Application Contains a function void coefIn(int& value) which prompts for and reads an integer into a string object. This function verifies that all characters in the string are digits, and converts the digits to its integer representation. The function continues to reprompt the user until a valid string is provided. The integer is returned via the parameter list. You are to write an application (main program) which: • asks the user for coefficients a,b and c (use function coefIn(int& value)) • creates a Quad object, and outputs it to the screen • performs a variety of operations on this Quad object (and/or others created from it) such that all the correct operation of all is demonstrated. Be sure to provide output which clearly provides the result of each function call so that results can be verified. • test your functions in different scenerios – for example, statements such as q4 = (q1 - 2) + (q3 + q2); cout << "q4 is " << -q4 << endl; q5 = -(q1 + q2 + 2 - q3); cout << q5 << endl; where q1,q2,q3,q4 and q5 are Quad object, should work correctly. Submit files Quad.h, Quad.cpp, and your application.cpp file. Be sure that your name is included in each file and that all code is readable. Be sure to test your class thoroughly, as I will test it with applications other than your own.