数据结构设计--电梯模拟系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、在设计程序之前,务必要对你所设计的题目和内容有一个系统的了解,知