数据结构电梯运行

数据结构电梯运行

ID:14297818

大小:292.50 KB

页数:33页

时间:2018-07-27

数据结构电梯运行_第1页
数据结构电梯运行_第2页
数据结构电梯运行_第3页
数据结构电梯运行_第4页
数据结构电梯运行_第5页
资源描述:

《数据结构电梯运行》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二题:电梯模拟1、需求分析:电梯运行模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。九个楼层由下至上依次称为地下层、第一层、第二层、……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t测试一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;如果电

2、梯在某层静止时间超过300t,则驶回1层侯命。而题目的最终要求输出时:按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。intwaitnow;//已经等待的时间structpassage*next;}Passage;虽然电梯中的状态是由枚举类型来实现的,但是在整个程序的运行过程中,我还是为电梯设置了一个结构体类型,以便保存更多的信息:typedefstructlift{intcount_C;//计数电梯已到达的层数intcount_A;//系统的总时间计数器记得必须初始化为0intflag_in[High];//九个楼层有无请求的标志哪个

3、楼层如果有请求该标志置1intnum;//等待队列中的人数记得要进行初始化为0intpeople;//电梯中人数intflag_out[High];}Lift;(2)算法设计顾名思义本程序在运行的过程中用到的算法便是—“电梯算法”,电梯算法借鉴了磁盘寻道C-LOOK算法,即电梯向一个方向运行,直到这个方向上没有服务为止。2.2设计表示(1)、函数调用关系图及其说明如下:(2)函数接口说明:函数中的参数均是使用的全局变量的传递,因而在函数间进行传递的过程中比较简单,下面就将主要函数及他们之间的参数的关系列出如下:intOutOrIn(Lift&L,Pa

4、ssage*Queue,Passage*LiftQ);//进和出电梯的总函数intUpdate(Lift&L,Passage*Queue,Passage*LiftQ);//刷新的函数intRun(Lift&L,Passage*Queue,Passage*LiftQ);//整个电梯各种状态转换的函数intOpenTheDoor(Lift&L);//开门主要是用于解决其中的时间问题intCloseTheDoor(Lift&L);//关门intIn(Lift&L);//进入主要是解决每个人进入电梯的时间问题intOut(Lift&L);//出去intTes

5、t(Lift&L,Passage*Queue,Passage*LiftQ);//电梯测试关门还是开门的函数intRequest(Lift&L,Passage*Queue);2.3详细设计3、调试分析该程序的调试过程较为轻松,基本在算法实现的基础上没有出现什么错误,因而在调试的过程中并无什么深刻印象。4、用户手册点击运行程序,在弹出的窗口中,会提示要输入的信息:1、提示信息为:“请输入图中的顶点数和弧数以及图的标志和弧的标志:”按要求输入即可,本题即输入911va2、提示信息为“请完成该邻接表的输入”:由于邻接表的输入信息一般较多,而且均是采用的链表来

6、存储,因而该部分的输入要特别的小心3、在完成上面两步的输入后按enter键便能得到程序的运行结果,即输出完成整项工程至少需要多少时间和影响工程进度的关键活动5测试数据及测试结果测试数据如下:911va13161242353214143141541526526977786174971821081841190程序运行结果如下:6、原程序清单如下:/*关键路径问题2010年07月31日晚上08:36开始动工*/#includeusingnamespacestd;constintMAX_V_NUM=20;//最大存储顶点的数目consti

7、ntSTACK_INIT_SIZE=20;//栈的存储空间分配量////数据存储部分/*一下是图的邻接表的存储表示,由于第一次用用的比较的生疏……*/typedefstructArcNode{intadjvex;//该弧所指向的顶点的位置structArcNode*nextarc;//指下一条弧的指针intinfo;//该弧相关信息即权值intname;//弧的名字}ArcNode;typedefstructVNode{intdata;//顶点的信息ArcNode*firstarc;//指向第一条依附该顶点的弧的指针}AdjList[MAX_V_NU

8、M];typedefstruct{AdjListvertices;intvnum,arcnum;//图中当前

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。