结对编程--中小学数学卷子自动生成程序代码互评
本博客为对吴贞逸同学个人项目代码的理解与评价,该项目由python写成,实现自动生成中小学试卷功能。
1.整个文件包含一个mainpy,项目包含一个类class,类中包含两个元素,用户名和密码
2.函数功能分析
(1)def logger_in(logger)
从缓冲区中读入用户名和密码
(2)def check(string, userid)
检查生成的题目是否与之前生成的题目重复
(3)def generator(userid, school, number)
根据用户类型和题目数量生成符合要求的题目
(4)def primary_generator()
生成一道小学题目
(5)def junior_generator()
生成一道初中题目
(6)def senior_generator()
生成一道高中题目
(7)def change_id(new_id, pre_id)
3.代码优点分析
(1)代码写的很简洁,没有使用不必要的临时变量,只用了很少的代码就实现了要求的功能,代码的
可重用性和可扩展性很好,对于要修改某个东西,只需要到对应部分修改即可,而不需大量地改。
(2)关键算法生成一道题目的设计很人性化,算法的思维首先将题目分成操作数和操作符两个部分,
操作数与开根号平方三角函数绑定起来,随机生成对应的操作数,再随机生成操作符,之后就是括号的
处理,对于括号的位置,我们在操作数固定的情况下是可以预见所有操作符可能出现的位置,随机生成
括号的个数,在多个括号出现的情况之下,不允许有完全相同或者相邻以及交叉的括号出现,最后在对应
的地方在左侧和右侧分别生成括号,一个十分人性化的题目就生成出来了。
(3)在防止出现重复题目的函数中,该同学的代码,将所有生成过的题目存入了summarize.txt,每次生成
一道新的题目之前都要判断是否与summarize.txt中的题目重复,相当于一个题库的存在。