总体分析:
本次项目中我们复用了个人项目中进行了功能扩展(设计UI界面:登陆界面、修改密码界面、出题界面、注册界面及其相关功能),实现带UI的小初高数学学习软件。
本次项目中我们复用了个人项目中进行了功能扩展(设计UI界面:登陆界面、修改密码界面、出题界面、注册界面及其相关功能),实现带UI的小初高数学学习软件。
功能检查:
1、用户注册功能。用户手动输入手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册。
2、用户设置密码。用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;
3、用户选择题目。选择题目密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;
4、生成题目。用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;
5、分数显示。最后一题提交后,界面显示分数,分数根据答对的百分比计算;
6、用户在分数界面可选择退出或继续做题;
7、复用个人项目的小初高数学题目要求。
1、用户注册功能。用户手动输入手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册。
2、用户设置密码。用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;
3、用户选择题目。选择题目密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;
4、生成题目。用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;
5、分数显示。最后一题提交后,界面显示分数,分数根据答对的百分比计算;
6、用户在分数界面可选择退出或继续做题;
7、复用个人项目的小初高数学题目要求。
![](https://i-blog.csdnimg.cn/blog_migrate/d7eb364fe7ef807bebc4d86abecb3633.png)
收获:
1、UI实现
项目使用的是java语言开发,我们使用的是swing、awt中的工具,swing设计界面,awt监听。组件的布局和相应的函数对应参数设置是个比较大的挑战,内容很繁琐,如登录的密码隐藏。
1、UI实现
项目使用的是java语言开发,我们使用的是swing、awt中的工具,swing设计界面,awt监听。组件的布局和相应的函数对应参数设置是个比较大的挑战,内容很繁琐,如登录的密码隐藏。
2、页面切换
我们采用在类内编写方法,调用时只需创建新的对象使之跳转到相应的页面上,同时这也限制了传参的数量,传过多参数会让代码多冗余,且不好维护。
我们采用在类内编写方法,调用时只需创建新的对象使之跳转到相应的页面上,同时这也限制了传参的数量,传过多参数会让代码多冗余,且不好维护。
![](https://i-blog.csdnimg.cn/blog_migrate/62d26242feaa642b30c2e64cebca3fc3.png)
3、一些函数的设计
(1)密码修改时需两次输入,比对是否相同且需检查是否含大小写字母和数字
(2)计算题目正确答案时使用逆波兰表达式/后缀表达式,利用栈的特点进行运算,控制结果的精确度显示
(3)更改信息,找到相应的文件进行修改时考虑方法是否会覆盖原有数据
(4)登陆界面验证码环节引入阿里云的外部jar以及一些端口设置
(1)密码修改时需两次输入,比对是否相同且需检查是否含大小写字母和数字
(2)计算题目正确答案时使用逆波兰表达式/后缀表达式,利用栈的特点进行运算,控制结果的精确度显示
(3)更改信息,找到相应的文件进行修改时考虑方法是否会覆盖原有数据
(4)登陆界面验证码环节引入阿里云的外部jar以及一些端口设置
![](https://i-blog.csdnimg.cn/blog_migrate/6affa5677244f18fc4bcd4666b63afb4.png)
体会:
第一次完成结对编程,在这个过程中分工和沟通很重要。我们共享代码,检查互相代码及功能,在发现需求更改或者漏掉功能时及时进行相应部分的修改和增补。通过互相检查代码实现的界面找出相互在设计中没有考虑的细节,再不断完善代码。在完成自己部分时与队友做好沟通,对于如何调用、参数的传入等问题提前做好沟通,以便合并代码。在发现项目不足时修改代码的过程中也让我意识到分块的好处,易于修改、维护。这次的项目使我收获颇丰。
第一次完成结对编程,在这个过程中分工和沟通很重要。我们共享代码,检查互相代码及功能,在发现需求更改或者漏掉功能时及时进行相应部分的修改和增补。通过互相检查代码实现的界面找出相互在设计中没有考虑的细节,再不断完善代码。在完成自己部分时与队友做好沟通,对于如何调用、参数的传入等问题提前做好沟通,以便合并代码。在发现项目不足时修改代码的过程中也让我意识到分块的好处,易于修改、维护。这次的项目使我收获颇丰。
部分效果展示:
出题界面: 注册界面:
![](https://i-blog.csdnimg.cn/blog_migrate/0e26ff5ff24301e4a0f58fde3ae36e46.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bf61bbbe8387530f75184cfdff02c5d3.png)
手机端验证码:
![](https://i-blog.csdnimg.cn/blog_migrate/e6ab4c3e4c7026fbaf947da7ddd6dd31.png)
题目页面:
![](https://i-blog.csdnimg.cn/blog_migrate/ab453218e34d824a9d61e0bb69a8de93.png)