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

选择界面:

出题界面:

题目界面

评分界面

三、代码复用和分工
本次项目较上次的个人项目而言,增加了ui界面与计算出答案并评分的功能,我和队友选择用java-JFrame的可视化编程来实现。我的分工是生成题目,计算的任务,队友负责ui界面的编写。
对于生成题目的功能,复用了队友之前的个人项目代码的Mathex部分,生成小学初中高中的题目以及试卷,增加了一个函数用来保存计算出的答案,她的代码模块性和封装性更好,更有利于结对项目的实现。
而对我来说,需要解决的主要问题就是题目的计算,也参考了网络上用逆波兰式进行计算,但最终还是选择了比较直观和更容易理解的方法,将操作数和符号按顺序分别保存在数组中(因为操作数的位数有限只为一位或两位以及操作数的个数在五个以内,所以情况并不多),然后再按照运算法则从两个数组中取值进行计算,将计算结果保存在运算的前件,最后返回数组的第一个元素就是最后的答案。这种计算方法的优点就是简单以及便于理解,但是缺点就是可移植性不大,并且如果操作数和操作数位数很多的时候不是很实用。
在发送短信的功能上,我们选择了榛子云短信平台,实现起来也比较简单,只需要添加相应的jar包并且按照说明封装为HashMap就可以实现。
四、总结经验和教训
本次结对编程很好的训练了我的合作能力和沟通能力,也因此学习了队友是如何思考的,也认识了新的朋友,收获很大。最大的学习就是对代码的封装性和复用性有了更多的考虑,不仅仅是实现功能,更要注重功能以外的东西,包括代码的可读性,可移植性等等。最大的教训也是自己的代码封装性不是很好,难以复用。

浙公网安备 33010602011771号