个人项目:中小学数学卷子自动生成程序--结对编程队友代码分析

个人项目:中小学数学卷子自动生成程序—结对编程队友代码分析

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

下面,就自习分析一下他的代码:

 

队友是用vs进行编写,包括3个头文件和4个源文件。

 

类的定义,定义了一个父类User,和2个子类Teacher和Administrator。考虑到每个类型的对象可能登录的方式不同,考虑到每个类型的功能会不同,2和函数登录函数LoginAccount()和切换函数SelectFunction()采用了虚函数定义。这是考虑到了实际情况下的程序应用,虽然题目中并未提及。但是,从中我看出了一个程序员对代码的理解,和对实际情况的充分考虑。

 

在实际卷子生成时,考虑到括号的位置,比如:扩住了整个算式的就没意义。再就是他生成,初高中卷子时,将重复的内容用函数调用,这样大大节省了空间,还提高了代码的可读性。

 

队友的代码,缺点是过于冗长。虽然在函数名和变量名上下了功夫,起了符合意义功能的名字,但是在函数中缺乏必要的注释,导致其他人在对代码进行进一步的分析和开发时存在困难。还有就是,未考虑根号下是算式的结果是正是负的问题。

 

Degug过程,由我和队友一起完成。在提交时,我们发现用户输入存在bug,主要是因为C++的cin是一个 istream对象,从标准输入中读取数据,iostream头文件中定义,存在cin提取输入流遇到空格会不会结束的问题等。当然,这些都是些小问题,不过在编码中也需关注一下。

总的来说,此次分析队友的代码,我收获良多!

 

 

 

posted @ 2020-09-30 15:28  佛度有猿人  阅读(71)  评论(0)    收藏  举报