电梯调度问题模型分析及程序设计(一)
一.电梯调度问题分析
现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:
电梯编号 |
可服务楼层 |
最大乘客数量 |
最大载重量 |
1 |
全部楼层 |
10 |
800 kg |
2 |
单层 |
10 |
800 kg |
3 |
双层 |
20 |
1600 kg |
4 |
全部楼层 |
20 |
2000 kg |
其使用规定如下:
二.电梯调度功能实现
/*显示电梯当前状态函数*/ void printstatus(struct Lift lift[]) { for(int i=0;i<4;i++) { cout<<i+1<<"号电梯当前所在楼层:"; cout<<lift[i].status<<endl; } cout<<endl; } /*初始化电梯运行方向*/ void StartDir(struct Lift lift[]) { for(int i=0;i<4;i++) { lift[i].dir=1; } } /*判断电梯所处楼层,确定按键设置*/ void Keyset(int i) { if(i==0) { cout<<"选择操作 (1.Up 0.无人):"; } else if(i==20) { cout<<"选择操作 (2.Down 0.无人):"; } else if(i>0&&i<20) { cout<<"选择操作(1.Up 2.Down 0.无人):"; } }
通过这样的实现方式我们模拟出电梯的运行方式,这两部分是整个电梯调度问题的核心。而这与我们平时乘坐电梯时的调度方式时有很大差距的,据笔者了解到需要实现一部电梯的实际调度,我们需要引入Java中线程的相关概念。但通过上述的这种调方式也能实现四电梯的运转。
三.电梯调度测试
四.总结
这部分我们主要为大家讲述了我们团队对于电梯调度问题的一个基本思想,并对于问题模型的建立过程以及最终功能的实现向大家做了一个基础的展示;总的来说,我们团队完成了这次合作任务,虽然只是两个人的一个小小的合作,但通过这样的形式让我们学习到了对方在解决问题上的不同想法以及对于解决问题时我们提出的不同思路,这有利于我们更好的解决问题。如果我们一个人思考,很有可能自己对于问题的考虑在某一方面存在欠缺,而通过合作的方式,我们可以将问题出错情况降到最低,这样对于我们以后思考问题的方式也有很大的借鉴意义。在这部分主要为大家介绍了关于设计方面的思路。我们将在接下来的篇章中为大家介绍在这次开发过程每个人所承担的责任以及扮演的角色。
原文:http://www.cnblogs.com/199489KPY/p/5364383.html