求解一元二次方程。 一元二次方程的定义为: ax2+bx+c=0 (1)如果b2 -4ac>0,方程有两个不同的实根,分别是: (2)如果b2 -4ac< 0,方程没有实根,但有虚根; (3)如果b2 -4ac= 0,方程有一个实根。 请你编写一个程序,使其能求出多个二次方程的根。该程序要询问用户是否想继续解下一个方程。用户输入1来继续,输入其它数字,则终止程序。程序要求用户输入a,b和c,然后根据前面的条件计算,并输出答案。 要求:使用类实现, (1)a,b,c为该类的私有成员变量; (2)求根的实现为该类的成员函数,形式为:
//函数返回值:实根的个数;//参数:x- 用以返回实根值的数组;long CalResult(float x[]);(3)该类还包含有参构造函数、析构函数。 (4)使用MFC工程实现,可酌情加分。
问题描述题中要求我们编写一个程序,使其能求出多个二次方程的根,并要询问用户是否想继续解下一个方程,用户输入1来继续,输入其它数字,则终止程序。该程序还要求用户分别输入一元二次方程各项的系数a,b和c,然后经过计算,输出答案。
问题分析对于本题,除了要从数学角度来解一元二次方程,还要用计算机语言表示出来。所以我们应定义一个求解类FindRoot,并使一元二次方程各项系数a,b,c为该类的私有成员变量,按照题中要求,求根的实现为该类的成员函数,其形式为long CalResult(float x[]),而询问客户是否继续计算一元二次方程则放在主函数部分。 但是在编写函数的过程中要注意两点: 1.当a = 0时的情况要考虑进去。 2.当Δ0时,方程有两个不相等的实根 (2)当Δ=0时,方程有两个相等的实根x1=x2=(-b)/(2a),即一个实根; (3)当Δ 0){n = 2;x[0] = (-b + sqrt(m)) / 2 * a;x[1] = (-b - sqrt(m)) / 2 * a;cout