031602431 王源github
关于用户输入输出:算法
算式生成:数组
一个算式由符号和先后“数据域”构成,由此,采用二叉树来建构算式。而后结合随机生成数的算法来随机生成一个算式。函数
class TreePoint{ private: TreePoint *prep; TreePoint *next; char symbol; int priority; int rightpriority; Fraction *num; char newsymbol(int upper); …… };
算式 计算:学习
算出前“数据域”和后“数据域”的值,而后根据符号算出算式的值。整个计算采用递归的方法对二叉树进行中序遍历测试
算式 输出:编码
一样采用递归的方法对二叉树进行中序遍历。对于括号的解决采用优先级的方式。一个数的priority及rightpriority均为4。rightpriority用于“解决减号的后运算域是加号或减号”的状况及相似状况。一旦遍历的时候发现优先级掉落(例如'*'的前数据域出现加法),就增长括号(只在输出时)。设计
switch (symbol) { case '+':priority=1;rightpriority=1;break; case '-':priority=1;rightpriority=3;break; case '*':priority=2;rightpriority=2;break; case '/':priority=2;rightpriority=3;break; }
关于数:日志
用Fraction类进行存储,将整数和真分数所有视为分数,overload四则运算、逻辑等于。
class Fraction{ private: int nume;// numerator int deno;// denominator …… };
关于其余要求:
- - -
开始的时候咱们确立了大概的思路,而后开始学习github协做的相关事项。而后咱们各自确立任务,开始实现一个个功能。在我敲代码的过程当中出现过很多问题,也发现本身知识储备不够,因此我是边学边敲,感受拖慢了进度,很很差意思
。。。最后我在写完main函数,在编译时出现了许多bug。。。其中有几个我发现本身解决不了,多亏了王源同窗的帮助。。。王源同窗以后还对界面作了调整,看起来更加美观。再一次王源同窗的帮助(鞠躬)。
最后感谢队友王源同窗