结对项目编程——小初高数学学习软件
作者:互联网
一、 个人项目应用
个人项目中实现了小学初中和高中题目生成功能和账户列表功能,结对编程的两个重要目标功能就是可以生成对应试卷以及登陆注册功能的实现。
<1>试卷和题目生成。结对项目中,我们利用了之前个人项目的出题功能,给每个年级对应生成了150个题目作为题库,试卷生成就变成了从题库随机抽取不重复的题目。而对于题目选项,生成题库后,写了代码进行读取题库题目并计算答案,在题库中以问题+答案的形式存储,将所有正确答案放在行首,迷惑项跟在其后,空格分开。大大降低了结对编程项目代码复杂度和实现难度。
<2>用户管理系统。基于个人项目的为每个用户建立试卷库,我们采用将账户信息实时存储的方法,注册的所有信息以手机号+密码的形式存储在txt文件里面。每次登陆、注册、修改时,都会去访问文件比对信息。
二、 交互设计
完全按照要求进行,在python环境下使用了tkinter库的图形化界面的文本框进行交互。输入输出信息都符合规范。
<1>登陆和注册,都会去访问usermessage.txt来对使用者的信息进行比对。注册时还会发送随机数组成的验证码。
<2>登陆成功后来到功能选择界面。可以选择题目类型进行答题,也可以使用改密功能或者退出登陆。
<3>答题时,按顺序显示题目和题号,以及四个选项,单击选项进行作答,每次做答都会显示出正确还是错误,以及标准答案。作答完成会进行分数统计,用户可以查看到分数,并且选择继续还是退出。
二、 遇到的问题
- 题目答案计算。小学题目可以使用python自带的eval函数进行四则运算,较好实现,而对于初高中,只能手写代码来进行运算规则的规范,以判断括号、根号、乘方、三角函数的运算规则,算法复杂且不够完美。
- 选项与答案。正确答案有了,但是迷惑选项要合理,答案位置不能固定。于是针对小初高三种模式,写了代码来随机生成不同范围差的相似答案,显示时使用随机数方法打乱顺序来作为选项。
三、 经验与体会
- 两人合作,分工一定要清晰全面,确保每个细节的对接是可以实现的,充分发挥各自优势,量力而行。
- 一定要先做好原型规划再编写代码,实际情况的多变会使得没有规划的计划趋于复杂,条理性和系统性不足,从而项目失败。
- 任务达标的要求是按照需求说明书来完成,在此基础上可以适当增加功能多样化,但不可以跑题,不可以打破规定的模式。
标签:选项,结对,题目,编程,功能,生成,小初,答案,题库 来源: https://www.cnblogs.com/txdyxly/p/15387127.html