Answer:
Following are the code to this question:
#include <iostream>//header file
#include<math.h>//header file
using namespace std;
class Quadratic//defining a class Quadratic
{
private:
double a,b,c;//defining a double variable
public:
Quadratic()//defining default constructor
{
a = 0;//assigning value 0
b = 0;//assigning value 0
c = 0;//assigning value 0
}
Quadratic(double a, double b, double c)//defining a parameterized constructor
{
this->a = a;//use this keyword to hold value in a variable
this->b = b;//use this keyword to hold value in b variable
this->c = c;//use this keyword to hold value in c variable
}
double getA() //defining a get method
{
return a;//return value a
}
void setA(double a)//defining a set method to hold value in parameter
{
this->a = a;//assigning value in a variable
}
double getB() //defining a get method
{
return b;//return value b
}
void setB(double b)//defining a set method to hold value in parameter
{
this->b = b;//assigning value in b variable
}
double getC() //defining a get method
{
return c;//return value c
}
void setC(double c)//defining a set method to hold value in parameter
{
this->c = c;//assigning value in c variable
}
double Evaluate(double x)//defining a method Evaluate to hold value in parameter
{
return ((a*x*x)+(b*x)+c);//return evaluated value
}
double numberOfReal()//defining a method numberOfReal to calculates the real roots
{
return (b*b)-(4*a*c);//return real roots
}
void findroots()//defining a method findroots
{
double d=numberOfReal();//defining double variable to hold numberOfReal method value
if(d<0)//use if block to check value of d less than 0
cout<<"Equation has no real roots"<<endl;//print message
else
{
double r1=(-b+sqrt(numberOfReal()))/(2*a);//holding root value r1
double r2=(-b-sqrt(numberOfReal()))/(2*a);//holding root value r2
if(r1==r2)//defining if block to check r1 equal to r2
cout<<"Equation has one real root that is "<<r1<<endl;//print message with value
else//else block
cout<<"The equation has two real roots that are "<<r1<<" and "<<r2<<endl;////print message with value
}
}
void print()//defining a method print
{
cout<< a << "x^2 + " << b << "x + " << c <<endl;//print Quadratic equation
}
};
int main()//defining main method
{
Quadratic q(5,6,1);//creating Quadratic class object that calls parameterized constructor
q.print();//calling print method
cout<<q.numberOfReal()<<endl;//calling method numberOfReal that prints its value
q.findroots();//calling method findroots
cout<<q.Evaluate(-1);//calling method Evaluate that prints its value
return 0;
}
Output:
5x^2 + 6x + 1
16
The equation has two real roots that are -0.2 and -1
0
Explanation:
In the above code, a class "Quadratic" is declared, which is used to define a default and parameter constructor to holds its parameter value.
In the next step, the get and set method is defined that holds and returns the quadratic value, and "Evaluate, numberOfReal, findroots, and print" in the evaluate method a double variable is used as a parameter that returns evaluated value.
In the "numberOfReal" method it calculates the real roots and returns its value. In the "findroots" method a double variable "d" is declared that hold "numberOfReal" value,
and use a conditional statement to check its value, and in the print method, it prints the quadratic equation.
In the main method, the lass object it calls the parameterized constructor and other methods.