结对编程组员:
马辰 11061178
柴泽华 11061153
1) 照至少一张照片, 展现两人在一起合作编程的情况。
3.write the test code
按道理,单元测试应该将所有的可能初始化条件都写在test code里面,但是我为了方便,将program类编程public访问,直接通过运行,检查类的覆盖率。
(问题:老师,这样的单元测试可以吗
4.Build and run the test code
5.Analyze the code coverage
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,修改了测试用例。
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) 总结
通过这次结对编程,我们都认识到了团队合作的重要性。两个人合作编程,不光可以提高代码的准确度以及效率,迅速发现对方的漏洞,更重要的是,还可以提升双方的水平,得到更好的锻炼。这次的题目也非常的有趣,给了我们思维很大的发散空间,评分形式更是激励着我们不断去思索着更迅速的算法。
感谢老师给予我们这次自主学习,自我锻炼的机会!
相关资源:国内领先的在线试衣间软件3D试衣间_github3D试衣间源码-互联 …
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!