中小学数学卷子自动生成程序 HNU互评
中小学数学卷子自动生成程序
个人项目要求
用户:小学、初中和高中数学老师。
需求:
一. 案例测试
经测试系统大部分运转无bug
生成的题目格式符合要求,生成在项目文件夹中
题目略显杂乱,出题部分代码构建不够细致
但是各年级题目均符合算术逻辑
其余部分经测验均满足评分标准中的需求。
二. 代码分析
下面开始检验代码
1.菜单与登录
代码主要由Main中调用Operations类中的各种函数
通过永真循环实现菜单部分
登录系统逻辑合理,操作便捷
2.文件生成
FileMaker类中包含各种生成文件的代码
使用SimpleDateFormat来保证生成文件的命名格式,十分简易便捷
生成文件的路径为绝对路径
使用绝对路径会导致代码的可移植性差 , 可读性差,可维护性差,更容易造成安全性问题
为了避免以上问题,建议使用相对路径来生成文件。
相对路径是相对于当前工作目录或项目根目录的路径,不依赖于特定的文件系统和目录结构。相对路径更具可移植性、可读性和可维护性,并且可以提高代码的安全性。
所以建议我的互评伙伴与各位同学在今后的编码中注意路径的选择问题
3.生成题目
接下来主要着重分析随机题目生成部分
各年级生成部分总体上都是基于操作数个数的循环来生成题目
在循环中调用getElement方法来随机生成操作数与操作符
将生成的Element通过append加入到StringBuffer中
最终传回StringBuffer再进行查重与写入
在getElement中通过各种限制来使返回元素符合算术逻辑,同时确保随机性
生成后通过repOrNot方法进行遍历查重
三.总结
1.优点
生成题目的代码简介明了
仅通过一个getElement方法就保证了随机元素的生成
还保证了各个方法不超过40行,可读性极佳
各处代码均遵循了google style的编码规范,只存在可以忽略不计的零星的格式问题,总体阅读感受佳
2.缺点
保存文件选择了绝对路径,留下了安全隐患
没有使用抽象类或接口
输入题目时需要选择输入题目的选项,略显繁琐