头文件equation.h#if ! defined(EQUATION_H)#define EQUATION_H #include#include using namespace std;class FindRoot{ private : float a,b,c,d; double x1,x2; public: FindRoot(float x,float y,float z); void Find(); void Display();};#endif源文件equation.cpp#include "equation.h"FindRoot :: FindRoot(float x ,float y , float z){ a=x; b=y; c=z; d =b*b -4 * a * c;}void FindRoot :: Find() { if(d>0){//有两个不相同的实数解 x1=(-b + sqrt(d)) / (2 * a); x2=(-b - sqrt(d)) / (2 * a); return ; }else if(d == 0){//有两个相同的实数解 x1=x2=(-b) /(2 * a); return ; }else{//有两个相同的实数解 x1=(-b) / (2 * a); x2=sqrt(-b) / (2 * a); } }void FindRoot :: Display() { if(d > 0){ cout<<"X1="< < > a; if(a == 0){ getchar();//消除回车影响 return; } cout<<"输入方程式系数b:"; cin>> b; cout<<"输入方程式系数c:"; cin>> c;}
测试
D:\C++WorkSpace\equation\Debug>equation.exe*==============================================================***求解方程式ax2+bx+c =0 的根*==============================================================*输入方程式系数a:1输入方程式系数b:-2输入方程式系数c:1X1=X2=1输入方程式系数a:1输入方程式系数b:-3输入方程式系数c:2X1=2X2=1输入方程式系数a:1输入方程式系数b:3输入方程式系数c:5X1=-1.5+-1.#INDiX2=-1.5--1.#INDi输入方程式系数a:0