《电路与电子学基础》实验报告.docVIP

  • 19
  • 0
  • 约1.42万字
  • 约 16页
  • 2018-06-05 发布于江西
  • 举报
《电路与电子学基础》实验报告.doc

《程序设计课程设计》实验报告 实验名称 《电梯系统程序设计》详细设计002 班 级 07404 组 号 16 姓 名 XXXXXXXXXX 目 录 一.图形界面 3 1.1 总体界面 3 1.2 图形界面详细实现效果解释 3 二.全局变量设置 4 2.1 全局变量设置及功能 4 2.2 各个模块具体访问权限 4 三.程序结构 5 3.1 主函数 5 3.2 各个模块功能综述 5 四.各个模块详细功能 6 4.1 控制部分(Control模块) 6 4.1.1 局部数据结构设计 6 4.1.2 各个函数算法设计 6 4.2 自动机部分(StatusTrans模块) 9 4.2.1 局部数据结构设计 9 4.2.2 各个函数算法设计 9 4.3 输入模块(InPut模块) 11 4.3.2 局部数据结构设计 11 4.3.2 各个函数算法设计 11 4.4 输出模块(OutPut模块) 12 4.4.2 局部数据结构设计 12 4.4.2 各个函数算法设计 12 4.5图形函数部分(LiftGraphics模块) 14 4.5.2 局部数据结构设计 14 4.5.2 各个函数算法设计 14 图形界面 1.1 总体界面 以上为电梯最终达到的目标的界面总体效果。 1.2 图形界面详细实现效果解释 如上图所示,每个楼层外部有两个呼叫按钮,右侧九个按钮表示电梯内部的呼叫按钮。当按钮被按下后,呼叫未被响应时灯亮,响应后灯灭。电梯外的橙色圆形表示电梯当前在第几层。会随着电梯的运行上升下降。 另外,右侧还会用文字或者图片形式显示当前运行状态,目标楼层等状态。 二.全局变量设置 2.1全局变量设置及功能 destiFloor (电梯目标楼层): currentFloor (电梯当前楼层) upRequest[10] (上行呼叫请求数组) downRequest[10] (下行呼叫请求数组) goRequest[10] (电梯内的呼叫请求) time1 (时间,用来计算总时间) lift_Status (电梯状态:五个) enum status {LIFT_FREE, LIFT_UP, LIFT_DOWN, LIFT_USTOP, LIFT_DSTOP}; //枚举表示电梯状态 各个request为数组,数量为十(1-9有意义,0无意义,仅为方便调用),直接表示不同楼层,为1表示相应请求挂起,为0表示相应请求已经实现或未挂起。 各个模块之间的接口用全局变量来实现。通过在各自的线程中扫描与修改全局变量来实现各自的功能。 2.2 各个模块具体访问权限 变量 模块 destiFloor currentFloor Request(三个) time liftStatus Control 读/写 只读 只读 只读 只读 Input 不理会 只读 写 只读 不理会 Output 只读 只读 只读 只读 只读 Elevator 只读 读写 不理会 只读 读写 三.程序结构 3.1 主函数 initialize(); //首先初始化各个变量 init(); //这个是图形函数,用于初始化图形界面 创建输入线程,执行inPut(); StartTimer(100); //控制每次循环时间,划分时间片 while((ev = WaitForEvent())!= EXIT) { control(); //执行控制模块 statusTrans(); //自动机进行状态转移 outPut(); //执行输出模块 i++; if(!(i%5)) time1++; //把一秒分五个时间片,每循环五次时间加一 } StopTimer(); return 0; //程序结束 3.2 各个模块功能综述 InPut:接受输入,并将其转化为相应的呼叫请求:修改全局变量 Control: 扫描呼叫,与当前楼层比较,实现目标楼层的更改 StatusTrans:根据各个电梯变量,来实现自动机的转化 OutPut:扫描更改,实现电梯当前状态的输出 另外,还有一个模块: LiftGraphics,它包括各个模块需要调用的图形函数,但是其本身不再函数中直接调用。 四.各个模块详细功能 4.1 控制部分

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档