20200924-5 四则运算试题生成,结对

作业要求 20200924-5 四则运算试题生成,结对

结对队友: 杜蕾

项目源码参见git@e.coding.net:qqq2/f4/f4.git

功能1

四则运算

A: 使用两个数组实现,一个数组实现生成四个随机数,一个数组生成三个操作符。按顺序拼接。

fig 1

fig 2

功能2

支持括号

A: 以后功能使用二叉树生成,生成一颗具有三个非叶子节点(操作符),四个叶节点(操作数)的完全二叉树。同时,其中序遍历正好对应了表达式的中缀表达式,后序遍历正好是逆波兰式。其完全的括号生成时每个父节点与左右子树连接时,添加括号。为了避免添加多余括号,简化为如下规则:

  1. 如果左右子树的操作符优先级低于父节点的,添加括号。

  2. 如果父节点为/-, 右子树添加括号。

这是实现花费最长时间的部分,编程时需要对相关条件进行细致分析,有效的合并分解,才能构建好的处理流程。

fig 3

fig 4

功能3

限定题目数量,"精美"打印输出,避免重复

A: 添加程序参数,Python的argument包提供了良好的支持。

fig 5

功能4

支持分数出题和运算

A:

引入 Fraction 包处理分数。 对于大于 1的数字特殊处理,如果时带分数按要求显示。

这里引入了一个计算错误,所以在计算时要清楚的了解自己的行为,并明白操作回造成的后果并正确处理。

fig 6

fig 7

版本控制

项目源码参见git@e.coding.net:qqq2/f4/f4.git

讨论图片

fig 8

fig 9

posted @ 2020-10-07 01:08  WenqiangXie  阅读(96)  评论(0编辑  收藏  举报