结对编程实现——总结
本次结对编程实现带UI带小初高数学学习软件,我与田佳禾一起组队完成,我负责前端界面的实现,田佳禾负责后端逻辑的实现。
一、抛开图形化界面,从后台逻辑的角度来说,与个人项目不同的方面有以下几点:
1、用户注册与修改密码:其中包括,使用手机号发送验证码、检查密码设置的正确性是否有正确的格式以及两次是否输入相同;修改密码时判断原密码是否输入一致以及新密码格式是否正确的判断。
2、题目作答与记分:生成一道题后需要知道其正确的答案,再修改正确答案得到另外三个迷惑选项,记录正确答案的位置。
二、复用部分:
1、仍使用了User类对于用户进行描述,用户的姓名与密码,checkExist函数用于判断用户是否存在,signUpPassword用于判定两次密码是否输入一致,addUser用于添加新的用户,checkPasswordForm用于检查密码格式是否正确。
2、复用MakeTest题目生成类,生成小初高三个年级的不同类型题目,此外,添加正确答案计算功能,逻辑按照数学运算先算括号再算加减最后算乘除的方式进行计算,没有将根号直接变为小数而是进行化简,并生成另3个选项,每次采用随机数打乱位置,生成每道题目,并记录正确选项位置(下标)。
3、对于小学部分的题目,可以直接使用栈的四则运算的算法,所以出题逻辑无需修改;对于初中部分的题目,我们规定根号下的数字,经过开根号化简后,一定可以化简为n或者n√2或者n√3的形式,其中n为整数,这样规定后的数字简便易于运算。对于高中部分的题目,我们规定三角函数的角度值,必须在{0,30,45,60,90}之中。另外需要说明的是,初高中的题目都包含+-*/和√²,但不包含括号,否则会出现如(√2+√3)/(√3+√2+1)这种无法笔算出答案的题目。
三、图形界面采用Java Swing生成桌面应用,按照需求做了六种界面,分别为:
1、LoginUI登录界面:获取输入的账号与密码与User类中的checkExist函数相接,用于登录判断

2、SignupUI注册界面:设置了与User 类中添加用户与判断密码的函数接口,发送验证码按键采用了倒计时的形式,按下后一分钟内不可以再次按下。

3、Home主页界面:将修改密码与年级选择和题目数量设置放在一张版面上便于操作。
4、ChangePassword修改密码界面,做好与User的接口
5、AnswerUI答题界面:采用多次生成新MakeTest新对象的方法创建题目,前端编写函数changeShow用于改变每次界面中题目与选项的显示,做好与MakeTest接口,获取每次正确选项的位置,由于与按钮事件判断,并记录得分。
6、TipWindow提示界面:当遇到密码账户错误、密码格式不对以及最终得分类似的需要用到提示的地方,使用JFrame制作弹出的提示框,每次只用修改其中的提示字样,不用每次创建,提高编程效率。
四、经验与教训:
1、在实现短信发送验证码的过程中遇到了很多困难,使用了好几个云平台都没有成功需要企业认证或者需要很高的费用,最后花费一番功夫找到榛子云平台,实现了短信发送。
2、生成exe执行文件时,也用了很多时间,用了好几种方法,在同学的帮助下最终完成并掌握方法。
3、本次实验中,没有一商量完分工就直接开始去编程,首先我们花了一至两天的时间分别构思了以下前后端的大致思路,确定了要实现的基本几大功能,列出所有需要交互的接口,以及接口的参数与返回的类型。当做完所有准备工作时才开始进行编程这一步,通过实践我觉得提前做模型非常有效,我们在各自做完后,进行前后端链接时基本上没有遇到什么困难,花了半天的时间将整个程序接好完成了所有基本功能。在这个过程中我体会到,程序结构的设计对于整个工程的重要性。

浙公网安备 33010602011771号