一、 简介
本篇博客主要是对结对编程队友肖颖珂的个人项目代码进行评价。
二、 整体分析
代码语言为C++,程序功能实现完整,注释详细规范,可读性较高。整体思路和我的差不多,但是在实现方法上我们有不同之处。综合来看,我觉得队友的个人项目完成度很好。
三、 具体分析
(此处只对重点部分进行分析)
1、 整体结构
(1) 分析:Teacher类中只保留与Teacher类联系紧密的功能实现函数,其他函数在类外定义和实现。函数之间层层调用。
(2) 优点:使Teacher类的功能更加明确,结构更严谨。
(3) 缺点:创建的函数有些多,感觉有点复杂了,且全部代码都放在一个cpp文件中,模块性较差。
注:我的代码也存在这个模块性差的问题,以后需要多加注意。
2、 主函数
(1) 分析:程序使用了对象数组生成九个教师对象,进行初始化并按照已有的教师列表设置每个教师的信息和创建对应的文件夹。
(2) 优点:教师对象的姓名等信息完整清晰,容易理解;同时方便修改教师的某个信息,可见代码的可复用性较强。
(3) 缺点:无。
3、 登陆成功函数
(1) 分析:在用户成功登录后,系统会提示是否切换出题类型,然后才生成试卷。这里我和队友实现的不同,我的是在登录成功并且试卷生成后才选择是否切换出题类型。
(2) 优点:程序界面的中文提示友好准确,且用户在登录后马上能自主选择出题类型,体验性更好,更具有人性化。
(3) 缺点:无。
4、 题目生成函数
(因代码过长,图略)
(1) 分析:队友将这部分分为小学、初中、高中三种情况处理,进而又对操作数数量、有无括号等情况进行细分后再进行相应处理。而我的处理是先对操作数数量分情况考虑再对三种试卷类型进行细分,感觉队友的这种逻辑更加合理、完整。
(2) 优点:代码逻辑结构清晰、紧密,考虑得很细致全面,不易出现某种特殊情况未考虑的情况,非常值得我学习。
(3) 缺点:代码重复太多。
5、 括号选择函数
(因代码过长,图略)
(1) 分析:根据操作数个数随机生成括号的定位参数,利用穷举法列出所有可能的括号位置的情况,此处只考虑了最多两对括号,函数以数组形式返回。
(2) 优点:不会出现只有一对括号且这对括号括住整道题目的情况。
(3) 缺点:括号不能嵌套使用,且穷举法导致代码实现过于繁多,可读性较差。
四、总结
经过测试,队友的程序功能完整准确,逻辑性强,结构严谨,但代码量有些多。而我的代码量虽然相对较少但功能实现不够完整,逻辑性不够强,总而言之,队友的代码让我学到了许多。最后,相信通过这次的结对编程我们都能有进步和收获。