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

前言:

       由于个人能力的问题,除了C++就只会写Java,因此这次的项目我和我的队友就只能使用Java来完成。在任务前期,我们各自分工,我主要负责登录、注册、设置与更改用户信息、主页这些界面及功能的实现,队友主要负责题目的生成、答案与选项的生成、获得最后分数这些界面及功能的实现。在任务的最后阶段,我们进行了两个部分的整合。

 

一、 个人项目复用

由于整个结对项目的功能是有部分重合的,即题目生成部分。因此,题目生成功能是我们能够复用到的一个部分。我们只需要将这一部分的代码稍加修改,放入到我们功能实现的包中即可。而在此之外,我们还需要创建出题界面,在实现界面时,调用出题功能即可。

 

二、 结对项目

最后的项目包括info、realize、util和view这几个层。

(1)info包实现对用户信息的读取与写入这些操作的数据包,按照最初的设想这个包中应该是实现对数据库的一些操作。但是由于数据库使用方面的一些限制,因此我们将用户信息直接放入了文本文件中。而这一部分就变为了将文本文件内的信息读取到对应的User类的实例中,并实现对用户信息增、改的操作。

(2)realize包主要是对出题、得到答案这些功能实现的功能包。出题功能主要是复用了个人项目中的出题功能。得到答案的功能主要是通过字符串的切割和优先级的设定实现按照一定顺序计算。

(3)util包是实现对字符串、图片和文件特殊处理的工具包。

(4)view包是实现各种界面的界面包。里面主要包含对登录界面、注册界面、设置界面、主页界面、出题界面和得分界面。另外这些界面的大部分功能也都是在里面实现的,但这部分应该放置在功能包里会更好一些。

(5)Icon保存项目中会使用到的一些小图标。

 

三、 经验与教训

(1)在计算算式的答案时,我们因为没有考虑到三角函数会出现负数答案的问题,导致最后字符串切割出现问题。这虽然是一个很小的问题,但是在这个模块实现时没有进行严格的测试与纠错,导致后面这个错误很难找到。

(2)这次项目我们没有给两个部分的合并留太多时间,而且两部分的衔接也做得不是很好,因此在合并时出现了很多错误。需要花很多时间去了解对方程序的每部分代码的意思,并想办法去整合。

总结:

       在做这次结对编程时,可以明显地感觉到,两个人组队编程在遇到一些难题时能够集结双方的智慧去解决。但在代码的规范、注释以及一些接口的编写时需要更加地规范,这样才能使得整合起来更加地简单快速。在今后的团队编程时需要多多注意这一点。总而言之,通过这次的结对编程我初次了解到了组队编程会存在的一些问题也通过队友学习到了一些很有用的编程方法。

 

posted @ 2020-10-09 23:18  咕咕咕菇  阅读(67)  评论(0)    收藏  举报