本次结对编程要求我们在个人项目的基础上,经过合作和创新,来完成一个带UI界面的出卷答题系统,与个人项目的区别:
1.UI界面
2.短信登录认证
3.选择题形式
综合分析题目,我们先初步得将工作任务分配了下来:
实现UI界面。我自己的个人项目就使用UI实现的,所以做界面就显得不是那么困难,所以我先将整体的框架实现,即构建所以的代码包括跳转界面的内部逻辑,然后初步完成之后,我发现还剩下这些问题。
一是短信登录,在我们共同的尝试下,选择了阿里云作为平台来实现短信登录,由于阿里公司对技术的无私展示,提供了对应的接口,我们将其运用在代码中,十分轻易的就调用好了,这里非常感谢阿里公司。
二是这次登录的账号都要经过注册,这意味这我们需要使用数据库来储存每一个登录或注册的账号,或者使用文件流从txt文件读取。这里是由张惟盛同学学习并指导了我使用IO文件流,并成功实现在代码中,其中还有小插曲,由于一开始张惟盛同学并不知道JAVA UI 中的一些知识,所以是他先写普通Java文件,然后我再来转换到项目当中,在转化的过程中,我粗心将一小段逻辑写错,导致后期检查的时候发现只要输入任意的账号密码,系统都会读入并判断正确,这是不符合逻辑的,而且是在完成所有任务之后才发现,所以检查起来非常麻烦,容易误导我们想到别的地方,所幸最后还是检查出来了。
三是这次不仅需要出题,还要生成四个答案,就是说要负责出题和做题。这部分也主要是张惟盛同学完成的逻辑部分,我完成了其在界面中的实现,项目一开始,我们进行了讨论,觉得应该先设计一个计算小学题目的类,然后之后我们只需要将初中和高中中特殊的算式提出来单独计算,再将式子合成为新的小学题目套入即可,这个过程并不算复杂,我们通过以前学习过的算法简单的完成了小学题目解答,但在初中和高中的部分遇到了一些小插曲:这一部分逻辑由张惟盛单独完成,于是为了检验简单,他直接用面向过程的思想,在主函数中进行编写,这个问题导致了后续我在套用这部分代码的时候出现了困难,因为在改成面向对象的过程中有点麻烦;其次,由于没有事先沟通加上个人代码风格的差异,我们都使用了一般的命名习惯,比如排序的标记都从i开始,数字的数组都用了num,这一问题导致了我们在拼接的时候出现了很多无意义的bug,在之后的文件流代码套入的过程中我们吸取教训完成了这个问题。
最后项目在我们共同的努力下,其实是进展的相当迅速的,很快我们就完成了所有的工作,在解决这些问题的过程中,我们互相学习和进步,让我们都深有体会。
原文:https://www.cnblogs.com/zkxxxxx/p/11604736.html