-
题目概要 : 四则运算题目生成
-
github 地址 : https://github.com/YooRarely/object-oriented.git
-
程序结构 :
-
get_int 类 输出整型答案(强制整型)
-
get_fraction 类 输出分数答案
-
fraction 类 分数类 ,将所有数作为分数储存
-
make_problem 类 题目生成类
-
-
答案输出类 :
-
属性 : 运算符栈 oper ; 运算符重要性栈 important ; 运算数栈 count
-
运算符重要性 : '+' 与 '-' 重要性最低为0 , '*' 与 '/' 重要性为1 , '(' 与 ')' 间的运算符重要性皆+2
-
具体操作 : 若当前将要入栈的运算符重要性不大于栈顶运算符,则运行栈顶运算符并出栈,直到栈顶运算符重要性小于当前重要性时入栈
-
get_int 与 get_fraction 的区别为 运算数栈 count 的类型为 int 与 fraction
-
-
分数类 :
-
属性 : 分子 x 与 分母 y , 若为负数则 x 为 负 , y 强制为正
-
重载运算符 : += ; -= ; *= ; /= ; == 调用 gcd 方法 实现分数的运算
-
转换整数方法 : x/1 ; 将分数转换为字符串方法
-
-
题目生成类 :
-
属性 : 生成整数数量 n ; 整数大小范围 m ;括号层次 k
-
具体方法 : 运算数与运算符数量相同时 , 随机取得运算数 ; 运算数大于时 随机取得运算符 ; 严格保证运算符数量不超过运算数
-
生成问题 : 可能会出现 除0 运算,运算后返回 error input ,出现括号内无运算符情况 (式子正确,但是有点多余)
-
尚未完善 : 尚未照顾小学生 ,尚未判断相同式子,不过 n=5,m=10,k=1 时 生成 1万 条暂时没发现重复
-
运行效率 : n=5,m=10,k=1 时 生成 100 万 条在28秒内完成 。 编译器 xcode 环境 mac OS X EI capitan
-
-
使用方法 :
-
i 循环处可更改循环次数
-
make_problem 构造方法中 放入 n,m,k
-
若要主动输入式子可以解开上方注释
-
-
暂时还有许多没有完善好的地方,毕竟比较弱