数据结构课程设计_电梯模拟

上传人:hs****ma 文档编号:496475313 上传时间:2023-05-21 格式:DOCX 页数:39 大小:206.34KB
返回 下载 相关 举报
数据结构课程设计_电梯模拟_第1页
第1页 / 共39页
数据结构课程设计_电梯模拟_第2页
第2页 / 共39页
数据结构课程设计_电梯模拟_第3页
第3页 / 共39页
数据结构课程设计_电梯模拟_第4页
第4页 / 共39页
数据结构课程设计_电梯模拟_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《数据结构课程设计_电梯模拟》由会员分享,可在线阅读,更多相关《数据结构课程设计_电梯模拟(39页珍藏版)》请在金锄头文库上搜索。

1、山东理工大学计算机学院课程设计(数据结构)班级姓名学号指导教师2013年1月15日课程设计任务书及成绩评定电梯模拟课题名称I、题目的目的和要求:巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解, 最终使学生能够熟练应用数据结构的知识写程序。(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正 确求解过程并编写代码实现。II、设计进度及完成情况日期内容2013-1-7选取参考书,查阅有关文献资料,完成资料搜集和系统分析工 作。2013-1-10创建相关数据结构,录入源程序。2013-1-1

2、3调试程序并记录调试中的问题,初步完成课程设计报告。2013-1-15上交课程设计报告打印版并进行课程设计答辩,要求每个同学 针对自己的设计回答指导教师3-4个问题。2013-1-16考核结束后将课程设计报告和源程序的电子版交班长统一刻 光盘上交。III、主要参考文献及资料1 严蔚敏 数据结构(C语言版)清华大学出版社19992 严蔚敏数据结构题集(C语言版)清华大学出版社19993 谭浩强C语言程序设计清华大学出版社4 与所用编程环境相配套的C语言或C+相关的资料IV、成绩评定:设计成绩: (教师填写)指导老师:(签字)二 年 月 日第一章概述1第二章系统分析2第三章概要设计4第四章详细设计

3、7第五章运行与测试2528第六章总结与心得28 参考文献第一章概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程 相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课 程更全面的学习和应用,理解和掌握课程的相关知识。数据结构是一门重要的专业 基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择 和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计 方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。在这次的课程设计中我选择的题目是图书管理。传统的

4、人工图书管理,基本业务活 动有对一本书的采编入库、清除库存、借阅和归还等等,但是人工统计操作起来效率相 对来说要低,也容易出错。但是现在这些业务借助计算机系统完成后,效率可以得到提 高,也可以减少出错的几率。可以使图书管理的日常业务更加的方便迅捷、减少很多劳 动量。1. 训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知 识,编写程序求解指定问题。2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技 能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知 识,提

5、高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。第二章系统分析任务根据教材数据结构题集(C语言版)(严蔚敏、吴伟民主编)选择课程设计题目, 要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计 及其实现等方面加深对课程基本内容的理解和综合运用。设计题目从数据结构题集“第二篇实习篇”中选取,每班每题不得超过2人。另选题:学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的 算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在17周前报课程设计 指导教师批准方可生效。要求:1、在处理每个题目时,要求从分析题目的需求入手

6、,按设计抽象数据类型、构思算 法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终 写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在 程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内 容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。(1)

7、、模拟某校五层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。五 个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大 楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来该层候命。五个楼层从下 到上的编号为:0、1、2、3、4。除了地下层外,每一层都有一个要求向下的按钮除了第 四层外,每一层都有一个要求向上的按钮。对应的变量为:CallUp0.3和 CallDown1.4。电梯内的五个目标层按钮对应的变量为:CallCar0.4。第2页(2)、电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在 关门(Closing)、已关门(Clos

8、ed)、等待(Waiting)。(3)、乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时 间,一旦等候电梯时间过长,他将放弃。对于在楼层内等待电梯的乘客,将插入在等候 队列里,每一层有两个等候队列,一队要求向上,一队要求向下,用链队列来实现。对 于在电梯内的乘客,用五个乘客栈来实现,该乘客要去哪一层,就把他放在相应编号的 栈中,对应变量为k04。(4)、模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要耗费一定 的时间单位(简记为t):有人进出时,电梯每隔40t测试一次,若无人进出,则关门关门和开门各需要20t每个人进出电梯均需要25t如果电梯在某层静止时间超过30

9、0t,则驶回1层候命。(5)、按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。第三章概要设计乘客类型反映乘客的所有属性。Man数据对象:D=(aie乘客信息,I=1,2, .,n,nN0数据关系:R=|ai-1,aiED,i=2, .,n基本操作:void inel();该乘客进入电梯时发生的数据转换及基本的输出void onwait();该乘客进入某层等待队列时发生的数据变动 及基本的输出 long giveup();void getout();该乘客出电梯时所发生的数据变动,及基本的状态输出电梯栈类型电梯内的乘客用乘客栈表示,去不同楼层的乘客放在不同的栈中。ADT Estack

10、数据对象:D=(aie乘客信息,I=1,2, .,n,nN0数据关系:R=|ai-1,aiED,i=2, .,n基本操作:本设计中运用了一个链栈的模板,可以自己定义栈的数据类型共用到了五个栈,分别表示电梯内到往某楼的乘客,为了方便设计,用一个 栈的数组来表示这五个栈,数组的下标表示楼层。等候队列类型在电梯外等待的乘客用等待队列表示。每层各有一个等待队列,表示在该层楼排队 的乘客。为了方便程序设计,用一个队列的数组来表示这五个队列,数组的下标表示楼 层。同上,本次设计也用了一个链队列的模板,电梯相关的动作表示电梯的各个属性和所有动作。Void e1()表示电梯开门时所发生的动作Void e2()

11、在本层出电梯的乘客从本层的栈中弹出调用乘客走出楼梯事件Void e3()电梯外的队列入电梯栈Void e4()电梯状态的转换Void e5()电梯关门时基本状态的输出及一些数据变换Void e6()电梯上升时基本状态的输出及数据的变动Void e7()电梯下降时基本状态的输出,及数据的变动Void e8()电梯处于静止状态时状态的输出,及数据的变动控制模块Void control ()与电梯控制有关的函数集合,用于判断电梯门的开关,及电梯状态转换控制时间模块Void Wait(long tt)本函数用于时间模拟中延时tt个单位的时间Void times()本函数用于现在时间状态的保存,用于输入

12、新的乘客时去处输入所用的时间Void timer ()本函数用于时间状态的恢复输入输出模块diantizhuangtai()输出电梯现在的状态subsr()输入函数的子函数用于处理数据输入并记录用于输入数据所耽误的时间以 维持系统时间的准确性。Void shuru()输人下一个乘客的信息,及相关的判断本函数用于现在时间状态的恢复,用于输入新的 乘客时去处输入所用的时间主程序主程序主要处理两类事件:显示欢迎界面,输入事件和电梯状态转换事件。输入事件是输入乘客的信息和下一个乘客到来的时间状态转换事件是处理在当前状态下电梯的动作第6页本程序包含6个模块:(1) 主程序模块(2) 乘客模块(3) 电梯

13、模块(4) 时间模块(5) 控制模块(6) 输入输出模块各模块之间的调用关系如下:时间模块主程序输入输出模块乘客模块电梯控制模块2电梯模块第四章详细设计/电梯模拟.cpp :定义控制台应用程序的入口点。/#include stdafx.h/此头文件在详细设计的结尾#define MAXMAN 5#define TIME 100using namespace std;/量定义enum states goingup,goingdown,idle;states state=idle;states nowstate=idle;/控 制楼梯的上下int nowfloor=1;/电梯当前的楼层/int d

14、1=0;未用到/int d2=0;/int d3=0;int callup5;int calldown5;int callcar5;long timesum;/延时函数用到的变量long delay;long sum=1;long nexttime;/下一个乘客出现的时刻int tf;/时间恢复标志,用在输入函数递归调用中/int flag;/事件结束的标识long jingzhi;/静止开始时间、用于判断楼梯是否在某一层等待超过300tint f;/电梯动作标志配合jingzhi协同int lt;/下一个人出现的时间间隔int renshu; /电梯内的人数LinkStack biaozhi;/用于时间保存函数递归调用过程中对时间的保存void chushihua()int i=5;while(i)callupi=0;calldowni=0;callcari=0;i-;/自定义乘客类class manpublic:int number;int infloor;int outfloor;long intime;long giveuptime;void inel();void onwait();long giveup();void getout();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号