结对编程项目:带UI的小初高数学学习软件
作者:互联网
此项目在个人项目的基础上增加了UI界面,综合了我与搭档两人的代码,已经进一步优化增加功能做出来的随机出题系统。
【项目分工】
我:主要负责出题部分,答案计算,选项匹配,和得分计算。以及部分UI框架(同一JFrame的布局,采用重绘JPanel的形式实现,可以任意移动窗口位置),代码分类
搭档:主要负责注册部分,对用户信息的管理,管理员模式的设置。以及所有UI界面的最终成型。
【功能】
1. 用户注册。用户通过手机号注册账户,包括用户名和密码(密码要求含有大小写和数字)
2. 找回密码。通过手机号获取验证码可以重置用户密码
3. 更改密码。通过界面右上角的锁图案可以重制该用户的密码
4. 用户登陆。将注册过的账号数据用json文件保存,并匹配登陆
5. 难度选择。选择出题难度为“小学”“初中”“高中”
6. 随机出题。随机显示题目信息以及答案和选项(单选,会根据得到的答案智能生成匹配选项,整数及浮点数的处理,同时会根据窗口宽度匹配题目字体大小)
7. 首页界面。
8. 自动算分。自动计算做题所得分数,并显示(通过计算每道题的占分比得出)。
9. 管理员模式。此模式下可以查看各用户信息(通过用户名称匹配),也可以更改用户密
码,且管理员模式下密码格式不受限制。
【遇到困难】
- JFrame.dispose()函数会生成新的窗口,位置匹配将会出现屏幕正中央,因此改为同一JFrame,仅重新绘制JPanel,因此view中的函数只需要绘制JPanel即可。但同时需要擦除上次的JPanel,
- 题目生成事根号的问题,如果采用全根号智能解答模式需要重定义所有带根号的加减乘除,因此最终选择了以浮点数的形式展示答案
- 答案匹配过程中需要查重,因此用4个变量记录4个选项,同时更新选项只,保证3个选项与答案不同,且互不相同。同时若算术答案明显为整数,则选项均为整数。同时在生成答案时检测浮点数的形式,选项最多保留两位小数。
【收获】
- 学会了使用eclipse中的windowsbuilder插件设计简单的UI
- Java的GUI代码实现,包括整体的框架构成,JFrame和JPanel的绘制,交互等。
- 了解了MVC(model – view – controller框架)
- 手动用栈模式实现了逆波兰算法,根据题目设置优化了解题算法及选项匹配
- 熟悉了对字符串的处理
标签:选项,结对,匹配,JPanel,用户,密码,小初,UI 来源: https://www.cnblogs.com/WeiJieYangDeBlog/p/11605527.html