数据结构设计--电梯模拟系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[

目录

1.引言 ...................................................... 错误!未定义书签。

2.需求分析................................................... 错误!未定义书签。

3. 概要设计.................................................. 错误!未定义书签。

数据结构描述............................................. 错误!未定义书签。

模块设计................................................. 错误!未定义书签。

电梯的模拟流程图......................................... 错误!未定义书签。4详细设计及实现............................................. 错误!未定义书签。

%

全局变量的定义........................................... 错误!未定义书签。

人具体情况的定义......................................... 错误!未定义书签。

队、栈的类型............................................. 错误!未定义书签。

.电梯类型................................................ 错误!未定义书签。

系统类的定义............................................. 错误!未定义书签。

5.调试分析................................................... 错误!未定义书签。

6.结论及体会................................................. 错误!未定义书签。参考文献..................................................... 错误!未定义书签。|

附录 ........................................................ 错误!未定义书签。

~

电梯模拟系统

1.引言

[

现代社会水平发展迅速,楼房越建越高,电梯就成为了人们生活中必不可少的工具,因此对电梯的运行系统进行了解研究是有一定意义的。本文用在c++的环境下模拟了电梯的运行情况,对电梯的运行情况有了一定的了解。

2.需求分析

(1)以堆栈Lift 模拟电梯,以队Qup[],Qdnow[]两个数组模拟等候电梯的人排的队。进入系统的人进入队列,进入电梯的人从队列中删除并且进入栈中,离开系统的人也从队列中删除。

(2)用户输入楼的的层数,运行的时间,以及进入电梯中人的信息,系统将自动运行,直到把所有的人送到要去的地方,或者到运行的时间为止。

(3)系统有自动与手动两种操作方式,由用户自己选择,系统中的显示均是以图形模拟的方式显示的。

(4)系统能够在运行时输出相关的人的各种信息,如来自哪一层,要去哪一层,用了多少时间等等。

3. 概要设计

数据结构描述

设定栈的抽象数据类型定义: ADT Stack {

数据对象:}0,,,2,1,{≥=∈=n n i ElemSet a D i 数据关系:},,2,1,,|,{111n i D a a a a R i i i i =∈><=--

约定n a 端为栈顶,1a 端为栈底。 }ADT Stack

设定队的抽象数据类型定义: ADT Queue {

数据对象:}0,,,2,1,{≥=∈=n n i ElemSet a D i 数据关系:},,2,1,,|,{111n i D a a a a R i i i i =∈><=--

约定n a 端为队列头,1a 端为队列尾。 }ADT Queue

模块设计

(1)全局变量的定义

(2)人具体情况的定义 (3)队、栈的类型 (4)电梯类型 (5)系统类的定义

电梯的模拟流程图

编程序前要了解电梯的运行情况,作出具体的流程图,以便更好的编写程序。下面给出的是电梯简单的运行模拟图。

·

图1电梯的模拟运行流程图

4详细设计及实现

全局变量的定义

对于全局来说,需知道最多楼层和某一时间电梯所在楼层、电梯状态,首先定义出这些变量,Floor_now定义电梯所在楼层,state定义电梯状态,MaxF 定义最多楼层,t1、t2定义时间变量。

int id;

int R_W;

int imgF;

int Floor_now;梯类型

每个使用电梯的人都在一个固定的层等待电梯,都有一个目标层。电梯有最大的承载数,电梯停下的时候有人出入,也需要记录。电梯何时停下需要有函数判断,Maxman定义最大承载数,Liftman定义为电梯里的人,stop[50]定义需要

停的楼层,run()是关于电梯运行的函数,wait()是关于电梯是否静止等待的函数,Stop()是关于电梯在楼层间停靠的函数,open_shut()是电梯开门关门的函数。在run()运行函数中调用Stop()函数判断是否有停靠的楼层,如果有在调用open_shut()电梯开门关门的函数。

class lift试分析

1.程序中主要函数只有一个state函数,也是核心程序,它比较难,因为考虑的方面比较多,不可能一次就搞定,要经过很多次的运行原型程序才能不断的完善。

2.队栈的操作在程序中是关键之处,不过并没有用到队栈的全部操作,所以,文中只是写了部分操作的代码。

3.程序中大部分的代码是输出函数部分,因为论文中主要是以图模拟的方式显示结果,所以程序中的输出全都集成在两个函数中即syst::img()与syst::word()。对两个函数调用得到了电梯的系统模拟图。

4.调试程序时借助断点或单步可以很快的找到程序中的错误所在。

6.结论及体会

本文电梯模拟系统的设计主要运用了队列和栈的部分知识,电梯系统看似简单但具体的运行却很麻烦,需要考虑到很多的细节。不过只要掌握了电梯的具体流程,写起程序才可以顺利一些。写完一部分程序后,试着去运行,有缺陷在修改,再加入具体函数,使程序更加完美。

-

课程设计使我学到了很多书本以外的东西,同时也提高了查阅资料的能力以及解决问题的能力,培养培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。也懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

在做这次课程设计的时候,遇到这样那样的麻烦,因此,我也得到了许多宝贵的经验:

1、在设计程序之前,务必要对你所设计的题目和内容有一个系统的了解,知

相关文档
最新文档