结对编程--带UI的数学题目学习软件

一、要实现的功能:

  1、用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;

  2、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;

  3、密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;

  4、用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

  5、最后一题提交后,界面显示分数,分数根据答对的百分比计算;

  6、用户在分数界面可选择退出或继续做题;

  7、小初高数学题目要求见个人项目。

二、项目实现过程:

  流程图:

    

  

    我主要负责的部分是前端设计和短信服务功能,题干的生成起初采用我的代码,到后来调bug时发现生成题目存在问题,于是采用了队友的项目代码。

    界面只要由tkinter设计实现。第一次接触使用tkinter,做的比较粗糙,没有进一步的美化界面。后来发现了可视化设计界面的qt designer,可以减少大量的界面设计时间,不用一行一行的敲代码。而且qt designer的美化界面比较容易实现。

    在设计界面的时候,做第一个窗口花费时间较多,出错也较多,熟悉了之后速度大大加快。第一个阶段就是完成各个界面,第二个阶段是将各个界面加以联系,如流程图上的箭头指向方向。在这一阶段,在队友的指导下跌跌撞撞完成。

    对于账户信息的保存是保存在Excel文件中,用户注册成功后将账户信息保存在Excel文件里,下次可直接登录。

    短信服务功能是借助python的requests库,向网站发送请求,借助腾讯云短信服务。网站是室友自己写的网站,该网站向腾讯云发送请求,然后短信验证码就会发送到手机上,验证码由程序随机生成六位数字,注册时输入的验证码与程序备份的验证码比较,相同则注册成功,不相同提示验证码错误。

    

  debug过程:

    对短信服务功能测试,发现连续发送短信验证码会出错,后来增加了隔60秒才能重新发送验证码的设置。

   对生成题目的测试,发现有些题目操作符连续出现,后来改进代码解决了这个bug。

   发现不点击“获取注册码”按钮,注册码文本框为空,直接点击注册按钮就能注册,后来修复。

   输入题目数量可以为负数或者0,后来修复

三、总结:

  在经历了这次结对编程后,自己的编程能力在队友的帮助下提高许多,学会了使用tkinter设计界面,以及各个组件底层的功能实现,后来又自学了pyqt5的界面编程,pyqt5比tkinter更实用,做出来的界面更符合审美需求。体会到了团队协作的强大,每个人分工明确,做事事半功倍。对接下来的团队项目积累经验。同时,也感谢我的队友,在他的帮助和鼓励下学到了很多,有问题都会讲解。

  

猜你喜欢

转载自www.cnblogs.com/ling1527/p/11605513.html
今日推荐