结对编程--中小学数学卷子自动生成程序代码总结
-
一、项目技术选择
在个人项目中我使用的是java而我的队友使用的是python,但是当我们仔细阅读项目需求说明后,我发现了之前我们在个人项目中实现的不好的地方,例如封装性不够,很多函数需要重写,出题逻辑不合理,很多题目难以计算,甚至可能出现tan90,对于后端方面我决定保留其中最主要的部分即题目生成的逻辑--先生成操作数(带符号)然后再添加括号,其他的方面我们需要做进一步的优化。而说到题目要求中的图形界面,由于吴同学学习过qt的内容,上手会稍微快一点,我们就决定用qt来做UI,而且我和我的队友都对c++比较熟练,后端我们作出改动由我来使用c++重写生成题目的逻辑。
-
二、代码复用
个人项目中,我们仅仅要求实现出题部分,尽管也是结对项目的核心内容,但是还要避免一些极端情况,需要更贴近实际。所以我参考了部分个人项目的代码,比如出题的整体逻辑完全可以参考个人项目,流程逻辑也可以根据个人项目来设计,但是在结对项目中需要设置随机的四个选项,题目太难要稍微降低难度,将一些人工难算的算式简化,控制台实现只有输入即可控制,转换成UI页面,我们就可以实现多个入口,多个转折,页面的跳转逻辑设计变得更加复杂一些。
-
三、个人开发任务
我负责的主要是后端部分下面式对我代码主要部分的分析
1.注册部分
下面的部分没有截图,此处代码的功能就是检查账号是否被注册过,然后就是判断密码是否符合规范,两次输入的密码是否匹配。
2.登录部分
3.出题部分
题目生成的逻辑我采用的还是我个人项目中的思想,但是为了让题目的结果更加人性化,我对sin,cos,tan做出调整,引入了π,并以π/4和π/6为最小单位,使得三角函数值可计算。
在生成算式的过程中我将算式的答案存入result,在获取试卷时同步产生。
为了生成混淆项我也随机生成了几个与答案接近的选项,打乱顺序后更贴近生活情形。
-
四、项目总结与教训