中小学自动卷子生成程序优缺分析

# 项目需求

 1. 登陆:用户输入用户名和密码,程序需要检测登陆信息是否存在

 2. 操作:需要输入所需题目数量

 3. 题目生成:按照用户对应年级信息,生成难度相配的随机数学题

 5. 打印输出:将随机生成结果输出打印到TXT文件中

# 优点分析

 1. 使用Python作为编程语言显著的特点是可读性更强,并且代码更为简洁;

项目的需求基本都已实现,部分功能还需推敲改进,会在下文缺点中谈及

 2. 比较好的是考虑到了去重的问题,虽然我们知道出现重复的概率比较微小,

但是这里能想到就还是不错,代码段如下所示:

 

 

 

 - 是否会产生本次随机生成题目相同的试题

 - 是否会产生该用户历史试题文件下的重复问题

 代码的主要思想就是把列表转换为字符串加入集合,然后进行判断查看是否出现重

复,一旦出现重复就重新生成

# 缺点分析

 1. 在随机插入括号时,并没有去考虑括号加在乘除法外不起作用的问题

我们在确定括号个数时,是通过取出随机数的方式,代码如下

**bracket_nub = random.randint(0,termNub-2)**

取出随机数后需要考虑组合情况,数学表达式关系大致可以总结为

**brackt_Nub = C(2,operator_Nub)-1**

在这里我们省去的一种情况是前后都是数字相组合的状况

 

 2. 在三角函数与开方还有求平方的计算题中,生成的随机试题与实际需求其实会

有出入,在所有三角函数运算中,只出现数字其实很难计算,必须依靠科学计算

器,并且如果因此需要保留原式,又会使题目失去原本的意义。同样的,开方和求

平方问题中也有类似脱离实际的地方,我们随机举例来看一下生成的试题结果

我们可以看到,其实基本这里所有随机生成的式子都面临了上述提到的问题,后续

有很大的改进空间,我们可以用数字组合上周期生成可以直接计算的三角函数,开

方计算时,可以加入判定被开根数是否能够进一步化简,而计算平方时,生成随机

数不宜过大,这些都是可以考虑改进的范畴。

 同时,我们可以在上述随机样例中看到,当用户信息对应高中生时,随机生成的试题

里并没有出现开方和次方计算,希望在后续对算法进行优化,能够让试题结构更

多元。

 3. 代码风格不够统一,希望后续能够对变量命名规则等多加重视,统一风格,便

于读者查看。

 

posted @ 2019-09-19 17:51  su422  阅读(134)  评论(0)    收藏  举报