首页 > 其他 > 详细

结对编程项目:带UI的小初高数学学习软件

时间:2019-09-28 23:57:52      阅读:158      评论:0      收藏:0      [点我收藏+]

 此项目在个人项目的基础上增加了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框架)
  • 手动用栈模式实现了逆波兰算法,根据题目设置优化了解题算法及选项匹配
  • 熟悉了对字符串的处理

 

结对编程项目:带UI的小初高数学学习软件

原文:https://www.cnblogs.com/WeiJieYangDeBlog/p/11605527.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!