结对项目——带UI的小初高数学学习软件
一、简介
本项目是在之前个人项目——中小学数学卷子自动生成程序的基础上增加UI,让所有功能通过图形化界面操作,由我和郭江浩同学共同完成。功能主要包括:
(1) 用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;
(2) 登录后跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;用户在登录状态下还可修改密码和昵称。
(3) 用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;
(4) 最后一题提交后,界面显示分数,分数根据答对的百分比计算;用户在分数界面可选择退出或继续做题。
二、项目分工
本项目中我们选定郭江浩同学的个人项目作为结对编程项目的主要参考,我们用的是 Python GUI编程的Tkinter模块,用 Python 内置的sqlite3存储用户信息,发送短信验证码的平台是榛子云。
郭江浩同学主要负责利用个人项目生成题目并计算答案、完成答题界面、完成发送验证码的模块、实现将用户信息存入数据库。
我主要负责完成登录界面、注册界面、跳转选择界面、个人信息修改界面的编写。
三、项目成果及分析
1、 效果演示
(1) 登录界面

(2) 注册界面

(3) 跳转界面

(4) 答题界面


(5) 修改信息界面

2、 代码复用及分析
此次项目是选定郭江浩同学的个人项目作为参考,因为他的个人项目的代码结构和逻辑都十分清晰,并且他还提前考虑了结对项目的功能需求。
在我上篇博客中有提到,他在其个人项目中为结对项目做了很多铺垫,主要就是生成题目时,将题目分成数字序列和操作符序列,这样在本项目中计算题目答案时,可以直接使用中缀表达式求得。
本次项目中我们几乎完全引用了个人项目的代码,只是将其与图形化界面融合了一下,例如将一些需要用户指定的变量通过图形化界面的文本框获取,输出时将其与图形化界面结合形成答题界面。
四、经验总结
本次项目我可以说是边学边做的,这让我学到了很多GUI编程的知识。此外,我也认识到了团队沟通的重要性。
虽然结对项目只有两个人,但是也十分需要沟通。首先俩人要保证对项目和各自任务的理解要一致,比如界面做成什么样子两人都要清楚;每个人负责的模块不同,在进度上要保持一定程度的同步,方便做阶段性的测试;两人沟通的越多,之后汇总的时候,出现各种各样的小问题就会越少。在完成本次项目的过程中,前期我和郭同学总是各干各的,于是就会出现两个人电脑上的运行结果不一样,而找了半天原因之后发现仅仅是我们两个人的代码没有同步,后来我们就会经常互相发代码文件,有时虽然只改了一点,但两人手里的文件最好还是保持同步。
总之,结对项目不比个人项目,你不但要会写代码,还要会与人合作、与人沟通,这也是需要学习的。
浙公网安备 33010602011771号