软件工程——PairProject

 

结对编程组员:

马辰     11061178

柴泽华  11061153

 

1)    照至少一张照片, 展现两人在一起合作编程的情况。

软件工程——PairProject

 

软件工程——PairProject

 

3.write the test code

 

 

按道理,单元测试应该将所有的可能初始化条件都写在test code里面,但是我为了方便,将program类编程public访问,直接通过运行,检查类的覆盖率。

 

(问题:老师,这样的单元测试可以吗

 

4.Build and run the test code

 

软件工程——PairProject

 

5.Analyze the code coverage

 

  软件工程——PairProject

 

   Solution 1: go to step 3 to write a better test code

 

   Solution 2: if the test code couldn’t be better , MAKE your SOURCE code BETTER! 

 

7.执行Solution1,修改了测试用例。

 

软件工程——PairProject

 

 

 

6)    实现你的算法并说明你的算法的关键 (不必列出源代码), 以及独到之处。

 

算法的关键:

 

每个时刻,会统计所有未处理的上行请求和下行请求,存在upwait和downwait数组中。

 

同样在每个时刻(包括电梯运行中和停止中),每部电梯选择,可以保持循环运行(先上后下再上的循环)的前提下,离自己最近的请求进行执行,同时将这个请求通过加锁的方式,使得其他电梯不能进行选择,这样就不会出现多部电梯同步运行的低效过程。

 

独到之处:

 

此算法的独到之处

 

1.通过增加Elevator的afterhistory属性,使得Scheduler可以每个时刻进行控制,所以算法可以更快地响应变化,效率增强;、

 

2.通过每部电梯选择最近的请求进行应答,提高电梯载人效率;

 

3.通过设计加锁算法,使得多部电梯不能响应同一个请求,避免了多部电梯的同步运行(非常低效);

 

4.通过算法,使得电梯尽量沿一个方向进行运行,直至该方向没有请求再返回,这样可以使电梯的总路程下降。

 

(关于第4点,在现实中,电梯的载人效率和电梯的功耗都是应该考虑的,这样的算法更贴近现实需求)

 

 

 

下面是我们的算法跑3组测试用例的结果(此时电梯初始层分别是0,19,20,1)

 

passenger1.xml测试结果    72.45

 

passenger2.xml测试结果    199.86

 

passenger3.xml测试结果    218.33

 

 

 

7)    总结

 

通过这次结对编程,我们都认识到了团队合作的重要性。两个人合作编程,不光可以提高代码的准确度以及效率,迅速发现对方的漏洞,更重要的是,还可以提升双方的水平,得到更好的锻炼。这次的题目也非常的有趣,给了我们思维很大的发散空间,评分形式更是激励着我们不断去思索着更迅速的算法。

 

感谢老师给予我们这次自主学习,自我锻炼的机会!

 

 

转载于:https://www.cnblogs.com/Colin-Chai/p/3358405.html

相关资源:国内领先的在线试衣间软件3D试衣间_github3D试衣间源码-互联网…

来源:weixin_30824599

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年9月7日
下一篇 2013年9月8日

相关推荐