admin 管理员组

文章数量: 887021


2024年2月19日发(作者:bean是干什么的)

虚拟仪器实验--简易计算器设计

一、实验目的

1 .熟悉LabVIEW的编程环境,了解其特点。

2 .学会用LabVIEW实现简单的程序设计,了解图形化编程的方法和步骤。

3 .掌握数据对象类型、数组、簇的概念和其他基本函数,以及它们之间如何进行相互转化。

4 .掌握LabVIEW中一些函数和结构的用法。

二、实验要求

编写标准计算器,实现基本的加、减、乘、除等功能,能进行简单的计算,完成源程序的编写和功能测试。

三、实验设备

安装LabVIEW的计算机。

四、实验内容

4.1

计算器功能介绍

1.

可以实现加、减、乘、除、求倒、开根、正弦等运算。

2.

可以实现连续运算。

3.

对错误输入可以借助Backspace键进行删除;运算完成后可以借助C键释放内存。

4.

对误操作进行屏蔽,如在一个数中只可能输入一个小数点。

5.

运算结果可以精确到小数点后第6位。

4.2

程序变量设置及说明

进入主程序,首先判断输入是数字、运算符、等号还是撤销(或清除)。

1.

输入为数字。将输入数字转换为字符并连接到原数据后显示组合后的字符串,保存该字符串。

2.

输入为运算符。判断运算符的类型,当运算符为“+”、“-”、“*”、“/”时,调用上一运算符,并保存此次输入的运算符,同时显示运算结果并保存相应的结果数据;当运算符为“/x”、“sqrt”、“sin”时,直接对此时输入的数据进行相应的倒数、开方、正弦运算。

3.

输入为等号。执行之前保存的运算符,显示运算结果,同时结束该运算,返回初始状态。

4.

输入为Backspace或C键。Backspace键可以删除前一输入数据或运算符;C键可以清除数据并释放内存。

简易计算器程序设计框图见图1。

图1程序设计框图

4.2.1主要程序编写及说明:

1 .输入0处理显示程序模块

判断Display是否是0,如果是则显示“0”,如果不是则用连接字符串函数输出显示,并相应的赋给inputl或input2。

2 .小数点处理显示程序模块

1

利用全局变量(布尔型)zeroflag作为小数点指示标志,默认为F。当有小数点输入时,将zeroflag置为T,当再次有小数点键入时不执行操作,由此可以避免小数点的重复错误输入。

图2小数点处理显示程序

3 .四则运算程序模块

对于连续运算,当运算符按下时,先根据输入数来判断当前输入的是numl还是num2,当是numl时,表明现在只是输入了第一个被操作数,还没有输入任何运算符号,所以不作任何处理;当输入是num2时表明前面有运算符号输入此时进行相应的加减乘除等运算,每次运算结束将结果赋给numl。

7二吓V

re启fi的

图3四则运算程序

4 .等号运算程序模块

当有等号按下时利用一维数组搜索函数Search1DAarry返回索引值“18”,进行运算结果显示;当有加减乘除运算符号按下时,返回相应的索引值,判断input2是否为空,若为空的话则表明display中显示的数是运算结果或者是输入的1

被操作数,此时不作运算,将输入数置1,操作符号赋值;当num2不为空表示display中显示的是操作数,已有一个运算符号被按下,但没有按“=”号,所以不进行运算,此时先执行前一步运算,然后再给操作符号赋新值。

图4等号运算程序

5 .开方、倒数及三角函数运算程序模块

这两个程序模块都是对当前输入数进行的处理,直接对display中的数进行运算,然后通过判断input2是否为空,将结果赋给inputl或input2显示便可。

6 .Backspace键运算程序模块

利用字符串长度(stringlenghth)函数求出当前输入数的长度,然后减去一位,将得到的子字符串赋给inputl或input2显示。

1

display

display

numlflag

numl

图5Backspace运算程序

7.C运算程序模块

C键就是“Clear",程序初始化,把空字符串赋给numl和num2,各判断标

志置位。

zeiFQflag

numl

nunriiltflag

mLmri2

曲rtflzg

signflag

display

图6C运算程序

8.运算结果小数点后零的处理子模块

首先将显示的数字转换成F-格式字符串,将字符串取反,用SearchSplitstring取小数点前面的字符,然后通过While循环判断小数点后无效的0的个数,最后

通过stringsubset得到去零后的数。

五、功能测试

在LabVIEW上编写计算器程序,可以实现以下功能。

1.显示功能测试

能正确显示数字,如输入23.9,计算器显示正常。

1

Backspaceimm

图7显示数字

ace、C功能测试

测试Backspace.C键功能。Backspace键可实现撤销功能,C键可实现程序复位。

3 .基本功能测试

测试"+”、“一”、“X”、“/”等运算功能,能正确显示结果。

4 .小数点处理程序测试

测试按下多个小数点时只显示第一个小数点,其他小数点不会被显示。

5 .Sqrt、1/x与sin功能测试

测试“sqrt”、“1/x”、“sin”功能。当负数求sqrt时或0求1/x时,显示“输入错误”,其他值时能正确显示结果。测试sin函数功能时,输入弧度值,显示结果正确。

6 .连续运算测试

通过测试,计算器可以实现连续运算。如按下10+10+10时,可以正确显示结果30。

7 .去零程序测试

通过测试,功能正常,未显示整数和小数点后多余的零。

8 .其他功能测试

开方与求倒均是针对屏幕上的内容进行;对于反复按下运算符,计算器将对屏幕上的内容反复进行计算。

计算器前面板如下图所示:

1

[HSEOEIE±]

EZE)回口回

pziaaB

Bm.k与p一比||-匚_||-]

图8计算器前面板

六、总结

通过实验课的学习,熟悉了LabVIEW编程环境,掌握了数据对象的类型与操作、数组和簇的概念与使用,以及LabVIEW中一些数学函数及结构的用法,切实体会到基于LabVIEW平台编程方法的优点,图形化的编程方式更是简单易学,易于上手。

通过LabVIEW平台可以进行简单的程序设计,如跑马灯的实现。此次设计了简易计算器,由于时间紧迫,对LabVIEW模块功能的理解还不够深刻,掌握的还不够熟练,设计出的计算器功能还有很多不足。如:程序运行时只能对首次输入的数据进行运算,否则运算结果会不正确;进行混合运算时没有优先级;编写的程序有些繁琐等。

1


本文标签: 运算 输入 显示