结对作业:电梯调度

队员:杜长春(10061159)  苏若(10061175)

一、组队编程的优点:

  1、两人合作,可以更好地激发出双方的激情和想象力,培养双方积极主动参与合作的意识,促进双方的交流,能使项目做的更加完善。我和自己的搭档都不是很善于编程的人,不过俗话说的好“三个臭皮匠顶个诸葛亮”,通过不断的讨论和修正,最终确定了我们的算法,由于我们的编程经验不足,我们又分别向自己身边善于编程的同学求助,最后写出了一个不算很好的schedule.cs。

  2、两个人在前期关于算法的讨论中,也许就在争论不休时一个新的想法就会涌现,然后我们分析算法的可执行性以及优越性,正式在这种讨论中我们学到了很多;

  3、两个性格相合的人能够很好的相处,使烦躁的写代码的工作变得轻松一些,提高的工作的效率;

  4、在遇到一些问题或者困难时,两个人一起想主意去解决总比一个人要快的多,我想这就是互补的好处吧;

  5、当然,两个人一起难免会有一些不同的意见,也许这有时候会影响大家的心情,但这都是为了大家共同的目标而产生的分歧,知道了这些也就不会产生矛盾了,争论归争论,革命友情还是最重要的。

 

二、对搭档的评价

  苏若的优点:1、务实、讨论中他总能把我们的思绪拉回正题  2、很认真  3、性格很温和,讨论的时候不会生气

  苏若的缺点:效率有点儿慢

 

三、ACE的设计方法

  接口设计:设计接口是尽量细化,功能追去单一,不要设计功能臃肿的接口方法。

  信息隐蔽:类的成员变量的可见性统一成private,并设计相应的属性。

 

  将接口设计应用到本次作业中,在Schedule.cs中,只用了很少的class,而且这个工程的接口的定义很明了,所以用起来很方便

 

四、UML图

结对作业:电梯调度_第1张图片

五、电梯调度算法

  首先为每部电梯停的楼层的ID建立一个arraylist,当接受到请求时,乘客进入电梯,然后对乘客所要到达的楼层进行排序,如果电梯的方向是上,则按照从小到大依次停靠,如果电梯的方向是从上到下,则按照从大到小的顺序依次停靠;

  执行指令前,先检察历史请求,如果未全部完成,则先完成历史指令,执行完毕后删除记录;

  然后接收新请求,根据人数的比例,先考虑上楼的乘客,分别为楼上的乘客上楼,楼下的乘客上楼,然后再考虑下楼的乘客,分别为楼下要下楼的和楼上要下楼的;

  为了进一步增加效率,有了PickInTheWay方法,在执行指令过程中,如果在某一层电梯没有乘客下电梯但是有新的请求和电梯的运行方向一样,则顺路带走。

 

六、自己在这次作业中负责的部分

  参与算法的讨论,然后进行代码的初步编写和完善。

你可能感兴趣的:(作业)