根据Labview的虚拟仪器计算器设计.docx
《根据Labview的虚拟仪器计算器设计.docx》由会员分享,可在线阅读,更多相关《根据Labview的虚拟仪器计算器设计.docx(14页珍藏版)》请在冰豆网上搜索。
根据Labview的虚拟仪器计算器设计
研究生课程考核试卷
(适用于课程论文、提交报告)
科目:
虚拟仪器教师:
姓名:
学号:
专业:
类别:
学术型
上课时间:
考生成绩:
卷面成绩
平时成绩
课程综合成绩
阅卷评语:
阅卷教师(签名)
重庆大学研究生院制
摘要
通过对虚拟仪器课程的学习和撑握,本次实验设计了一个简易计算器,可以用来模拟真实计算器而进行一些简单的基本运算。
利用Labview软件平台编写计算器程序,可以实现“+、-、×、÷、平方、开方、x^y”这七种基本运算,并且可以对上面的七种基本操作连续运算,另外实现了对输入的错误数据进行清除的功能。
达到了本次实验的要求。
关键词:
Labview,七种基本运算,清除
基于Labview的简易计算器设计
1、引言
现代计算机技术和信息技术的迅猛发展,冲击着国民经济的各个领域,也引起了测量仪器和测试技术的巨大变革。
人们曾为测量仪器从模拟化、数字化到智能化的进步而欣喜,也为自动测试技术的日新月异的发展所鼓舞,当今虚拟仪器技术的出现又使得测量仪器进步入了高科技的殿堂。
虚拟仪器的起源可以追溯到20世纪70年代,“虚拟”的含义主要是强调软件在仪器中的作用,体现了虚拟仪器与主要通过硬件实现各种功能的传统仪器的不同。
由于虚拟仪器结构形式的多样性和适用领域的广泛性,目前对于虚拟仪器的概念还没有统一的定义。
美国国家仪器公司(NationalInstrunentsCorpotion,NI)认为,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通信及图形用户界面的软件组成的测控系统,是一种计算机操纵的模块化仪器系统。
使用虚拟仪器技术,工程师可以利用图形化开发软件方便、高效的创建完全自定义的解决方案,以满足灵活多变的需求趋势。
本次实验是基于LabVIEW软件平台而设计的一个简易计算器,所设计的计算器可以实现简单的基本四则运算、平方、开方、求倒和x^y任意次幂计算;还能够实现清零和对输入的错误数Backspace功能。
2、整体方案设计
根据标准计算器的运算规则,得到下面本次实验的整体程序框图。
图2.1总体框图
2.1、簇和前面板控件的说明
簇中有22个布尔型控件,簇中的符号说明如下表所示,由于本次实验中我们使用的是事件结构,配合属性节点可以读取布尔控件中的文本信息,所以可以不用对簇中的布尔控件编号。
事件结构包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序框图或分支在执行。
事件结构可等待直至事件发生,并执行相应条件分支,处理该事件。
右键单击结构边框,可添加新的分支并配置要处理的事件。
连线事件结构边框左上角的“超时”接线端,指定事件结构等待事件发生的时间,以毫秒为单位。
默认值为–1,即永不超时。
前面板除了簇中的22个布尔控件外,还包含第一个输入数的存储和显示的数值控件num1,以及第二个输入数的存储和显示的数值控件num2和一个存储操作运算的字符串控件operator,以及显示运算结果的字符串控件Show,Show充当计算器的显示器。
还包含一个停止按钮。
表1簇中布尔控件的说明
簇
0—9
.
sqrt
1/x
x^y
+、-、×、÷
+/-
=
C
backspace
表示输入的0-9数值
小数点
开方
倒数
x的y次幂
四则运算
正负号
等号
清除
退格
2.2、程序流程图
图2.2算法流程图
3、具体实现过程
3.1、前面板设计
为了使得所设计的计算器的外观比较好看,先在前面板上放置一个修饰控件,然后在修饰框里建立一个簇
,在簇中放置22个布尔控件,其中包括0--9十个数字键,1个小数点键,4个“+、-、×、÷”运算键,1个等号键,1个开方,1个符号转换,1个倒数,1个x的y次幂,1个清零,1个退格,并对每一个布尔控件修改一个适合的名称,放置两个数值型的控件用于存储两个计算的数据存储和显示,放置两个字符串的控件,Firstrun所在的字符串控件表示运算符operator的存储和显示控件,上面的最大的字符串大框用于显示计算的结果,最终放置完所有控件并排版后得到如下图3.1所示的前面:
图3.1前面板布局
3.2、初始化和键的感应
在后面板中先放置一个层叠式顺序结构,先将前面板中的各个显示框初始化,由于在本程序中用到了部分全局变量,也需要初始化,总的初始化如下图3.2所示:
图3.2各显示控件初始化
然后在层叠式顺序结构中实施在后面添加帧操作。
在1帧里添加while循环。
将簇放置在while循环里面,在循环里面放置一个
,将簇中元素按产生的顺序组成一个一维数组,这样就实现了每个键与数字(0--21)之间的对应。
每次按下一个键时,通过
查找出对应的键并把结果连接到一个事件结构,通过事件结构的控件引用结合属性节点便可得到前面板中控件上面显示的字符,至此就完成了对键的感应过程,如下图3.3所示。
图3.3键的感应
3.2.1、数字0-9的输入
由于前面板中的0-9数字键其属性设置中的关时文本分别对应0-9,通过控件引用,然后选择属性节点,布尔文本中的文本,然后用
将感应到的布尔文本字符串转化为数值,然后将数字存储在全局变量tdata中,将tdata和之前的数据连接便可得到需要计算的每一个数据,如图3.4所示。
图3.4数字0-9的感应
3.3、输入的第一个数
3.3.1、多零问题
当第一次输入0时,与输入数字1-9的情况相同,现在就零输入时的多零问题进行设计。
虽然以多个零开头不影响输出的结果,但考虑到显示形式的正确性,只在小数点前显示一个零。
当运行程序时按多次数字0,通过十进制数字符串至数字转换
,将多个0的输入变成一个0,如图3.5所示。
图3.5前面有多零问题
3.3.2、小数点问题
一个输入数中不可能出现两个及其以上的小数点,所以需要对输入的数据进行设计。
由于单独的按小数点的时候并不能进入主程序中运行,只有当按数字键0-9的时候,全局变量
才为真,为真的时候才进入主程序中运行,由于Show存储的字符串最末尾就带有小数点,所以可以直接将原来的字符串数据和新输入的数字连接成新的字符串。
如下图3.6所示:
图3.6多输入小数点的这问题
对第二个数的输入判断是不是多0和多小数点的问题也是一样的,因此不再赘述。
3.4、四则运算和x^y
点击四则运算的时候,operator先获得操作数的类型(+、-、×、÷),由于计算x^y的时候也将power的值赋给operator,所以按等号的时候对这五种运算进行计算。
如图3.7和3.8所示:
图3.7获得四则运算的类型
图3.8四则运算和x^y的计算
3.5、开方计算
开方的计算可以不用按等号便可直接进行计算和显示。
图3.9开方计算
3.6、倒数计算
和开方计算一样,输入一个数便可计算出其倒数值。
图3.10倒数的计算
3.7、输入正负数
界面上有“+/-”这个按钮,能够对负数进行计算。
图3.11正负数运算
3.8、去掉小数点后面0的功能
由于经过前面的运算,数据后面保持6位小数,如12.000000这种情况。
为了和一般所见到的计算器的显示格式一样,即将其显示为12。
使用格式化写入字符串,其格式字符串设置为%#f,%表示格式说明符的开始,#使用格式化函数时,该修饰符移除尾部的无效零,如数值无小数部分,该修饰符会将有效数字精度之外的数值强制为零,f表示带小数格式的浮点数。
去掉小数点的程序如图3.12所示:
图3.12去掉末尾多余的0
3.9、清除功能(Clear)
清除功能能使各个显示控件和全局变量恢复到初始化的状态,保证后续计算能够正确地进行,类似于初始化的功能。
如图3.13所示。
图3.13清除功能
3.10、退格功能
有时候输入的数据并不是我们需要的或者其它的原因需要修改输入的数值,这时候用一个退格功能的按钮能带来很大的方便。
主要是用到了字符串长度
和截取字符串长度
这两个。
如图3.14所示。
图3.14退格功能
4、总结
本程序框图完成对计算器的两个输入数据的加、减、乘、除、平方、开方、倒数和x^y次幂这八种基本运算。
而且对加、减、乘、除四种基本运算实现连续运算的功能,能够对输入的数据进行退格,并且对显示的数据去掉末尾多余的0。
还对除法等运算进行除数的判定,当除数为0时候,显示“除数不为0!
”或者“被开方数不为负数!
”。
通过本次实验对计算器的设计,增加了我对虚拟仪器设计软件系统的认识,也很感谢文老师课堂上认真的讲解,使得我们同学少走了很多弯路。
参考文献
[1]陈锡辉.Labview8.20程序设计从入门到精通[M].北京:
清华大学出版社,2007.
附录A
总程序框图:
1、初始化程序
2、总程序
3、x^y的幂程序