J
jlxbz
Unregistered / Unconfirmed
GUEST, unregistred user!
使用线程的思想,编写一个电梯调度程序。
具体描述及要求如下:
假设有一栋楼10层,有3部互联的电梯
1) 初始状态:所有电梯都在一层。
2) 每一个电梯如果没有相应的请求(上或下),则应该停在原地保持不动,也就是说每一个电梯静止时不一定都在两头。
3) 每一层,每一部电梯的外面都应当有两个按钮(上、下)以及一个状态显示器(显示电梯此时的状态——上/下,目前所在楼层数)。
4) 每一个电梯里面应该有一组数字按钮(1-10)及一个状态显示器(显示电梯此时的状态——上/下,目前所在楼层数),电梯的开、关门由电梯自动控制(开门时间为2秒),并设每层所有人员在2秒内均能全部进入电梯,电梯的载客人数不限。
5) 3部电梯门口的按钮是互相联结的,当一个电梯的按钮按下去,其他电梯的相应按钮也就同时点亮,表示也按下去了。调度算法根据这五部电梯的状态寻找离当前楼层最近的并且和请求同方向的电梯给予响应。如果在调度过程中出现多部(2部或3部)电梯同时满足调度条件,则随机选择一个予以调度。
提示:
1) 本程序其实还是一个仿真题目,因此最适合用面向对象的编程语言编写。
2) 首先应当考虑清楚应当使用几个线程(我想至少要4个),以及每个线程的功能(功能划分应当清楚明晰、不要纠缠不清),还有就是什么情况需要同步,什么情况下需要互斥,以及如何实现(使用锁,还是信号量),注意临界资源可以是:变量、数组、栈、队列、链表等等,不要局限。
3) 电梯的具体运行应当由每部电梯自己控制,但如何运行(如方向等)要受调度程序的控制,此外电梯应当在运行过程中不断更新自己的状态。
大家看一看帮忙设计一下,有实现的代码当然更好。东西要的很急。
我的邮箱:jlxbz@sina.com
具体描述及要求如下:
假设有一栋楼10层,有3部互联的电梯
1) 初始状态:所有电梯都在一层。
2) 每一个电梯如果没有相应的请求(上或下),则应该停在原地保持不动,也就是说每一个电梯静止时不一定都在两头。
3) 每一层,每一部电梯的外面都应当有两个按钮(上、下)以及一个状态显示器(显示电梯此时的状态——上/下,目前所在楼层数)。
4) 每一个电梯里面应该有一组数字按钮(1-10)及一个状态显示器(显示电梯此时的状态——上/下,目前所在楼层数),电梯的开、关门由电梯自动控制(开门时间为2秒),并设每层所有人员在2秒内均能全部进入电梯,电梯的载客人数不限。
5) 3部电梯门口的按钮是互相联结的,当一个电梯的按钮按下去,其他电梯的相应按钮也就同时点亮,表示也按下去了。调度算法根据这五部电梯的状态寻找离当前楼层最近的并且和请求同方向的电梯给予响应。如果在调度过程中出现多部(2部或3部)电梯同时满足调度条件,则随机选择一个予以调度。
提示:
1) 本程序其实还是一个仿真题目,因此最适合用面向对象的编程语言编写。
2) 首先应当考虑清楚应当使用几个线程(我想至少要4个),以及每个线程的功能(功能划分应当清楚明晰、不要纠缠不清),还有就是什么情况需要同步,什么情况下需要互斥,以及如何实现(使用锁,还是信号量),注意临界资源可以是:变量、数组、栈、队列、链表等等,不要局限。
3) 电梯的具体运行应当由每部电梯自己控制,但如何运行(如方向等)要受调度程序的控制,此外电梯应当在运行过程中不断更新自己的状态。
大家看一看帮忙设计一下,有实现的代码当然更好。东西要的很急。
我的邮箱:jlxbz@sina.com