72数据结构课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

HHaarrbbiinnIInnssttiittuutteeooffTTeecchhnnoollooggyyaattWWeeiihhaaii数数据据结结构构课课程程设设计计报报告告设计题目:电梯模拟系统院系:计算机科学与技术学院班级:0504101学号:050410126设计者:安文龙哈尔滨工业大学(威海)二零零七年七月I哈尔滨工业大学(威海)计算机学院《数据结构课程设计》验收及成绩评定表(项目组)项目名称电梯模拟系统职责学号姓名主要分工组长安文龙050410126全部成员成员成员设计开始日期2007-7-3项目完成日期2007-7-15文档评审成绩(共50分)评审项目评审内容成绩标准评审成绩项目名称课题是否从实际出发,是否具有创意等20文档格式文档格式是否规范;文字是否规范;图表是否规范;术语是否准确等10分文档质量程序设计思想与整体框架是否清晰等20分文档总体评价总成绩程序功能完备性评审成绩(共50分)评审项目评审内容成绩标准评审成绩程序运行状况程序是否能正常运行;是否出现死锁;是否遇到错误而中止运行10分程序正确性对于给定的输入数据,是否能得到正确的输出结果15分程序与文档的一致性程序与各种文档的内容是否一致5分程序的代码量程序代码量的大小10分实现方法图形界面或命令行界面,美观程度5分实现语言面向过程或面向对象5分程序总体评价总成绩II哈尔滨工业大学(威海)课程设计任务书姓名:安文龙学号:050410126院(系):计算机科学与技术学院专业:计算机科学与技术学院任务起止日期:2007年7月3日至2007年7月15日课程设计题目:电梯模拟系统问题阐述与分析:电梯是我们日常生活中不可或缺的一种重要工具。电梯的运行是电梯与大楼及各个楼层的使用者互相交互的过程,而相应的电梯模拟就是对这一交互过程进行实际模拟,已达到运载客户的功能。本程序运用时钟控件解决对各个楼层请求的响应顺序问题。本次程序的核心算法是处理电梯在某一时刻的状态、动作以及对下一时刻的状态和动作作出预测和判断。程序的重点在于确定电梯的各个状态以及运行方向,处理各种请求,对每一个动作和状态的时间进行处理。其它的活动体如乘客则相对独立,处理起来更为容易一些。某7层高的楼,设有载客电梯1部。其具体功能如下:(1)电梯的运行规则是:可到达每层。(2)模拟开始时,电梯随机地处于其符合运行规则的任意一层,为空梯。(3)按下“外请求”按钮,表示用户的申请,电梯将根据申请情况运行。(4)按下“内请求”按钮,表示用户在电梯内部的操作。(5)当电梯响应完全部请求后,电梯将自动关门并在终止层等待。(6)电梯可以随时显示其当前信息,如所在楼层,运动状态等。工作量:1.设计可视化操作界面;2.电梯时钟设计3.电梯门开关设计4.乘客请求,电梯响应设计哈尔滨工业大学(威海)课程设计报告(论文)1数据结构课程设计报告软硬件运行环境语言:Delphi运行环境:Delphi7.0硬件:无要求问题及难点所在本次程序的难点是处理电梯在某一时刻的状态、动作以及对下一时刻的状态和动作作出预测和判断。程序的重点在于确定电梯的各个状态以及运行方向,处理各种请求,对每一个动作和状态的时间进行处理。其它的活动体如乘客则相对独立,处理起来更为容易一些。由于电梯运行情况比较复杂,所以采用面向对象的编程语言,使程序实现起来比较简单,并且界面也比较容易设计。算法设计的思想1、初始化初始化电梯基本信息,如运动状态,所在层数,是否收到请求等。哈尔滨工业大学(威海)课程设计报告(论文)22、响应各请求响应前先判断电梯对应此时刻的运动状态,若此时处于停留在某一楼层,则先判断目标运动方向是否相同,若相同,则采用就近原则,若目标运动方向不相同,则采用先请求先响应原则。若此时处于运动状态,则要考虑请求是内部请求还是外部请求。总的原则是若有内部请求,则先响应。只有内部请求时,采用最短路程原则。在内部响应进行时,若有外部请求,则要判断其外部请求的运动方向是否与电梯运动方向相同,若相同,则响应外部请求。否则等内部请求响应完成后再响应外部请求。3、输出信息通过Delphi编译出可视化界面,形象地输出电梯基本信息,如运动状态,所在层数,开关门状态等。算法的流程图哈尔滨工业大学(威海)课程设计报告(论文)3NYNY外请求内请求NY图一:算法流程图开始电梯信息初始化并等待请求判断是否有请求判断电梯是否正在运动先请求先响应响应结束判断是内请求还是外请求响应最短路程请求判断是否有与运动方向相同请求先请求先响应哈尔滨工业大学(威海)课程设计报告(论文)4算法的设计与分析privatemshowin:boolean;//判断Groupboxin是否可见mshowout:boolean;//判断Groupboxout是否可见canmove:boolean;//用来延迟一会循环whichclick:integer;//判断是开门还是关门imagel:integer;//门图片的leftimagew:integer;//门图片的Widthelet:integer;//eleshape的topdoorready:boolean;//电梯门是否准备好elemove:boolean;//电梯是否运动movedrect:integer;//电梯运动方向elelocatefloor:integer;//电梯所在楼哈尔滨工业大学(威海)课程设计报告(论文)5层nowcall:integer;//现在几楼要求电梯运动targetfloor:integer;//电梯运动的目标楼层mincallup:integer;//电梯外部向下运动的最低楼层maxcalldown:integer;//电梯外部向上运动的最高楼层targetobject:integer;//电梯内部要求运动的楼层nowtarget:integer;//现在电梯内部要求运动的楼层downarray:array[2..7]ofboolean;//外部向下运动的按纽uparray:array[1..6]ofboolean;//外部向上运动的按纽targetarray:array[1..7]ofboolean;//内部运动的按纽哈尔滨工业大学(威海)课程设计报告(论文)6procedurewaittwosecond();//等待2秒,一等待过程,不一定是1秒procedurewaitonesecond();//等待1秒,同上proceduredooropenclose();//开门关门动作procedureeleincall(now:integer);//电梯里面要求运动procedureeleoutcall(now:integer);//电梯外面要求运动procedurelighton(nowstate:integer);//点亮所在楼层字体procedurelightoff(nowstate:integer);//关掉所在楼层字体proceduredownoff(nowstate:integer);//关掉向下按纽procedureupoff(nowstate:integer);//关掉向上按纽proceduretargetoff(nowstate:integer);//关掉内部按纽哈尔滨工业大学(威海)课程设计报告(论文)7proceduredoorbitopen();//实现开门动作proceduredoorbitclose();//实现关门动作procedurewait3sec();//实现等待3秒procedurewaitformove();//用来等待shape的运动procedureshowin();//用来使groupboxin可见procedureshowout();//用来使groupboxout可见procedurelightofftarget();//用来是关掉内部按纽颜色Functionmoverequire():integer;//运动一回合后是否还要运动Functiongetnowcallup():boolean;//是否还有向上的请求Functiongetnowcalldown():boolean;//是否还有向哈尔滨工业大学(威海)课程设计报告(论文)8下的请求{functiongetinman(sender:Tobject):integer;//计算进入电梯人数{functiongetoutman(sender:Tobject):integer;//计算走出电梯人数运行结果与分析(测试)运行成功后界面如下:图二:初始化界面(2)哈尔滨工业大学(威海)课程设计报告(论文)9图三:电梯运动界面(1)图四:电梯开门界面(3)总结(收获与体会)在两周内就完成了数据结构课程设计。虽然课程设计已告一段落,但是还有好多东西需要去调试,学习。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力,熟悉了Delphi语言。我十分珍惜这次锻炼的机会,我如期的完成了自己的设计任务,但由于知识水平有限,仍哈尔滨工业大学(威海)课程设计报告(论文)10然存在很多的不足之处。今后在学习其他专业课时,我会珍惜每一次上机机会,锻炼自己的动手能力,加强专业知识,以适应毕业后从事计算机等方面的工作。附:源代码unitunit1;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,Buttons,ExtCtrls;typeTForm1=class(TForm)GroupBox1:TGroupBox;floor7:TLabel;floor2:TLabel;floor1:TLabel;floor5:TLabel;floor3:TLabel;floor4:TLabel;哈尔滨工业大学(威海)课程设计报告(论文)11floor6:TLabel;GroupBox2:TGroupBox;eledoorstate:TLabel;eledown2:TBitBtn;eleup2:TBitBtn;eleup3:TBitBtn;eledown3:TBitBtn;eledown4:TBitBtn;eleup4:TBitBtn;eledown5:TBitBtn;eleup5:TBitBtn;eleup6:TBitBtn;eledown6:TBitBtn;eledown7:TBitBtn;target7:TBitBtn;target6:TBitBtn;target1:TBitBtn;target4:TBitBtn;target5:TBitBtn;哈尔滨工业大学(威海)课程设计报告(论文)12target2:TBitBtn;target3:TBitBtn;doorclose:TBitBtn;eleup1:TBitBtn;doortimer:TTimer;eletimer:TTimer;dooropen:TBitBtn;about:TButton;exitdemo:TButton;GroupBox3:TGroupBox;elelocate1:TLabel;elestate2:TLabel;elemovedown1:TLabel;elemoveup1:TLabel;GroupBoxin:TGroupBox;manin1:TRadioButton;manin6:TRadioButton;GroupBoxout:TGroupBox;manout1:TRadioButton;哈尔滨工业大学(威海)课程设计报告(论文)13manout6:TRadioButton;manin2:TRadioButton;manin7:TRadioButton;manin3:TRadioButton;manin8:TRadioButton;manin4:TRadioButton;manin9:TRadioButton;manin5:TRadioButton;manin10:TRadioButton;manout2:T

1 / 88
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功