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

这次的个人项目,我和我的队友都是使用了我们较为熟悉的C++完成的。在这个过程中,我们经常相互讨论,提出疑问,得到了许多可靠的想法,受益匪浅。以下讨论,在个人项目中,他的代码存在哪些优缺点。

优点:

1.      代码使用了类的封装,并且有意识地采用建立多文件项目的方式将类的相关内容放置在头文件中。

2.      代码具有很好的复用性,比如生成算式的函数就能够得到很好的复用(由于代码较长,这里就不放出来了)。

3.      代码在生成运算式的时候,使用第一层循环生成n个运算式,使用第二个循环生成每一个运算式的算式,总的时间复杂度是O(n*m),还是不错的。

4.      代码对于每个用户的生成的试卷设立了检查函数,我们生成的算式不会出现重复,很好的满足了项目

  

在代码中可以看到,这里生成了一个专门用于查重的txt文件,它保存了所有已经生成的算式,这样就可以不用在对一个算式查重时打开多个文件,减少了时间的浪费。

5.      在程序中对用户进行了多次切换生成试卷类型的询问,确保了用户能够生成自己所需要的类别的试卷。

6.      代码中变量的命名设立的比较好,令人一目了然,也减少了不必要的注释。

缺点:

1.      代码的用户的是固定的,不能通过程序去申请一个新的用户和密码。

2.      代码中生成的题目存在一定的限制,并没有如√(2-9)这样的算式,

3.      代码中有很多没有必要的调用,导致程序中调用层次比较多,同时对于有些可以用switch语句的地方,却使用了ifelse语句。

4.      对于文件命名函数的设定还不够完美,并不能够通过函数直接建立一个个人的文件夹并保存个人的试卷信息,只能是自己已经在项目文件夹下建立了固定的保存个人信息的个人文件夹之后才能生成试卷的信息。

5.      同时对于密码的输入设定的不够完善,应该是只能输入一个用户名和密码,但是现在在一行输入多个用户名和密码的时候,就直接识别第一个用户名和密码登录了。其实不止是这里,多处的输入都存在类似的问题。

 

6.      虽然生成算式的函数的代码逻辑较为清晰,但是函数还是过于臃肿,长达近两百行的代码实在不利于检查错误。这里建议将函数的功能再进行细化。

这次的个人项目,我和我的队友都是使用了我们较为熟悉的C++完成的。在这个过程中,我们经常相互讨论,提出疑问,得到了许多可靠的想法,受益匪浅。以下讨论,在个人项目中,他的代码存在哪些优缺点。

优点:

1.      代码使用了类的封装,并且有意识地采用建立多文件项目的方式将类的相关内容放置在头文件中。

2.      代码具有很好的复用性,比如生成算式的函数就能够得到很好的复用(由于代码较长,这里就不放出来了)。

3.      代码在生成运算式的时候,使用第一层循环生成n个运算式,使用第二个循环生成每一个运算式的算式,总的时间复杂度是O(n*m),还是不错的。

4.      代码对于每个用户的生成的试卷设立了检查函数,我们生成的算式不会出现重复,很好的满足了项目需求。

在代码中可以看到,这里生成了一个专门用于查重的txt文件,它保存了所有已经生成的算式,这样就可以不用在对一个算式查重时打开多个文件,减少了时间的浪费。

5.      在程序中对用户进行了多次切换生成试卷类型的询问,确保了用户能够生成自己所需要的类别的试卷。

6.      代码中变量的命名设立的比较好,令人一目了然,也减少了不必要的注释。

缺点:

1.      代码的用户的是固定的,不能通过程序去申请一个新的用户和密码。

2.      代码中生成的题目存在一定的限制,并没有如√(2-9)这样的算式,

3.      代码中有很多没有必要的调用,导致程序中调用层次比较多,同时对于有些可以用switch语句的地方,却使用了ifelse语句。

4.      对于文件命名函数的设定还不够完美,并不能够通过函数直接建立一个个人的文件夹并保存个人的试卷信息,只能是自己已经在项目文件夹下建立了固定的保存个人信息的个人文件夹之后才能生成试卷的信息。

5.      同时对于密码的输入设定的不够完善,应该是只能输入一个用户名和密码,但是现在在一行输入多个用户名和密码的时候,就直接识别第一个用户名和密码登录了。其实不止是这里,多处的输入都存在类似的问题。

6.      虽然生成算式的函数的代码逻辑较为清晰,但是函数还是过于臃肿,长达近两百行的代码实在不利于检查错误。这里建议将函数的功能再进行细化。

 

posted @ 2020-09-30 22:46  Linsery  阅读(127)  评论(0)    收藏  举报