最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

电梯模拟程序设计

来源:动视网 责编:小OO 时间:2025-10-01 09:49:55
文档

电梯模拟程序设计

1.1任务目标概述本次实验的任务是设计实现一个模拟电梯控制系统的软件。通过该实验,要求学生能够应用所学的结构化程序设计知识来解决实际问题,培养和提高学生理论结合实际的能力。具体的要求是:能够进行计算抽象(有限状态自动机建模)、信息抽象(数据结构建模);应用结构化程序设计方法,培养良好的程序设计风格与习惯;学习了解软件开发的整个过程,学习书写简单软件文档;学习多人合作开发软件的方法,提高合作和协同工作的能力。1.2目标系统的需求   共有1个电梯共有maxfloor层楼层。maxfloor=9。
推荐度:
导读1.1任务目标概述本次实验的任务是设计实现一个模拟电梯控制系统的软件。通过该实验,要求学生能够应用所学的结构化程序设计知识来解决实际问题,培养和提高学生理论结合实际的能力。具体的要求是:能够进行计算抽象(有限状态自动机建模)、信息抽象(数据结构建模);应用结构化程序设计方法,培养良好的程序设计风格与习惯;学习了解软件开发的整个过程,学习书写简单软件文档;学习多人合作开发软件的方法,提高合作和协同工作的能力。1.2目标系统的需求   共有1个电梯共有maxfloor层楼层。maxfloor=9。
1.1 任务目标概述

本次实验的任务是设计实现一个模拟电梯控制系统的软件。通过该实验,要求学生能够应用所学的结构化程序设计知识来解决实际问题,培养和提高学生理论结合实际的能力。具体的要求是:

能够进行计算抽象(有限状态自动机建模)、信息抽象(数据结构建模);

应用结构化程序设计方法,培养良好的程序设计风格与习惯;

学习了解软件开发的整个过程,学习书写简单软件文档;

学习多人合作开发软件的方法,提高合作和协同工作的能力。

1.2 目标系统的需求

    共有1个电梯

共有maxfloor层楼层。maxfloor=9。

中间层每层有上下两个按钮,最下层只有上行按钮,最上层只有下行按钮。每层都有相应的指示灯,灯亮表示该按钮已经被按下,如果该层的上行或者下行请求已经被响应,则指示灯灭

电梯内共有maxfloor个目标按钮,表示有乘客在该层下电梯。有指示灯指示按钮是否被按下。乘客按按钮导致按钮指示灯亮,如果电梯已经在该层停靠则该按钮指示灯灭

另有一启动按钮(GO)。当电梯停在某一楼层后,接受到GO信息就继续运行。如果得不到GO信息,等待一段时间也自动继续运行。

电梯内设有方向指示灯表示当前电梯运行方向。

说明:由于本次实验不使用可视化框架,所以无法作到从图形界面上获取按钮请求。因此电梯按钮的设计,不在图形界面上体现,仅用来设计键盘的模拟输入。

1.3 目标系统的需求分析

1.电梯的初始状态是电梯位于第一层处,所有按钮都没有按下。

2.乘客可以在任意时刻按任何一个目标钮和呼叫钮。呼叫和目标对应的楼层可能不是电梯当前运行方向可达的楼层。

如果电梯正在向I层驶来,并且位于I层与相邻层(向上运行时是I-1层或者向下运行时是I+1层)之间,则因为安全考虑不响应此时出现的I层目标或者请求。如果电梯正好经过了I楼层,运行在I楼层和下一楼层之间,则为了直接响应此时出现的I层目标或者请求,必须至少到达运行方向上的下一楼层然后才能掉头到达I楼层(假设掉头无须其它额外时间),如果I楼层不是刚刚经过的楼层则可以在任意位置掉头,此时掉头后经过的第一个楼层不可停。

电梯系统依照某种预先定义好的策略对随机出现的呼叫和目标进行分析和响应。

乘客数量等外界因素(可能导致停靠时间的长短变化)不予考虑。假设电梯正常运行一层的时间是5S,停靠目标楼层、上下乘客和电梯继续运行的时间是5S。

当电梯停靠某层时,该层的乘客如果错误的按目标或呼叫按钮都不予响应。

电梯停要某一层后,苦无目标和呼叫,则电梯处于无方向状态,方向指示灯全灭,否则电梯内某个方向的指示灯亮,表示电梯将向该方向运行。等接到“GO”信号后电梯立即继续运行。若无GO信号,则电梯在等了上下乘客和电梯继续运行时间后也将继续运行。

当一个目标(呼叫)已经被服务后,应将对应的指示灯熄灭。

1.4 目标系统的策略选择

1.先来先服务策略:

将所有呼叫和目标按到达时间排队,然后一一完成。这是相当简单的策略,只需要设计一个将呼叫和目标排队的数据结构。因为该策略效率也很低,所以没有实际的电梯采用这种策略。

顺便服务策略:

顺便服务是一种最常见的简单策略。这种策略在运行控制中所规定的安全前提下,一次将一个方向上的所有呼叫和目标全部完成。然后掉转运行方向完成另外一个方向上的所有呼叫和目标。

可以采用设定目标楼层的办法来实现这个策略,即电梯向一个目标楼层运行,但这个楼层可以修改。具体策略如下:

修改目标楼层的策略:

a.如果电梯运行方向向上,那么如果新到一个介于当前电梯所处楼层和目标楼层之间,又可以安全到达的向上呼叫或者目标,将目标楼层修改为这个新的楼层。

b.如果电梯运行方向向下,那么如果新到一个介于当前电梯所处楼层和目标楼层之间,又可以安全到达的向下呼叫或者目标,将目标楼层修改为这个新的楼层。

2)确定新的目标楼层:

如果电梯向上运行,当它到达某个目标楼层后,则依照以下顺序确定下一个目标楼层:

a.如果比当前层高的楼层有向上呼叫或者目标,那么以最低的高于当前楼层的有向上呼叫或者目标的楼层为目标。

b.如果无法确定目标楼层,那么以最高的向下呼叫或者目标所在楼层为电梯当前目标楼层。

c.如果无法确定目标楼层,那么以最低的向上呼叫所在楼层为电梯当前的目标楼层。

d.如果仍然不能确定目标楼层(此时实际上没有任何呼叫和目标),那么电梯无目标,运行暂停。

如果电梯向下运行,依照以下顺序确定下一目标楼层:

a.如果比当前层低的楼层有向下呼叫或者目标,那么以最高的低于当前楼层的有向下呼叫或者目标的楼层为目标。

b.如果无法确定目标楼层,那么以最低的向上呼叫或者目标所在楼层为电梯当前目标楼层。

c.如果无法确定目标楼层,那么以最高的向下呼叫楼层为目标楼层。

d.如果仍然不能确定目标楼层(此时实际上没有任何呼叫和目标),那么电梯无目标,运行暂停。

3)最快响应策略:

响应所有的现在存在的所有呼叫和目标所需时间(采用不同方案电梯停靠时间相同,所以不必考虑)最短的策略。

可选方案一是电梯先向上运行响应经过各层的目标和向上呼叫,再向下运行响应所有向下呼叫以及途经各层的目标,最后再向上响应剩余的向上呼叫。二是恰好相反,先向下,再向上,最后再向下运行。

由于呼叫和目标会随时增加,所以实际上有时这种策略并不好。另外有时这将导致电梯突然向相反的方向运行。为了防止经常性的改变方向,我们可以采用设定只有当原来的运行方向比相反方向的代价高20%的时候才切换方向。 

1.5 目标系统的IO需求

1)输入:

就是一系列的呼叫和目标。输入可以采用两种方法:

a.以键盘输入呼叫和目标。例如我们可以设定如下:当敲击键1、2、3、4、5、6、7、8、9时表示电梯内有乘客按目标按钮,指定相应目标楼层。当敲击键Q、W、E、R、T、Y、U、I时表示8层到1层有上行呼叫请求。当敲击键A、S、D、F、G、、H、J、K时表示9层到2层有下行呼叫请求。

b.将呼叫和目标写入一个正文文件,然后程序读取这些呼叫和目标数据后可以在没有人工干预的情况下模拟电梯运行情况。其中一个呼叫/目标占一行,格式如下:

<操作时间>[空格]<呼叫目标>[回车]

操作时间,表示呼叫请求的发生时间,是以程序启动时刻为参照的相对时间。以四位的数字字符串表示,从0000开始,单位秒。

呼叫目标,和键盘输入的设定一致,占1个字节。

    1、2、3、4、5、6、7、8、9时表示电梯内有乘客按目标按钮;

    Q、W、E、R、T、Y、U、I时表示8层到1层有上行呼叫请求;

A、S、D、F、G、H、J、K时表示9层到2层有下行呼叫请求;

每个数据项之间用一个空白字符隔开。不必考虑检查数据的正确性。

2)输出:

a.电梯运行的动画显示:包括显示各按钮指示灯的亮灭情况、电梯方向指示灯和电梯位置及运行情况。另:为方便查看电梯运行情况,需要在显示中划分一块区域,专门显示键盘输入的呼叫和目标数据。

b.电梯运行情况的记录(结果)文件。

记录文件也是文本文件,每一行表示一次停靠,包括以下内容:

停靠时间:开始停靠某楼层的时间,以整数表示,从小到大排列,占4个字节,从0开始,单位秒。

楼层:停靠的楼层,占一个字节(1-9)。

每个数据项之间用一个空白字符隔开。程序中不必考虑检查数据的正确性。

1.6 目标系统的高级需求

1.程序的运行方式:

如果输入从数据文件中取得,则程序的运行应该有两种方式,动画方式、快速方式和完全方式。如果输入从键盘获得,那么只能采用动画方式或完全方式,不能使用快速方式。

a.动画方式花费较长的时间来直观地模拟电梯运行。

b.快速方式则没有动画,只是生成记录文件。

c.完全方式花费较长的时间来直观地模拟电梯运行,同时生成记录文件。

基本要求只实现动画方式。

2.控制策略:

基本要求实现先来先服务和顺便服务策略,可以指定电梯模拟系统使用不同的策略。较高的要求是可以在多个策略之间由我们控制进行切换。

3.输入输出:

基本要求实现键盘输入、动画输出。

4.统计分析

统计分析每个乘客乘电梯花费的平均时间。

如果实现了多个策略,则可以对不同策略加以比较。

统计分析是较高要求,基本要求不必考虑此功能。

程序的适应性考虑:

例如如何不要作很多修改就可以适应楼层数改变(例如增加到30层)等等。

程序适应性是较高要求,基本要求不必考虑此功能。

文档

电梯模拟程序设计

1.1任务目标概述本次实验的任务是设计实现一个模拟电梯控制系统的软件。通过该实验,要求学生能够应用所学的结构化程序设计知识来解决实际问题,培养和提高学生理论结合实际的能力。具体的要求是:能够进行计算抽象(有限状态自动机建模)、信息抽象(数据结构建模);应用结构化程序设计方法,培养良好的程序设计风格与习惯;学习了解软件开发的整个过程,学习书写简单软件文档;学习多人合作开发软件的方法,提高合作和协同工作的能力。1.2目标系统的需求   共有1个电梯共有maxfloor层楼层。maxfloor=9。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top