成绩评定表
课程设计任务书
目录
1目的及基本要求 (1)
2 连连看设计原理 (2)
3连连看设计和仿真 (2)
3.1 主程序设计 (2)
3.2 子程序详细设计 (3)
3.3 设计中遇到的问题 (10)
4 结果及性能分析 (11)
4.1 运行结果 (11)
4.2 性能分析 (11)
参考文献 (12)
1目的及基本要求
虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。
灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。
这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。
只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。
使用这种语言编程时,基本上不用写程序代码,取而代之的是程序框图。
虚拟仪器(VI) 的概念虚拟仪器[1](virtual instrument)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
上面的框图反映了常见的虚拟仪器方案。
尽可能采用了通用的硬件,各种仪器的差异主要是软件。
同时可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现电子时钟的设计和仿真。
要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。
2 连连看设计原理
连连看是一种休闲游戏,当两个相同的图,可以使用三条线段连接,并且线段通过区域都为空(即,没有图)
3连连看设计和仿真
首先熟悉虚拟仪器的设计思想,而后便可着手进行连连看的相关设计,控件架构以及函数设置。
具体设计步骤如下:
3.1 主程序设计
1.设计前面板
前面板模拟连连看的前面板,用于连连看的使用。
由于虚拟面板直接面向用户,是连连看的核心。
图 1 前面板图
2.程序框图
图2 程序面板图3.2 子程序详细设计
(1)连连看相同图消除判断
(a)Z型双节点连接是否成功
图 3 相同图消除程序框图
判断两点是否可以z型双折点相连。
条件:在以两点为端点的矩形内存在全为零的行或列。
算法:利用单折点相连算法,以其中一个为基准,在给定的矩形内逐个按行(列)找零点,并判断此零点能否与第二单折点连接,若能,则返回成功,否则继续寻找,直到遇到非零点,返回失败标志。
(b)单折点连接成功是否成功
判断第一点和第二点的位置关系决定线路输出的排列顺序。
判断行1列2元素是否为零:若为零,分别替换宠物位置里第一和第二行元素并且判断能否直线相连。
若均可以直线相连,输出线路为行和列的叠加,但是有前后关系。
(c)直线连接是否成功
图 4 直线连接部分程序框图
判断两个相同的图直线连接是否成功。
(d)判断连线是否成功
图 5 连线程序框图
判断所连相同的图连线是否成功。
(e)点击点是否为空
图 6 点击点程序框图
判断此次点击的点位置—通过比较点击前后两个数组元素,不同的为新点击位置,判断宠物数组中点击位置是否为空白,若为空白,则本次点击无效(后续
程序完成),否则,本次点击有效。
(f)显示可以连线成功的宠物
图 7 显示连线成功程序框图点击后连线成功的宠物可以显示出来。
(g)获取点击位置
图 8获取点击位置程序框图获取两次点击数组元素的位置。
(2)宠物的移动
图 9 宠物移动程序框图列向上移动,则先移动处于下方的元素。
(3)调整二维数组的顺序
图 10 调整二维数组程序框图
按行调整。
(4)关卡宠物处理
图 11 关卡宠物处理程序框图
初始关卡——不变化;第1关——向下;第2关——向左;第3关——上下分离;第4关——左右分离;第5关——上下集中;第6关——左右集中;第7关——上左下右;第8关——左下右上;第9关——向外扩散;第10关——向内集中。
(5)随机生成宠物
图12 随机生成宠物程序框图
1、生成两个整数序列,一个(n1)为最终生成宠物数组的目标,另一个(n2)保存位置信息。
2、对n2数组随机取一个在其长度范围内的整数a,取出对应数组中的内容num后将此元素删除,表示以后不再选择此位。
3、随机生成一个宠物代号b,并将n1中第num位替换为b,一次循环中实现两次2,3步的操作,目的是始终产生的宠物成对出现。
4、当n2数组长度小于或等于0时,循环结束,本算法循环次数为行数×列数/2。
(6) 高分排行榜
图13 高分排行榜程序框图
游戏结束后,根据得分的高低进行排名,名次,排名和姓名均可输入。
(7) 绘制路径
图14 绘制路径程序框图
宠物路径行列互换。
(8) 奖惩措施
图15 奖惩措施程序框图
可是原来的生命,提示,得分,和时间改变。
能形成新的生命,提示,得分和时间。
这一系列可以根据个人喜好调节。
(9) 提示可以连接成功的宠物
图16 提示连接成功程序框图
当点击提示按钮的时候,会出现两个可消的宠物。
(10) 重新排列宠物
图17 重新排列宠物程序框图
3.3 设计中遇到的问题
由于是第一次进行LabVIEW的课程设计,缺乏相关的设计经验,因此一开始的时候确实无从下手。
但是经过老师和同学的指点,包括自己独立思考与查阅相关资料,我渐渐对这个软件熟悉了,并且觉得图形化编程的好处实在是非常多的。
设计期间,我确实遇到了许多的问题。
由于对编程软件的不熟悉,导致在找相关控件时花费了许多时间,而且常常找到的是错误的控件,这直接造成程序运行失误。
这一点在熟悉软件之后,好了很多。
其次,在熟悉设计原理的时候,由于对相关逻辑关系以及函数关系的不太熟悉,也绕了不少弯子。
后期,在总体完成连连看的设计后,基本功能都得到了实现,但是一直显得不太美观。
连连看功能很简单,实现起来也很简单,但要做得美观、简洁却不那么容易。
比如让其显示更多生动的字体,在一个小窗口里实现更多的动画。
程序要实现丰富的内容及完美的界面主要还是要靠扎实的基础,掌握各控件的使用及各类型的模块间的转换。
本来把本次课程设计的界面显示做成各种字体的,但由于时间及能力的关系,没有做得更好。
这一点很遗憾,但愿有机会可以弥补。
总体来说,设计过程遇到的问题不少,但是收获也更多。
通过这次课程设计,真正体验到LABVIEW的强大功能。
4 结果及性能分析
4.1 运行结果
图18 运行结果框图
4.2 性能分析
连连看玩法
连连看是一种休闲游戏,当两个相同的图,可以使用三条线段连接,并且线段通过区域都为空(即,没有图)。
初始关卡——不变化;第1关——向下;第2关——向左;第3关——上下分离;第4关——左右分离;第5关——上下集中;第6关——左右集中;第7关——上左下右;第8关——左下右上;第9关——向外扩散;第10关——向内集中。
参考文献
[1] labview入门与提高.赵品编著.人民邮电出版社.2000.11
[2] labview 高级应用.赵品编著.人民邮电出版社.2000.11
[3] labview印刷电路板设计教程.肖玲妮编著.清华大学出版社2003.8
[4] labview完全自学手册.龙马工作室编著.人民邮电出版社2005.10.2
[5] 虚拟仪器设计基础教程.黄松岭,吴静著.清华大学出版社,2008
[6] AMTLAB和 LabVIEW仿真技术及应用实例.聂春燕,张猛,张万里著.清华大学出版社,2008
[7] 测试工程与LabVIEW应用.戴鹏飞,王胜开,王格芳,马欣著.电子工业出版社,2006。