简介
完成个人项目之后,需要对结对编程的队友代码进行分析。下面是我对结对编程队友林同学的代码分析。
代码分析
-
主要结构如下:
![]()
程序的处理逻辑与功能实现都在paper.cpp中实现,main.cpp则为整个程序的入口,负责调用paper.cpp中所实现的逻辑与功能。
-
Paper类的主要结构:
![]()
各个函数命名都很规范,具有很好的可读性。
-
Check是用来检验生成的题目是否与已生成的题目重复。他这里将所有历史生成的题目都存到一个文件下面,到查找重复的时候只需要打开一个文件,当所生成的题目很多时,这种处理方法大大减少了文件操作的次数,提高了程序的性能与可靠性。
-
Generator则是试卷生成的主要逻辑。他生成题目的时候,先生成了题目的前缀表达式再利用栈运算生成题目要求的中缀表达式,充分利用了所学到的数据结构知识。
-
getNum将字符串表示的整数转化为整数类型。 -
GetSystemTime用于获取试卷的生成时间,Pause实现系统暂停。
-
总结
-
优点:
整个项目代码的缩进、命名都很规范,各项功能逻辑分工明确、完整实现,代码也很简洁。而且程序的健壮性比较好,当应对用户的非正常输入时能有对应的错误处理逻辑以不至于整个程序崩溃退出。
-
缺点:
在“准备生成题目”的状态下,没有明确提示用户如何操作可以切换用户的类型,对用户操作的提示不够。


浙公网安备 33010602011771号