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