结对编程项目总结
项目说明
本项目使用 Java Swing 实现 GUI 界面。项目的基本结构、具体界面属性以及各界面间的连接等基本由杨廷元完成,用户数据存储、问题和答案的生成、做题相关功能以及验证码相关方法的封装等基本由我完成。各个界面的监听器由我们共同完成。
对个人项目的复用
我们主要复用了个人项目的题目生成器,在 problem 功能包中定义出题接口,用个人项目中的题目生成方法来实现这些接口,除此之外,我们基本上复用了个人项目的用户数据类。
对于其他部分,我们采用了类似的结构,将程序各部分分成不同的功能包,功能包下实现不同的类。整体结构如下所示:
- data 文件夹,存放用户信息文件
- src-main 文件夹
- dailog 包,自定义对话框
- listener 包,各个界面的监听器
- login 包,登录使能、验证码请求等
- page 包,各个页面的具体实现
- problem 包,问题生成和答案计算,还包括题目展示面板
- timer 包,线程计时器
- users 包,用户定义以及用户信息操作类
- AutomaticGenerator 类,程序入口
各页面效果
页面上部分提示使用了华文新魏字体,如果设备上没有安装该字体则会显示为其他字体。
- 运行程序后进入登陆页面:输入账号(手机号码)、密码可以登录,也可以注册新账号或找回原账号的密码。
- 注册账号页面:点击“返回”可回到登录页面,输入未注册的手机号码可获取短信验证码,凭验证码和输入的密码可完成注册,自动跳转到登录页面。
- 忘记密码页面:与注册账号页面的操作相同,唯一的区别是此处输入的手机账号必须是已注册的。
- 成功登录后进入主菜单页面,点击按钮可进行对应操作。
- 从主菜单可进入修改密码页面,修改当前已登录的用户的密码。
- 从主菜单可进入选择页面,可以在此选择生成题目的难度和数量,也可以返回主菜单。
- 选择完成后进入答题页面:选择选项后点击“提交”保存本题答案并自动切换到下一题,用右侧的题号按钮颜色来表示对应题目是否已经提交,可以通过“上一题”、“下一题”按钮手动切换题目,也可以直接点击右侧题号跳转到对应题目,点击“重置题目”重新出题,点击“交卷”可查看分数。
- 交卷后进入得分页面。
经验教训
- 在这次结对编程过程中,我的搭档首先定义了核心功能题目生成的相关接口,这为之后的方法实现提供了很大帮助,在先定义接口的情况下工程的结构框架也会变得更清晰。
- 我们双方的分工较为明确,这也提高了工作效率,缩短了实际开发时长。
- 我们在完成项目的过程中使用 Gitee 来同步双方设备上的工程文件,减少了额外的工程迁移时间。
- 关于手机验证码功能,我们使用了榛子云短信提供的 Java SDK,自行将其封装成一个单例模式的类,这样就可以直接用对应的方法来发送验证码,免去了复杂的调用。
- 项目初期框架并没有添加需求文档中未包括的功能,我们也没有对文件的命名等作出严格规定,这就使得项目中有一部分程序分类以及命名方式不甚统一,可能会影响对项目结构的理解。
总而言之,这个项目对我们来说是一次挑战。在项目的实现过程中,我们锻炼了自己的编程能力和工程组织能力,也能更快发现自己的不足并在未来加以改正。









浙公网安备 33010602011771号