开发环境

采用C++语言,使用Clion软件,应用C++11标准。

优点

  1. 条理清晰,逻辑性强。采用“由顶至底”的方法设计框架,然后根据框架设计类,最后明确类中函数的各个功能。完成以上步骤才开始编写代码,开发效率高,错误少。
  2. 模块化编程,代码复用性强,易修改。代码块之间逻辑关系清晰。把用户登录、试卷生成、文件夹生成、改变试卷类型和对符号的特殊处理都单独写成一个个模块。如果修改了某个模块,对其他模块产生的影响不大,不会出现连锁反应。
    下图展示的是设计一个类的框架和独立的各个功能模块。
    分析结对成员的个人项目代码优缺点-LMLPHP
  3. 注释简洁。每个重要变量都用注释说明作用。对函数的功能、参数进行注释,方便理解函数的用途。只在有必要的地方进行注释,不重复啰嗦,点到为止,言简意赅。
    下图是生成试卷的主要代码逻辑,这部分是项目的难点,所以进行了较详细的注释说明
    分析结对成员的个人项目代码优缺点-LMLPHP
  4. 交互性强,用户体验好。编译运行时输出足够的提示语句指导用户使用。如提示中简要说明了用户可以执行生成试卷操作、退出登录操作和切换类型操作。再比如当密码输入错误时会提示“输入正确的用户名、密码!”,然后让用户重新输入而不会导致程序异常终止;当输入题目数量不在范围内时,也可以提示“请输入10-30之间的整数”
    分析结对成员的个人项目代码优缺点-LMLPHP
  5. 生成题目的模块功能完备。初中题中不会有纯小学难度题即初中试卷中的每一道题都至少有一个平方或开平方运算;高中题中不会有纯初中题或纯小学题即高中试卷中的每一道题都至少有一个sin、cos或tan运算。此外,还有去重功能,所有试卷都不会出现重复题。
    分析结对成员的个人项目代码优缺点-LMLPHP

缺点

  1. 没有采取“不信任输入”的方式处理用户的输入。对于用户的输入,虽然有提示输入一个[10, 30]之间的整数,但却没有处理“用户不按提示输入”的情况。
  2. 有些变量命名,花括号的使用不符合代码规范文档的要求。
    下图是括号使用不合规范的例子。
    分析结对成员的个人项目代码优缺点-LMLPHP
10-01 03:11