结对编程中的收获

◇◆丶佛笑我妖孽 提交于 2019-11-30 16:05:36

  结对编程项目是在个人项目的基础上进一步实现UI界面,能够让题目以选择题的形式出现进行选择之后算出最后的得分。这一次的编写中,我的队友放弃了他个人项目使用的Golang,而用了我之前写的java的内容。因为java有自己的成体系的GUI,而Go语言没有官方的GUI。但后来看了一些大佬做的网页版本的,确实会比java的GUI美观一些,现在觉得当时应该用Golang,因此它的web开发的能力非常的强。

  本次结对编程要完成的任务有:

 

  1、用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码创建账户完成注册;

  2、用户登录功能。将用户信息存储在txt文件中;  

  3、修改密码功能。输入两次密码后即可修改密码;

  4、选择难度功能。用户点击选择题目难度和数量;

  5、答题功能。用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;

  6、分数显示功能。最后一题提交后,界面显示分数,分数根据答对的百分比计算;

  7、短信发送功能。输入手机号发送短信;

 

  本次的结对编程之中有以下几个难点:

  1、逻辑结构部分的设置

  虽然和个人项目的逻辑比较的接近,但是应该会更加的负责,因为多了短信验证的功能,题目变成了选择题,要进行答案的选择,最后的计分。除此之外,加入了一定UI界面,整个的体系框架结构逻辑要整理清晰对于后续的编程实现是非常的重要的,我和队友在商讨之后,按照了下列的方式来设定体系结构:

  

  发送短信的内容放在一个package当中;其他对应的功能的UI界面在对应的文件后面加上UI来显示区别。后来整个项目完成之后,我的队友觉得应该将UI文件都放在一个package之中就会更加的好了。这个确实是当时没有注意到的地方。

 

  2、UI界面的设计

  UI界面的设计可以说是比较的复杂的,因为需要添加许多的按钮和监听,并且将逻辑部分都连接在一起,比较好的是我们在第一个难点已经对逻辑部分的设计进行了合理的规划,因此在UI界面的设计也好一点。在做完UI设计之后,想给整个UI加一个背景,这个发现网上的在UI部分使用的都是JPanel,使用两层,一层放置这些按键,设置监听,还有一层为设置背景,这个背景为对于按键等透明。而我们使用的确实JFrame,所有的东西直接添加在这个框架上,后来惊奇的发现,可以直接在这个框架上加图片作为背景图片,只要设置其透明度就可以了。在添加图片的时候一直因为图片的大小设定问题不能使图片在适合的位置,后来用了opencv进行调整图片的大小和JFrame设置的大小一模一样,就可以了。

 

  

 

 

      

 

 

  3、题目与结果的生成

  题目的生成是使用的个人项目中的内容:小学、初中、高中三个难度的题目的生成,括号的增加、算式合法性的检测。这一部分的困难在于生成最终的结果,这里队友使用的方法是:生成正确答案的时候,进行字符串处理,将带平方,根号,三角函数的项,算出结果后,用结果将算式中的项替换,最后变成一个四则运算的表达式,然后利用js的eval函数直接算出结果。在看博客的时候,发现有同学使用的是逆波兰表达式,主要就是将中缀表达式更换为后缀表达式然后存储在栈结构中进行操作。其他的选项生成也有不少细节,答案是整数或者浮点数,生成的选项都会不一样。

   

  

  4、短信的发送

  短信的发送使用了阿里云的API,有现成的接口,java的实现比较的全。除了在添加其jar文件的时候出现了一些问题之外,这一部分的实现还是比较的顺利的

  

  总结:在做结对编程的时候,觉得通过短信发送验证码是一件非常神奇的事情,当很快能够真正发送的时候感到的是一种神奇的感觉。我的UI编写的能力比较的差,这一次结对编程跟着队友一起学到了不少知识与技巧。他编写代码比较的严谨,遵照逻辑规律,写出来的代码简洁优美,美轮美奂。这一次的结对编程让我受益匪浅,为后续的团队项目做了不少的准备工作。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!