一、需求分析:
1. 使用 -n 参数控制生成题目的个数,使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围
2.每道题目中的运算符个数不超过3个
3. 题目和运算结果中如果出现假分数应用真分数表示
4.将生成的题目存入Exercise.txt,题目答案存入Answer.txt,用户做题结果存入Grade.txt
5.程序支持1万道题目的生成
6.对生成的题目进行查重
二、功能设计
根据用户输入的参数进行生成题目,并进行答题
三、设计实现
(贴出部分重要代码截图)
1.生成四则运算表达式的二叉树(Formulatree.java)
构建二叉树,将运算数放入叶子节点,运算符放入非叶子节点
利用递归生成二叉树结构,numberoperator表示二叉树总运算符个数,lnumoperator表示左子树的运算符个数,rnumoperator表示右子树的运算符个数,运算符的个数都是利用 随机数随机确定的。
2.将表达式从二叉树中读取出来(Show.java)
后序遍历二叉树,生成四则运算表达式
3.计算表达式的值(Calculate.java)
后序遍历二叉树,计算表达式的值
4.初始化文本文件(InitFile.java)
5.将题目答案,结果和成绩保存到文本文件(Inputfile.java)
6.节点类(Node.java)
7.生成随机数(Number.java)
8.随机生成运算符(Operator.java)
9.对分数进行化简(Simply.java)
10.主函数(Test.java)
四、测试运行
五、源代码
项目地址:https://gitee.com/whn-1/four_operations__based_on_the_console.git
六、小结
此程序按照先生成存储四则运算的二叉树,再遍历二叉树生成四则运算表达式和值,由于对二叉树的操作用的不熟练,导致完成程序耗费时间较多, 其中可能还存在一些小问题,敬请谅解。