(1)项目介绍
本次结对编程项目,要求设计一个自动出题的桌面应用或是网页,最终我们决定设计一个基于java图形化界面的应用,主要功能有:
1.实现用户登录,以及电话号码短信注册;
2.进入系统后可以选择小学、初中、高中三种难度,进行出题;
3.设置题目数量,以选择题的方式进行答题,最终可以查看得分; (一下几个基本的界面)
(2)基于个人项目的重用选择:
在个人项目的基础上,我们对对方的代码进行分析和总结,最终决定使用陈tq的代码进行复用。原因是之前我使用的是C++进行实现,而本次项目我们使用java进行实现,所以决定使用ctq的代码进行复用;
(3)设计框架 :在pack包中,创建各个类实现相应的功能,并在Send文件夹中,当有用户注册之后,就会生成相应的文件夹,存储为该用户出的题目,以及在id.txt中存储了用户的账号以及密码用于登录。
image文件夹中存储界面所用到的图片。
(4)在项目实现过程中的难点
1.进行项目整体设计和分工时,我负责前端界面的设计以及后面注册短信发送的功能;队友进行后端设计,对出题逻辑,如何得到正确答案,题目的计算方式等;
在进行对接时,由于我们都没有协商好接口的设计以及参数的设置等等细节的问题,我们都是按照自己的设计思路进行实现,所以在对接时,出现了问题,最后进行不断修改得以解决;
2.本项目花费时间最多的问题是JDK的版本问题带来的双方代码互不兼容的情况,导致我们在整合后,出现代码运行不成功或者在运行过程中不断闪退的问题。
基于这个情况我们查找了很多网上的资料,尝试了很多方法进行解决,最终发现是在计算题目正确答案的模块中使用了一个javascript的函数进行计算,而这个函数只在JDK1.8版本可以正常运行;
所以我们建议大家,最好使用JDK1.8版本,对很多函数模块有更好的兼容性;
3.手机发送短信模块
一开始我们使用网建短信通提供的代码进行实现,但是遇到2个问题:
【1】由于我的eclipese的环境问题,导致需要包含的jar包即使导入了工程,但是依旧无法识别其中的类,之后我换做IDEA进行部署,能够很轻松的识别成功,所以建议大家使用IDEA比较稳定,兼容性也比较好;
【2】网建短信通平台虽然注册审核简单,但是只提供5条免费短信,之后收费很高,所以我们果断放弃,专用腾讯云提供的短信包;
如果使用在腾讯云短信包,则先需要注册自己的公众号能够被搜到之后方可注册成功,但是在使用过程中,我们没有仔细看平台规则:一个号码一天内最多发送10条短信,最开始发送短信失败,以为是自己程序的问题,排查了多次,浪费了一定时间
4.最后就是将工程打包成jar包,在转换为exe文件,如果程序中出现了读取文件的操作,一定要使用流的方式读取,因为jar包不支持路径资源读取!!!
(5)收获与体会
此次项目,让我对java的使用更加熟悉,对GUI图形界面的设计不再像之前一样停留在理论层面。对工具的使用也更加熟练,面对程序中出现的各种问题,也要学会沉着冷静的分析问题的原因。为以后参与到真正的项目累积到一定经验。