显然在这个题目中,如何解析输入的字符创是主要问题,我的思路是用'+',‘-’,‘=’分段这个字符串,并将每段的开头用一个vector变量记录下来(第一段开始点为0,要手动加入),如分成ax^2 bx c d 这样几段
然后以每段的开始为起点,每段的结束为终点,历遍字符串的特定部分。用变量int fengjie 记录下每段的系数的结尾位置 ,若循环时该字符为数字,则fengjie ++,否则记录数字,并判断数字后的项是二次项还是一次项还是常数。然后将数字输入到对应变量。
运行结果图第一次发文,代码中的不足之处,请各位牛人们不要吝惜您的板砖,感谢您指出我的不足
下面上代码
//fangcheng.h
#pragma once
#include <string>
class fangcheng
{
public:
fangcheng(void);
~fangcheng(void);
// 执行解方程
bool jie(void);
// 打印解的结果
void print(void);
void input(void);
// 解析字符串
void jiexiStr(std::string);
private:
double m_vA;// 一元二次方程的a
double m_vB;// 一元二次方程的b
double m_vC;// 一元二次方程的c
double x1;
double x2;
bool isOK;
std::string strFangch