用LabVIEW实现宾果游戏.doc

用LabVIEW实现宾果游戏.doc

ID:56305646

大小:146.00 KB

页数:3页

时间:2020-06-22

用LabVIEW实现宾果游戏.doc_第1页
用LabVIEW实现宾果游戏.doc_第2页
用LabVIEW实现宾果游戏.doc_第3页
资源描述:

《用LabVIEW实现宾果游戏.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用LabVIEW实现宾果游戏苗正钰复旦大学物理系08300190014指导老师:俞熹摘要:作者利用LabVIEW实现了宾果游戏(猜数字游戏),并由此提出初学LabVIEW的一些实用技巧和编程思路,有助于更全面地理解LabVIEW和更好地将LabVIEW与现实生活中的物理实验相联系。关键词:LabVIEW;宾果游戏;模块化;逻辑结构引言LabVIEW是实验室虚拟仪器集成环境(LaboratoryVirtualInstrumentEngineeringWorkbench)的简称,是美国国家仪器公司(NATIONALINSTRUMENTS,

2、简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。作为一种图形化编程语言,LabVIEW又被称为G语言。其编写的程序则称为虚拟仪器VI(VirtualInstrument),以.VI后缀。大部分C语言能实现的功能它都能实现,不能实现的也可以用程序内接口转给C程序。但是区别于C语言,LabVIEW基本上不写程序代码,取而代之的是类似于电路图和流程图的程序框图。目前,LabVIEW被广泛应用于工业界、学术界和研究实验室,被公认为是标准的数据采集和仪器控制系统。借助于A/D(Analog/Digital

3、)采集卡,把电压转换成数字信号输入到电脑中,即可用Labview将此信号转换成实验者可见的图像与文字,这是它之所以成为实验室常见软件的最大原因。此外,流程图化的编程环境以及便于观察执行进度的高亮显示功能使得LabVIEW的编程变得十分直观,便于开发者和用户的理解。对于初学者,在LabVIEW提供的图形化编程环境里,理清所要编的程序的逻辑结构,并将各部分模块化(即设计子VI),有助于更好的理解LabVIEW,为进一步将LabVIEW应用于实际科研打下基础。程序介绍和设计思路本实验所要实现的宾果游戏需由系统生成一个随机的三位数(以下称之为

4、“答案”),且其各个位上的三个数两两不同。用户所要做的,就是把这个三位数“猜”出来。用户每输入一次猜测值(以下称之为“猜测”),系统就要将其与答案进行一次比较——两者有y个相同数字但其位置不对应的,反馈给用户的信息包含“yB”;有x个数字和位置都正确的,反馈信息包含“xA”。总的反馈形式为xAyB。用户结合反馈内容,通过逻辑判断,要在一定次数以内找到答案。由以上各点要求,可以将程序的整个进程缩略为如右图所示的流程。但若将图中所有内容放在单个VI内实现会导致原本直观的程序框图变得冗长臃肿,不便于理解、编译和纠错(对于大多数程序都是如此)

5、,故在此将程序“模块化”,亦即将整个程序分成若干个子VI,再用一个主VI将各子VI联系起来从而整体实现宾果游戏。通过分析程序的流程图,易将整个程序分为以下四个主要模块——“答案生成”、“猜测读入”、“数据处理”和“结果反馈”。对于“答案生成”模块,程序要生成一个各个位上数字两两不同的三位数。由于涉及判断各数字是否相同,比较简单的实现方法之一是多次用随机数功能经简单的数学处理得到一位整数,然后依次赋值给答案的百位、十位、个位(分别记为a1、a2、a3),并在产生后两位的过程中判断是否与已经生成的数重复。将判断语句与条件结构结合即可只输出

6、符合条件的答案。对于“猜测读入”模块,因考虑到要在之后的“数据处理”模块中便于用枚举法比较猜测和答案,故在本模块中并不仅仅读取数据,还要将猜测拆分为百位、十位、个位三个数(分别记为r1、r2、r3)。将猜测除以100并向下取整即得r1;将猜测减去r1的100倍,再除以10并向下取整即得r2;同理易得r3。但由于这种方法中每一步的结果要为之后的步骤所引用,故必须用平铺式顺序结构来限定执行顺序。对于“数据处理”模块,注意到a1、a2和a3一定不相等,为了使程序计算次数尽可能减少,采用枚举判断与条件结构相结合的方式——创建一个局部变量r0,

7、依次给其赋值r1、r2、r3,每次执行以下步骤:将r0与a1比较是否相等;仅当条件为假时将r0与a2比较是否相等;仅当条件为假时将r0与a3比较是否相等;条件为假时给r0赋下一个值直至结束。在此过程中,任何一步条件为真则直接进行判断数的位置是否相同,条件为真时x值增一,条件为假时y值增一,然后给r0赋下一个值直至结束。此外,为了让用户有多次猜测机会,在此模块的起始部分要给x和y赋值为零。对于“结果反馈”模块,反馈给用户的信息应至少包括已猜测值的列表(记作History)、对应的“xAyB”(记作Feedback)、当前游戏状态(记作S

8、tatus,用于反映是否已找到答案)。对于Status,可直接判断x是否等于三,再与条件结构相结合给出结果。至于History和Feedback,除了可以用表格来显示外,还有一种更为简单的显示方式(尽管不如表格那么美观)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。