软件工程导论个人项目的题目是:中小学数学卷子自动生成程序,下面是我对队友ll的代码分析:
优点:
1、 在主函数方面,主函数非常清晰简洁,只用到了两个函数,一个是生成用户资料的函数,一个是登录函数,队友采用的是函数嵌套形式,减轻了主函数的负 担,也增加了逻辑性。
2、 在整体逻辑方面,逻辑非常清晰,从登陆到功能选择到生成试卷到生成题目到结束退出,每一项都对应自己的函数,逻辑性强,思路清晰明了。
3、 在分函数方面,对每个函数都有功能注释,简洁明了,恰到好处,不会过于冗余
4、 在函数命名方面,命名采用了“动词+名词”的组合,在动词和名词的第一个字母都会大写,并且意义非常符合函数功能,令人一目了然,代码可读性高。
5、 在运行界面方面,采用了适当的空行和符号,使界面看起来逻辑清晰,富有观赏性,也采用了功能选择的方式,使用户更容易理解,更易做出符合自己心意 的选择。
6、在保存文件方面,采用了相对路径,这使得保存用户资料的文件更容易被查找到。
缺点:
1、 在代码注释方面,队友虽然在函数名那做了简短清晰的注释,但是在函数体内很少有注释,若能在函数体内的重要处加上适当的注释,可使代码更容易被理 解‘。
2、 在变量命名方面,部分变量的命名易于理解,但也有少量命名令人困惑,本篇代码大量变量命名是采用英文,但有些是采用拼音,有些英文和中文拼音混 淆,命名风格不一致,造成阅读者并不能很快理解,例如生成试卷函数里的fushu,若能加一点注释或者换个更易理解的单词会更好。
3、 在分函数方面,因为各个函数之间连着,没有空格,阅读者看起来会比较累且观赏性不佳,若能在函数与函数之间添加空格,会使代码更加一目了然,清晰 可读,增加观赏性。
4、 在功能实现结果方面,平方采用了“^”,但事实上平方应该为“^2”;切换选择难度时,功能需求说明写的是“切换为**”,但在实现结果上,需要输入的是”小学 \初中\高中“之一即可,这个问题我也跟队友沟通过,她觉得是不需要加上“切换为”三个字,觉得这是画蛇添足,但是本人觉得还是按照要求来比较好,不过 这个问题也不大。
5、在代码方面,某些函数的代码冗余且可读性差,例如获取当前时间文件名的函数:
if后面的语句没有空行缩进,每行都是从一个地方开始,而且没有注释,改进方法可有两种,一是选择另一种更简单的获取时间的方法(不需要这么多代码, 几行就搞定啦),二是适当空行缩进加上简短的注释。
总体来说,队友的代码写的还是非常棒的,思路清晰,逻辑性强,功能实现完整,函数运动到位,些许不足之处稍稍改正即可;而通过对队友的代码分 析,自己也学习到了很多知识,通过对比,也认识到了自己代码的许多不足之处,收益颇多。