个人项目:中小学数学卷子自动生成程序--结对编程队友代码分析
个人项目:中小学数学卷子自动生成程序—结对编程队友代码分析
该程序实现一个试卷生成系统,包括用户登录,切换,生成卷子的功能。我和队友用的都是C++写的。不过,他是将其完全当做一个项目来编写,而我只编写了一个cpp文件。代码量来说我的远少于他,但是涉及到可扩展性,实用性的方面,那么他的代码就有很多可取之处。
下面,就自习分析一下他的代码:

队友是用vs进行编写,包括3个头文件和4个源文件。
类的定义,定义了一个父类User,和2个子类Teacher和Administrator。考虑到每个类型的对象可能登录的方式不同,考虑到每个类型的功能会不同,2和函数登录函数LoginAccount()和切换函数SelectFunction()采用了虚函数定义。这是考虑到了实际情况下的程序应用,虽然题目中并未提及。但是,从中我看出了一个程序员对代码的理解,和对实际情况的充分考虑。
在实际卷子生成时,考虑到括号的位置,比如:扩住了整个算式的就没意义。再就是他生成,初高中卷子时,将重复的内容用函数调用,这样大大节省了空间,还提高了代码的可读性。
队友的代码,缺点是过于冗长。虽然在函数名和变量名上下了功夫,起了符合意义功能的名字,但是在函数中缺乏必要的注释,导致其他人在对代码进行进一步的分析和开发时存在困难。还有就是,未考虑根号下是算式的结果是正是负的问题。
Degug过程,由我和队友一起完成。在提交时,我们发现用户输入存在bug,主要是因为C++的cin是一个 istream对象,从标准输入中读取数据,iostream头文件中定义,存在cin提取输入流遇到空格会不会结束的问题等。当然,这些都是些小问题,不过在编码中也需关注一下。
总的来说,此次分析队友的代码,我收获良多!

浙公网安备 33010602011771号