首页 > 技术文章 > 个人项目:中小学数学卷子自动生成程序-队友代码分析

lxyblogs 2020-09-30 21:59 原文

一、优点

1、首先从代码的目录来看,程序的封装性很好,代码模块结构非常清晰,用了几个类。这是我应该学习的地方。队友把整个工程分为三个类,一个主要用于读取用户名和密码,计算和生成试卷;一个用于测试,一个是用户界面。

 

 

 

2、再看到每个类。第一个类是用户界面,其中读入用户名和密码是从一个txt文件中得到,这增加了代码的可重用性,也有利于拓展,是一个很好的设计。第二个类Mathex,过程是创建文件-生成题目(生成题目前先查重,题目存在字符串数组中)-向文件写入题目。第三个类用于测试,调用其他两个类的方法。函数之间有很多调用和封装,代码结构很好。

 

 

 

3、函数的命名都是根据函数的具体作用,比较容易理解。

 

 

 

 

 

4、用户名和密码的输入容错性较好。

 

 

 

5、可以重复生成题目,并且生成的试卷命名添加了试卷类型,更加清楚。

 

 

 

 

 

6、隐藏功能:当输入的题目数不是整数时,会提示输入的非整数

 

 

 

二、缺点

1、查重功能没有实现,功能要求是:同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复,只实现了同一张试卷中的不重复。

 

 

 

2、没法退出系统,会一直提示可以生成题目。只能停止运行,不利于用户体验

 

 

3、用户界面看起来比较复杂,试卷生成后没有提示语句试卷生成的位置(问题不大)

 

 

4、代码有些重复性,可以只将类型分开,查重合并(我也有类似的问题)

 

 

 

5、命名没有按照文档要求中的格式

 

 

 

6、只是个人理解不同:只有小学题目有括号,中学和高中没有括号,中学试卷不是每道题都有平方和开根,高中也不是每道题都有sin,cos,tan,只是一张试卷中有。

代码中也没有加入如果初中或高中随机时整张试卷都没有相对应的符号的判断。

 

三、从队友代码中学到的

  队友的代码封装性和可重用性都比较好,代码的模块结构更加清晰,是我需要学习的地方,我的代码更注重了功能,只用到了一个类和多个方法,在结构方面需要加强;性能方面,我们俩差不多,仍需提高。

 

推荐阅读