C++语言题目1
//为二元方程式ax**2+bx+c=0设计一个名为QuadraticEquation的类,这个类包括 //1、代表三个系数的私有域数据a、b、c //2、一个参数为a、b、c的构造方法 //3、a、b、c的三个get方法 //4、一个名为getDiscriminant()的方法返回判别式结果:b**2-4ac //5、一个名为getRoot1()和getRoot2()的方法返回等式的两个根 //这两个方法在判别式为非负数的时候返回计算结果,如果判别式为负数,这两个方法返回0. //实现该类,编写一个测试程序,任给a、b、c的值创建一个QuadraticEquation对象, //显示判别式结果。如果判别式为正数,输出该方程的两个根;如果判别式为0,输出一个根; //如果判别式为负数,输出“该方程无根”。 #include"iostream" #include"cmath" using namespace std; class QuadraticEquation { private: double a; double b; double c; public: QuadraticEquation(double tempa, double tempb, double tempc) { a = tempa; b = tempb; c = tempc; } double geta() { return a; } double getb() { return b; } double getc() { return c; } double getDiscriminant() { return getb()*getb()-4*geta()*getc(); } double getRoot1() { if(getDiscriminant()>=0) { return (-getb()+sqrt(getDiscriminant()))/(2*geta()); } else { return 0; } } double getRoot2() { if(getDiscriminant()>=0) { return (-getb()-sqrt(getDiscriminant()))/(2*geta()); } else { return 0; } } }; int main() { QuadraticEquation q(1,-8,15); cout<<"方程系数a为:"<<q.geta()<<endl; cout<<"方程系数b为:"<<q.getb()<<endl; cout<<"方程系数c为:"<<q.getc()<<endl; cout<<"判别式结果为:"<<q.getDiscriminant()<<endl; if(q.getDiscriminant()>0) { cout<<"方程的根为:x1="<<q.getRoot1()<<",x2="<<q.getRoot2()<<endl; } else if(q.getDiscriminant()==0) { cout<<"方程的根为:x1=x2="<<q.getRoot1()<<endl; } else { cout<<"该方程无根"<<endl; } return 0; }