pairwork 工作小结—— PairProject13 刘俊伟 王泓洋

小组成员:PairProject13

10061162

刘俊伟

10061180

王泓洋

——————
我是刘俊伟。负责主要代码编写,王泓洋负责细节修改与完善。

不得不说这次作业是目前为止经历的最为纠结的一次作业,主要工作不是写代码,而是读程序,这对个人基础的要求高了不少,作为英语苦手光看懂各个变量名都翻了不少次数的词典。

而另一方面,这也是我第一次对已有程序进行尝试性修改,工作中难免出现较多纰漏。

结对编程的优缺点:
优点(1)集思广益,完善想法,两个人总比一个人考虑得多。
(2)不同方向思考,查补纰漏,不同的想法之间相互弥补,能有效的查补BUG。

 


(3)合理的工作分配让工作变得轻松。
缺点:
(1)强制性的分组带来的是初期交流的不顺畅。

我的优点:能较快提出整体规划,在遇到问题时能很快找到解决方法,遇到无法解决的问题会考虑用另一方法来绕过问题。
缺点:项目进度较慢。

王泓洋的优点:思维慎密,工作耐心,对BUG的寻找以及细节完善有一定经验。
缺点:经验有点不足。

工作照片:

UML图:

 

关于信息隐藏:
在命名方式上,定义的变量和方法可以再前面加上一个下划线"_"来标识,可以避免无意中对私有成员进行赋值,同时也能避免不注意间变量的二次定义。类与类之间交换信息时,要交流私有变量时,要用事先设计好的方法来访问,这样如果我们在其它类里面调用另外一个类的私有变量,那么我们必须定义一个获得该类私有变量的方法;要在另一个类里面改变另外一个类里面的变量时,我们也要定义一个改变该类私有变量的方法。在C#里特别方便的一点就是有set和get,我们可以很方便的定义访问一个类私有变量的方法。

对于契约式编程:
使用者和被调用者地位平等,双方必须彼此履行义务,才可以行驶权利。调用者必须提供正确的参数,被调用者必须保证正确的结果和调用者要求的不变性。双方都有必须履行的义务,也有使用的权利,这样就保证了双方代码的质量,提高了软件工程的效率和质量。但是就另一方面而言,就平等双方而言,所需要的验证机制又是我们新工作的一部分了。同时由于契约式变成并未被标准化,所以代码之间容易出现较大的混乱。

我们的算法:
在此由于个人水准原因,并未利用上老师所给的方法,只是以自己的方法来完成这次作业。

对模版程序而言,电梯接送人员的功能已经完善,缺少的只有引导电梯的方法,因此我们的思路就是给电梯正确的指引,让电梯停在需要停靠的楼层。在代码中用elevto0~3来记录。

每当乘客发出请求,进行一次判定,若有电梯顺路能接上(方向相同,路过该楼层且重量不超限),则在电梯的目的地数组里加入该楼层(需判断是否已存在该目的地)。而每当电梯确定了下次的目的地,该目的地都需要从目的地数组里删除(使用的为arraylist类,remove/removeAt即可)。

在人多的情况下,进行了一点小修改,如果电梯的剩余载重<200,则电梯将不接受未上电梯乘客的请求。(减少停了之后不能再上乘客的情况的出现)

至于乘客最终是否能上电梯,模版程序已经很好的验证了,就算算法效率较低,只要能正确相应IR,送走所有乘客还是没问题的。

若干程序截图对比:

(1)20人的测试对比

原模版程序:

myproject:

(2)1000人的测试

原模版程序:

 

myproject:

╮(╯▽╰)╭可喜可贺可喜可贺。

posted on 2012-10-22 16:09  ********  阅读(312)  评论(1编辑  收藏  举报