数据结构课程设计-电梯模拟.docx

上传人:lao****ou 文档编号:84619 上传时间:2023-02-19 格式:DOCX 页数:51 大小:568.17KB
下载 相关 举报
数据结构课程设计-电梯模拟.docx_第1页
第1页 / 共51页
数据结构课程设计-电梯模拟.docx_第2页
第2页 / 共51页
数据结构课程设计-电梯模拟.docx_第3页
第3页 / 共51页
数据结构课程设计-电梯模拟.docx_第4页
第4页 / 共51页
数据结构课程设计-电梯模拟.docx_第5页
第5页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据结构课程设计-电梯模拟.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计-电梯模拟.docx(51页珍藏版)》请在第一文库网上搜索。

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

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

3、第六章总结与心得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.4o电梯内的五个目标层按钮对应的变量为:CallCar 0. 4 o(2)、电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)。(3)、乘客可随机地进出于任何层。对每个人来说,

8、他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。对于在楼层内等待电梯的乘客,将插入在等候队列里,每一层有两个等候队列,一队要求向上,一队要求向下,用链队列来实现。对于在电梯内的乘客,用五个乘客栈来实现,该乘客要去哪一层,就把他放在相应编号的栈中,对应变量为k04。(4)、模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要耗费一定的时间单位(简记为t):有人进出时,电梯每隔40t测试一次,若无人进出,则关门关门和开门各需要20t每个人进出电梯均需要25t如果电梯在某层静止时间超过300t,则驶回1层候命。(5)、按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。

9、第三章概要设计乘客类型反映乘客的所有属性。Man数据对象:数ai 乘客信息,1=1, 2,n, n20数据关系:R= |ai-l, ai WD, i=2,n基本操作:void inel ();该乘客进入电梯时发生的数据转换及基本的输出void onwait ();该乘客进入某层等待队列时发生的数据变动及基本的输出long giveupO ;void getout ();该乘客出电梯时所发生的数据变动,及基本的状态输出电梯栈类型电梯内的乘客用乘客栈表示,去不同楼层的乘客放在不同的栈中。ADT Estack数据对象:D=ai 乘客信息,1二1, 2,n, n20数据关系:R= |ai-l, ai

10、WD, i=2,n基本操作:本设计中运用了一个链栈的模板,可以自己定义栈的数据类型共用到了五个栈,分别表示电梯内到往某楼的乘客,为了方便设计,用一个栈的数组来表示这五个栈,数组的下标表示楼层。等候队列类型在电梯外等待的乘客用等待队列表示。每层各有一个等待队列,表示在该层楼排队的乘客。为了方便程序设计,用一个队列的数组来表示这五个队列,数组的下标表示楼层。同上,本次设计也用了一个链队列的模板,电梯相关的动作表示电梯的各个属性和所有动作。Void el ()表示电梯开门时所发生的动作Void e2()在本层出电梯的乘客从本层的栈中弹出调用乘客走出楼梯事件Void e3 ()电梯外的队列入电梯栈Vo

11、id e4()电梯状态的转换Void e5()电梯关门时基本状态的输出及一些数据变换Void e6 ()电梯上升时基本状态的输出及数据的变动Void e7()电梯下降时基本状态的输出,及数据的变动Void e8()电梯处于静止状态时状态的输出,及数据的变动控制模块Void control ()与电梯控制有关的函数集合,用于判断电梯门的开关,及电梯状态转换控制时间模块Void Wait (long tt)本函数用于时间模拟中延时tt个单位的时间Void times()本函数用于现在时间状态的保存,用于输入新的乘客时去处输入所用的时间Void timer ()本函数用于时间状态的恢复输入输出模块d

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

13、梯控制模块时间模块第四章详细设计/电梯模拟.cpp :定义控制台应用程序的入口点。/#include stdafx. h此头文件在详细设计的结尾define MAXMAN 5define TIME 100using namespace std;/变量定义enum states goingup, goingdown, idle);states state=idle;states nowstate=idle; 控制楼梯的上下int nowfloor=l ;电梯当前的楼层/int dl=0;未用到/int d2=0;/int d3=0;int callup5;int calldown5;int ca

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服