- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 需求陈述
一个无人值守电梯的轿箱通常停放在大楼的第一层.当某楼层有乘客按下按钮,电梯轿箱便会按照指令上升到该楼层接乘客,然后按照乘客的指令升降到指定楼层,到达后的乘客走下电梯。电梯轿箱停在该楼层,等待下一个乘客的按钮指令。系统对于等待的时间有一定的限制,在时间限制之内又有乘客按下按钮,电梯则重复前面的动作,电梯轿箱仍按照指令上升或下降到指定楼层,到达后,电梯轿箱继续等待下一个乘客的按钮指令,在每次的等待中,如果等待时间超过限制,电梯轿箱会自动返回到大楼的第一层,在那里继续等待乘客。
2.1 用例图
电梯系统用例图如下,主要包括用例、角色和关系。
用例图
乘客作为电梯里的角色,参与系统的5个用例,呼叫电梯、指定楼层、打开电梯门、关闭电梯门和拨打报警电话。工作人员参与接受报警的用例。
2.2 类图
类图对系统进行静态建模,静态图主要描述系统功能需求-系统给最终用户提供服务。类图描述一组类、接口和协作,及他们的关系。
类图
各类的详细声明如下:
Button类
一个抽象类,电梯停或启动的指示器。
Elevator_button
电梯内的人需要到达的楼层。
Building_button
处于某楼层的人需要进入电梯上行或下行的指示。
help_button
紧急情况下的报警。
controlor
用来控制电梯的上行、下行、关门、开门以及电梯调度工作等。
BState:电梯或楼层按钮的状态,若按下,则给控制器发送一个上行下行命令,否则,控制器控制电梯开门或停止。
3.1建动态模型
用户A在3楼按上行按钮呼叫电梯,用户希望到7楼去
上行按钮指示灯亮
一部电梯到达3楼,电梯内的用户B已按下到9楼的按钮
上行按钮指示灯熄灭
电梯开门
用户A进入电梯
用户A按下电梯内到7楼的按钮
7楼按钮指示灯亮
电梯关门
电梯到达7楼
7楼按钮指示灯熄灭
电梯开门
用户B走出电梯
电梯在等待超时到后关门
电梯载着用户A继续下行到达1楼
3.2异常情况
用户A在3楼按上行按钮呼叫电梯,用户A希望到1楼去
上行按钮指示灯亮
一部电梯到达3楼,电梯内的用户B已按下了到9楼的按钮
上行按钮指示灯熄灭
电梯开门
用户A进入电梯
用户A按下电梯内到1楼的按钮
1楼按钮指示灯亮
电梯在等待超时后关门
电梯上行到9楼
电梯内9楼按钮指示灯熄灭
电梯开门
用户B走出电梯
电梯在等待超时后关门
电梯载着用户A继续下行到达1楼
3.3状态图
状态图
4.1序列图
序列图
4.2协作图
协作图
5. 其它工作及部分代码:
电梯设置
电梯分为三种状态:静止,上升,下降。跟随着电梯还有一个数据,就是电梯当前所在楼层数floor_lift,其中floor_lift=30floor_lift=1。
在系统中我们用数组来保存进入电梯的乘客的信息,即目标层数。。
关于超时问题,我们定义时间上限为30分钟。
乘客分析
乘客的需求分为“上”和“下”两种。此外乘客还有当前层数floor_from以及目标层数floor_to。当然floor_from、floor_to也是在1~30之间的整数。
初始化
电梯需要初始化,其中状态为静止state=0,层数floor_lift设置为1。目标层数数组需要初始化,即: for(i=0;i30,i++)
floor[i]=0;
电梯工作分析
电梯的上升下降
电梯的上升下降设置为一秒一层,即
Switch(state) //state分为0—静止,1—下降,2—上升
{
case 0:
break;
case 1:
floor_lift-=1;
break;
case 2:
floor_lift+=1;
break;
default:
cout”error state”endl;
}
静止状态检测
当数组全部为0时,将state设置为0.
电梯为静止状态时
用户输入,信息分为direction和floor_from。Floor_from跟电梯所在楼层floor_lift进行比较,floor_fromfloor_lift,那么把电梯状态改为上升,相对的当小于时改为下降。当floor_from=floor_lift的时候,将乘客的信息加入数组,将乘客目标层数对应的数组元素设置为1。即floor[floor_to-1]=1。
此时将电梯的状态改为用户的目标方向,即state==direction。
电梯为上升或下降状态时
将用户输入与电梯状态相比:
if((direction==state)(floor_lift==floor_from)) //用户目标方向与电梯方向一致时
floor[floor_to-1]=1; //允许用户进入并且输入目标层数
超时设置
当电梯的状态s
您可能关注的文档
- 房地产估价报告 .doc
- 飞天总体架构.ppt
- 分享数学建模 电梯调度问题22.doc
- 风钻打眼工作业标准.doc
- 妇女常见妇科疾病防治知识1.ppt
- 9053Chap6 表面活性剂的功能与应用.doc
- A1包、录播教室及广电设备.doc
- 橄榄球理论知识讲座39.ppt
- c++课程设计高校人事管理系统--管维聪.doc
- 钢结构论文:移动模架主梁制作工艺.doc
- 2024-2025学年小学心理教育的个性化教学设计.docx
- 2024-2025学年小学生习惯养成与心理健康教学设计.docx
- 2024-2025学年小学班会中的安全心理教育教学设计.docx
- 2024-2025学年小学班级间体育联赛的教学设计.docx
- 2024-2025学年小学心理调节与应急安全教育教学设计.docx
- 第10课 电报传递(教学设计)2023-2024学年四年级下册信息技术河大音像版.docx
- 人教版 一年级上册音乐教案第一单元 唱歌 大雨和小雨.docx
- 4.4.1 流动的组织——血液(教学设计帮)-2023-2024学年七年级生物下册同步精品课堂(人教版).docx
- 高中信息技术实验探究教学教学设计(人教中图版)——STEAM实验探究之智能家居的秘密.docx
- 第4章 第39课时 《基本平面图形》回顾与思考2023-2024学年七年级上册数学课时分层作业教学设计(北师大版).docx
文档评论(0)