我们用了历时2周的时间进行了对电梯模拟程序的编写,我非常感谢我的合作伙伴王长同学(博客地址:http://www.cnblogs.com/naturewang/),在这个过程中他给我了
很大的帮助,没有他的帮助,我想我们是不容易把这个程序弄完的。
王长同学非常细心,也非常有耐心,在程序的编写过程中产生了一些问题,他都能耐心地和我一起解决,而且也能细心地对程序进行改进,在结对写程序的过程中,我们共同进行了需求分析,分析内容如下:
电梯的初始状态定义
(1)建筑共有21层,一共有四部电梯,其中两部是可以服务全部楼层的,另外两部为单双层电梯,编号为1、2、3、4;(2)0号为地下一层,也就是说,我们的出入一般都在0和1号(地下和大堂)。设计程序时,如果乘客选择0号,那么当乘客下电梯之后,电梯将自动回到1号位置,方便下一波乘客乘坐;(3)0电梯内部共有23个按钮(单双层电梯只有13个按钮),其中包括开门、关门按钮以及到达各个具体楼层的按钮;电梯外部每个楼层有两个按钮向上和向下按钮。按电梯的底层有就是0层只设有向上按钮,顶层及20层只有向下按钮。(4) 电梯有编号,有楼层限制,并有超重报警;(5)电梯的开关门完成时间以及到达每层上下人的时间设定。
具体流程
(1)乘客在某一楼层按下向上或者向下请求按钮;(2)当乘客在某一楼层按下向上货向下按钮,四部电梯同时收到命令后,由具体算法做出响应后通过控制相应电梯的运行对乘客的请求做出反应;只有当电梯的反应符合乘客的相关请求时才打开电梯门;(3)当满足条件后,电梯为乘客开门,乘客进入电梯后,需要判断电梯内部是否满员,若超载则弹出警示,乘客退出,继续等待。(5)电梯的运行结果即为输出结果,在到达该楼层后电梯门开启。
电梯在很多时候都会收到两个或两个以上的请求,进入电梯的乘客也不止一个,为了减少多个请求的等待时间,系统需要对多个请求进行优先级的判断。按照优先级,将每名乘客送到指定楼层;在多名乘客使用电梯时即系统在接到多个请求 后或者系统接收到一个请求又收到别的请求,系统将当前的首目的楼层与新的请求相比较,根据减少请求间的等待时间为原则判断哪个请求优先,即将优先的请求更新为电梯新的目的楼层,如果中途再有新的情况,则做一样的处理。
此后,我负责写算法,他负责编写代码,后来我们共同调试程序,由于我们的水平有限,所以没有设计界面,尽管在算法方面有一些不足和缺陷,随后又进行了改进,在大致思路下,他成功的编写出了电梯模拟的程序,其后对程序的调试中遇到了一些错误,但经过我们的努力,也都一一解决了,最后编写的程序没有了错误,可以完美的运行了。
此次结对的任务中,我体会到了团队的重要性,队友和队友之间只有多沟通,多了解,才能形成足够的默契,才能够一起成功的完成任务,尤其是在完成大型的软件项目时,队友之间的默契程度更加决定了项目的成功与失败,所以,再次感谢我的队友在设计研究程序中给予我的帮助,希望以后能够继续和你一起完成项目。