一个自动将状态机生成代码的软件
2013-10-16 18:35
369 查看
如果你是一个程序员,对状态机应该有一定的了解,甚至会经常使用。
使用状态机的时候,一般都是自己设计程序去实现状态机,但,当要维护代码时,就会显得不方便,特别是比较复杂的时候。
我幻想着有一个软件,能在图形界面上设计状态图,然后自动生成C\C++代码。生成的代码实现了状态机本身,和状态转换的逻辑关系,程序员与生成的代码之间的接口就是:定义动作、向状态机提交事件。很简单。没错,低耦合高内聚就是代码努力的方向。我们都不想全局变量满天飞。。。
经过我一段时间的努力,终于把这个软件做出来了,取名为“HEART-BLUE”。以下就是界面:
这是一个很简单的三个状态之间的转换。输入事件evGo,驱动状态机发生跳转,于是会执行相应的动作AcEntryA,AcEntryB,AcEntryC。程序输出:
还有复杂一点的状态机。一个电子小时钟,用2个按键,实现调节日期,时间和计时的功能。
用VC2005实现:
时钟VC2005工程资源地址:
http://download.csdn.net/detail/my_jeff/6412633
HEART-BLUE资源地址:
http://download.csdn.net/detail/my_jeff/6408985 ……
状态机生成的3个C++代码文件(simpleABC):
在main函数中实现和调用:
使用状态机的时候,一般都是自己设计程序去实现状态机,但,当要维护代码时,就会显得不方便,特别是比较复杂的时候。
我幻想着有一个软件,能在图形界面上设计状态图,然后自动生成C\C++代码。生成的代码实现了状态机本身,和状态转换的逻辑关系,程序员与生成的代码之间的接口就是:定义动作、向状态机提交事件。很简单。没错,低耦合高内聚就是代码努力的方向。我们都不想全局变量满天飞。。。
经过我一段时间的努力,终于把这个软件做出来了,取名为“HEART-BLUE”。以下就是界面:
这是一个很简单的三个状态之间的转换。输入事件evGo,驱动状态机发生跳转,于是会执行相应的动作AcEntryA,AcEntryB,AcEntryC。程序输出:
还有复杂一点的状态机。一个电子小时钟,用2个按键,实现调节日期,时间和计时的功能。
用VC2005实现:
时钟VC2005工程资源地址:
http://download.csdn.net/detail/my_jeff/6412633
HEART-BLUE资源地址:
http://download.csdn.net/detail/my_jeff/6408985 ……
状态机生成的3个C++代码文件(simpleABC):
在main函数中实现和调用:
相关文章推荐
- 安装doxygen(一个自动文档生成工具)+Graphviz图形可视化软件
- 根据一个大图片自动生成相应小图片的代码
- 软件敏捷开发平台1.0(基于框架的代码全自动生成)
- 分享一个 能自动生成app图标的代码
- myEclipse7.5中安装 javascript,extjs的代码自动提示spket插件和extjs desiner可视化代码生成工具,extjs的一个很好的学习视频资源地址
- 一款自动生成代码的软件 - Code Machine
- NSG2-一个很好用的ns2的tcl脚本自动生成软件
- 微信小程序自动切片生成布局软件问世!不用写前端代码
- 一个VS.net自动生成代码引发的问题
- STM32代码自动生成工具,三步搞定一个智能硬件APP开发
- 网站推荐的代码自动生成软件实际使用感触
- 去掉asp.net自动生成的垃圾代码的一个类,
- 一个自动生成用ADO调用SQL SERVER的存储过程VB代码的ADDIN
- 自己写的一个代码自动生成工具_java版_源码下载
- 最近设计了一个生成asp代码的程序,同时也可以作为数据库管理查询的软件,有兴趣的朋友可以去下载!
- 如果公司里有上百个表要做触发器,如果手动写代码的话。很累,所以今天写了一个小程序,自动生成mysql的触发代码。
- mybatis-generator-gui--一个mybatis代码自动生成界面工具
- 一个自动生成验证码的代码
- 软工第一个程序:像二柱子那样,花二十分钟写一个能自动生成小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。
- 最近设计了一个生成asp代码的程序,同时也可以作为数据库管理查询的软件,发两张图,等完全做好了,给大家共享!