结对编程总结
结对编程项目:带UI的小初高数学学习软件
用户:小学、初中和高中学生
一、 需求
- 用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;
- 用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;
- 密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;
- 用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;
- 最后一题提交后,界面显示分数,分数根据答对的百分比计算;
- 用户在分数界面可选择退出或继续做题;
- 小初高数学题目要求见个人项目。
二、 界面
- 登陆界面

界面主要运用java中Swing类实现,登录界面参考了一些知名网站的登陆界面
2. 注册界面

获取验证码按钮点击之后会显示验证码有效时间,且在一点时间内不能再次点击。这样的设计更加符合实际也能防止短信轰炸。通过Timer计时器以及setEnable()函数实现。忘记密码重置密码的界面与此界面类似
3. 选题界面


4. 做题界面

右边的题号按钮可直接跳到对应的题目。
做完后点击交卷,若还有题没做,会弹出提示框,交卷后会出现“继续做题”,“退出”的按钮,并显示做题情况。
三、 后端
1. 验证码获取
获取验证码的部分调用了阿里云的API,申请账号和模板再封装成函数即可实现。
2. 界面跳转以及文本获取
该部分功能实现主要依靠按钮的监听器以及getText()函数,在监听器中实现界面的转换。
3. 题目以及选项的显示
题目先是由个人项目生成题库,在根据题目数量在题库中随机抽取题目并保存在一个String类型的数组中,通过Label标签显示,在“下一题”按钮或者题号按钮的监听函数中实现题目的跳转。四个选项的内容用Label显示,ABCD四个选项用按钮显示,在按钮的监听函数中记录做题者的选项并判断是否正确。
- 题目的解决以及选项的生成
解出正确答案的算法是在“逆波兰算法”的基础上做了改进,增加了解决平方、开根号、三角函数的解决方案。三个错误选项是以正确选项为基础再加减三个相近且不同的随机数而生成的。选项的数据结构设计如下:

保存了每一道题的四个选项、正确的选项编号以及用户所选的选项,该数据结构的设计方便选项的显示以及做题情况的统计。
浙公网安备 33010602011771号