【Rhapsody学习笔记】2:Count Down

该博客介绍了如何在Rhapsody中创建一个倒计时程序,包括添加属性、操作、实现代码,以及绘制状态图。通过创建Display类,设置Count属性并实现print操作,以200ms间隔从10倒数至0。同时,教程还涵盖了添加动画调试配置,使用状态图进行模型验证,并展示了如何添加实例和序列图来捕捉执行过程。

Exercise 2 : Count Down

1 复制项目

打开第一个实例Hello.rpy,选择“文件”–“另存为”,新建一个文件夹重命名,将项目保存为“CountDown.rpy”。

2 添加属性

双击“Display”类,选择“属性(Attributes)”标签。
点击“新建”,添加int类型属性Count
设置初始值为0
在这里插入图片描述

3 生成代码

保存,然后编辑代码(详细操作见【Rhapsody学习笔记】1:Hello World
在这里插入图片描述
在这里插入图片描述

  • 设置accessor和mutator的可见性(Visibility),可以在浏览器–“Display”类–“属性”–“count”,双击打开或右键“特征”,可见性下拉菜单选择,但是只能改变accessor和mutator的可见性,无法改变数据的可见性。如下图所示:

4 添加操作

右键“Display”类选择“特征”,点击“操作”标签,点击“新建”–“Operation”,修改名称为print
在这里插入图片描述

5 添加参数

双击“print”操作打开特征窗口,选择“参数”标签,添加int类型参数n
在这里插入图片描述

6 添加实现

选择“实现”标签(“print”操作特征),添加代码cout << "Count = " << n << endl;
在这里插入图片描述

7 再次添加操作

按照第4~6步再次添加print操作,有char*类型参数"s"以及实现:cout << s << endl;
在这里插入图片描述

8 添加操作isDone()

添加操作isDone(),返回“bool”型参数,有实现:return (0==count);
在这里插入图片描述

  • 活动代码视图——可以打开活动代码视图显示,活动代码视图会根据模型的改变而自动更新,并且会自动跳转到所选模块对应的代码处。但是会降低模型操作的速度。
  • 带吗双向传递——这次终于找到如何设置了,“文件”–“项目属性”–“属性”–“查看全部”–“CPP_Roundtrip”–“General”–“RoundtripScheme”,设置为Basic。
    在这里插入图片描述
    在这里插入图片描述
    我们在活动代码视图中修改display函数,模型中相应地改变。

9 添加状态图

我们准备让Display类以200ms为间隔从10倒数至0。为此我们需要给类添加一些行为,可以通过添加状态图来实现。
右键“Display”类,选择“新增”–“状态图”。
在这里插入图片描述

10 绘制状态图

绘制如下状态图
在这里插入图片描述

11 编译执行

结果如下图所示:
在这里插入图片描述
到现在为止,我们已经实现了目标。但是当我们面对更加复杂的模型时,我们需要验证模型,下面将介绍设计级调试(level debugging)来验证模型,这被称为“动画(Animation)”。

附1 新建配置

打开浏览器,选择“组件”–“Test”–“配置”,展开,按住“Ctrl”键,用鼠标拖动“Release”到配置下,得到一个新配置。
在这里插入图片描述
重命名其为“Debug”,设置检测模式为“动画”(“设置”–“监测模式”)。
在这里插入图片描述

附2 多配置操作

我们现在有两种配置,需要选择一种使用,有两种方法:

  • 在菜单栏选择
    在这里插入图片描述

  • 在相应配置处右键,选择“设置为活动配置”
    在这里插入图片描述

附3 开始动画

  • 点击“转至步骤”按钮,直至出现“Ex而出table is Idle”。
    在这里插入图片描述
  • 此时在浏览器–“包”–“Default”–“类”–“Display”下出现“instance”–“Display[0]”,打开其特征,可以看到count以及被初始化为10。
    在这里插入图片描述
  • 右键“Display[0]”,选择打开实例状态图,可以看到高亮的状态
    在这里插入图片描述
    在这里插入图片描述
  • 重复点击“转为闲置”或点击“执行”直到“Display[0]”被销毁。
    在这里插入图片描述
  • 退出执行

附4 析构函数

添加析构函数(与添加构造函数一样,详细步骤见【Rhapsody学习笔记】1:Hello World),实现为:print("Destroyed");
在这里插入图片描述

附5 序列图

浏览器中新增时序图。我们将用它捕获模型执行时发生的情况。
在这里插入图片描述

附6 添加实例

拖拽Display类到时序图中,并添加系统边界。
在这里插入图片描述

附7 绘制时序图

在这里插入图片描述

附8 开始动画

如果存在一个时序图,Rhapsody会基于此创建一个动画时序图。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值