- 14
- 0
- 约3.47千字
- 约 33页
- 2019-01-03 发布于湖北
- 举报
入口动作的执行 void Microwave::onEntry() { switch (mystate) { case InitialCooking: setTimer(); turnOnLight(); turnOnTube(); break; case Complete: turnOffTube(); turnOffLight(); soundBeep(); break; case IdleDoorOpen: turnOnLight(); break; case IdleDoorClosed: turnOffLight(); break; case Interrupted: turnOffLight(); clearTimer(); break; case Extended: addMinuteToTimer(); break; default: //发出错信号 }; } 微波炉的状态图 为对象要响应的各事件引入方法 Class Microwave { enum state {InitialCooking, Complete, IdleDoorOpen, IdleDoorClosed, Interrupted, Extended} state myState; void turnOnLight(); void turnOffLight(); void turnOnTube(); void turnOffTube(); void addMinuteToTimer(); void clearTimer(); void setTimer(); void soundBeep(); Public: void doorOpen(); void doorClosed(); void buttonPush(); void timerTimeout(); … … } 事件处理函数的定义 void Microwave::doorOpen() { switch (mystate) { case InitialCooking: mystate=Interrupted; onEntry(); break; case Complete: mystate=IdleDoorOpen; onEntry(); break; case IdleDoorOpen: break; case IdleDoorClosed: myState=IdleDoorOpen; onEntry(); break; case Interrupted: break; case Extended: myState=Interrupted; onEntry(); break; default: //发出错信号 }; } 存在监护条件和与转换相关的动作时 if (cond1) { onExit(); action1(); state=state2; onEntry(); } else if (cond2) { onExit(); acti
您可能关注的文档
最近下载
- 2025成都农商银行授信审查岗社会招聘15人笔试备考试题及答案解析.docx VIP
- 2025春统编版(2024)道德与法治一年级下册教学设计(附目录)(名师教案)表格版.docx VIP
- 《2026版CSCO卵巢癌诊疗指南》解读PPT课件.docx
- 大汉塔机QTZ80(6010)说明书.pdf VIP
- 2025成都农商银行授信审查岗社会招聘笔试备考试题及答案解析.docx VIP
- 变压器现场安装培训课件.pptx VIP
- 道岔转辙设备的运行与维护教案教学能力比赛.pdf
- 工作人员卫生状况监控记录食品公司.pdf VIP
- 维修电工培训培训教材.ppt VIP
- 绘本阅读在幼儿园主题活动中的实践研究.docx VIP
原创力文档

文档评论(0)