结队作业之电梯调度算法
2016-04-09 13:03
344 查看
[b]结队成员[/b]
习志敏and沈聪
沈聪博客链接:http://www.cnblogs.com/congshen
coding链接:https://coding.net/u/dunkey/p/diantidiaodu/git
[b]前言[/b]
首先,非常感谢老师可以为我们提供组队编程的环境,从大一开始,几乎每一次编程都是自己独立完成,最多是实在找不出错误去问一下同学,这次结队编程中,我很荣幸能够和沈聪成为一队,刚开始,我们对对方都不是特别了解,但在一起编程的这几周里,我发现我们的性格能力刚好互补,起初,我们一起讨论了一下这个作业的基本算法,然后各自说了一下自己的想法,初步的写了一个程序框架,他负责敲代码,我在一旁负责检查错误,我们配合的很有默契,最终,我们的作业也按时完成,这期间,酸甜苦辣,和队友意见不同到最后找到一个最好的办法,这种感觉是前所未有的,下面是我们工作时的照片。
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409123937531-1667826147.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409124046500-967142850.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409124102859-953570341.png)
[b]算法设计[/b]
本程序用java语言、eclipse平台编写,通过往返寻找方法,即先查询电梯运行方向的楼层是否存在有其他键被按下,有就继续往该方向运行,如果没有就查询电梯运行反方向的楼层是否有按键被按下,如果有电梯就改变方向,反方向运行。如果没有电梯就停止在该楼层,30秒后如果没有任何键被按下,电梯就自动返回1楼驻停。同时,电梯乘客所去的楼层方向与电梯当前方向一致的话,则电梯优先搭载该乘客。随后再搭载去反方向的乘客。实现电梯的升降操作。具体流程图如下。
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125255953-1021867091.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125310937-1979670162.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125421156-1590735504.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125517281-357134226.png)
总结感悟
一开始做电梯调度算法比较困难:因为有许多因素要考虑,而且需要到的许多java界面方面的知识、事件控件方面的知识和时间方面的控制知识都比较薄弱,但经过了一段时间的学习,逐步攻破各方面的弱点。又从书本上、网上了解到做电梯的思想。很快就将电梯调度算法用java语言实现了。这一次的课程设计不但让我更加了解了java语言,而且学习到了新知识,同时更加清楚地了解到该用怎样的思想去实现一个算法。最重要的是,我学到了如何发挥团队的力量,如何产生1+1>2的效果,总之,我觉得这次团队作业会对我以后的工作学习产生很大的影响。
习志敏and沈聪
沈聪博客链接:http://www.cnblogs.com/congshen
coding链接:https://coding.net/u/dunkey/p/diantidiaodu/git
[b]前言[/b]
首先,非常感谢老师可以为我们提供组队编程的环境,从大一开始,几乎每一次编程都是自己独立完成,最多是实在找不出错误去问一下同学,这次结队编程中,我很荣幸能够和沈聪成为一队,刚开始,我们对对方都不是特别了解,但在一起编程的这几周里,我发现我们的性格能力刚好互补,起初,我们一起讨论了一下这个作业的基本算法,然后各自说了一下自己的想法,初步的写了一个程序框架,他负责敲代码,我在一旁负责检查错误,我们配合的很有默契,最终,我们的作业也按时完成,这期间,酸甜苦辣,和队友意见不同到最后找到一个最好的办法,这种感觉是前所未有的,下面是我们工作时的照片。
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409123937531-1667826147.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409124046500-967142850.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409124102859-953570341.png)
[b]算法设计[/b]
本程序用java语言、eclipse平台编写,通过往返寻找方法,即先查询电梯运行方向的楼层是否存在有其他键被按下,有就继续往该方向运行,如果没有就查询电梯运行反方向的楼层是否有按键被按下,如果有电梯就改变方向,反方向运行。如果没有电梯就停止在该楼层,30秒后如果没有任何键被按下,电梯就自动返回1楼驻停。同时,电梯乘客所去的楼层方向与电梯当前方向一致的话,则电梯优先搭载该乘客。随后再搭载去反方向的乘客。实现电梯的升降操作。具体流程图如下。
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125255953-1021867091.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125310937-1979670162.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125421156-1590735504.png)
![](https://images2015.cnblogs.com/blog/901737/201604/901737-20160409125517281-357134226.png)
总结感悟
一开始做电梯调度算法比较困难:因为有许多因素要考虑,而且需要到的许多java界面方面的知识、事件控件方面的知识和时间方面的控制知识都比较薄弱,但经过了一段时间的学习,逐步攻破各方面的弱点。又从书本上、网上了解到做电梯的思想。很快就将电梯调度算法用java语言实现了。这一次的课程设计不但让我更加了解了java语言,而且学习到了新知识,同时更加清楚地了解到该用怎样的思想去实现一个算法。最重要的是,我学到了如何发挥团队的力量,如何产生1+1>2的效果,总之,我觉得这次团队作业会对我以后的工作学习产生很大的影响。
相关文章推荐
- CentOS6.x生产环境下一键安装mono+jexus的脚本,自启动,带服务,版本号自控
- Oracle用户权限分配
- JSP、Cookie、Session
- 导入java项目
- tslib安装 C compiler cannot create executables
- mysql数据库导出的方法
- 【机房重构个人版】DataTable与泛型
- C# winform窗体间传值(使用委托或事件)
- Windows XP 第三大操作系统
- kali2.0 msf连接数据库及启动armitage
- linux中的装*神器
- 大视野2186: 沙拉公主的困惑(求逆元)
- IDEA插件配置之Eclipse Code Formatter
- [算法学习]20150409.1.插入排序
- Scrapy设置之Performance概览
- LeetCode 17 Letter Combinations of a Phone Number
- CSP最大的矩形
- 结对编程项目——电梯调度
- java动态数组 2.0
- Java之XMemcached使用及源码详解