中小学数学卷子自动生成程序——对李同学的代码分析

  落实湖南大学软件工程专业本科三年级课程《软件工程导论》中的“Learning-by-doing(做中学)”的重要思想理念,笔者近期粗糙地完成了自己的个人小项目——中小学数学卷子自动生成程序(PaperAutoGeneration),并与李同学互相学习彼此工程编写的优点,注重缺点的改善。

  程序要求用户预设账号登录后可以选择自动生成不同数量(10-30道)、不同难度(小学、初中、高中)的数学卷子到txt文本中。

  通读项目需求,本次程序主要难点集中在题目严谨的数学逻辑与随机出题的结合以及出题不重复的实现。

  下面简单分析一下李同学的工程编写优缺点:

  优点:

  1. 文件路径使用相对路径。文件路径具有相对路径和绝对路径两种形式,而绝对路径可能会使得程序的可重用性差,使得在别的终端上不能运行,而在程序中使用相对路径则会变的有极强的适应性,包括 ./ 为当前路径,../为上一级目录的使用都是提高代码健壮性的点睛之笔。
  2. 题目查重。每次出卷子时产生的题目会对文件夹中该老师出现过的题目进行查重,会将该题目与文件夹中其他试卷,包括当前出题卷进行比对,若相同,这该题不会输出到卷子上。较为完善的题目查重设置,将try-catch与文件输入流相结合,使这部分的代码简洁性MAX。
  3. 项目中的类分几个.java文件分别存储管理,有利于代码的更新、升级。

  缺点:

  1. 生成试卷部分代码较为繁杂,代码可读性不是很好,可考虑再多分成几个小函数,提高代码易读性,但题目中的数学逻辑已尽量满足。
  2. 整个工程没有使用过static变量或函数。

  这次个人项目我并没有像李同学一样较为出色地完成了,许多细节都没有处理地很好,我会多向李同学学习,相互取长补短,共同进步!

你可能感兴趣的:(中小学数学卷子自动生成程序——对李同学的代码分析)