4.4操作类型
当按下各种键时,存储对应的数字序号到type;运算操作类型的确定以按下“=”号键时进行。操作类型默认为“空”。在此操作类型结构中同时执行对change的状态转换。在上述case中再套用一个case结构,用于实现对“+、-、*、/”四种运算的连续运算,(图4-5):
图4-5 操作类型程序图
这里要特别注意的是:在键入第二个数据时,运算结果要赋给num3,在num1和 num3之间进行最终的运算。这样做是为了在一次运算结束后可以进行下次运算,实现其连续性。
4.5 常用键的设置
4.5.1小数点(.)
小数点键的输入与数据的输入类似,要看change3的状态。另外需考虑到:每个数只能有一个小数点。输入(图4-6):
图4-6 小数点键入程序
4.5.2等号键
当两次数据与关系符号都被确定后,按下“=”键,结果就被现实出来。
为了防止结果存在多零现象,需设置状态。等号键也需要分为四种情况,分别是加、减、乘、除:
图4-7 加后键的等式设置
其中加减乘三种键的等式设置除符号外都是相同的,除式的等式设置如图4-8:
图4-8: 除后键的等式设置
4.5.3清零键C
清零就是对输入的数据或者结果进行赋空字符,显示框中显示0。change、change1复位F状态,type1、type2赋0。具体情况如图4-9:
图4-9 清零键C的设置
4.5.4退出键CE
在17键的结构中把空字给符赋值显示框,终止程序。即以不显示任何字符退出程序图4-10:
图4-10 退出程序
其中的顺序结构为去末尾零和去无关小数点的操作。
4.5.5开方键(sqrt)
图4-11 小数点后部分开方程序
图4-12 小数点前部分开方程序
4.5.6倒数键(1/x)
在19序号的条件结构中进行当前操作,能求出输入不为零的数的倒数。
图4-13
图4-14
4.5.7反号键(+/-)
在20序号的条件结构中进行当前操作,目的是取反,根据需求把正数变成负数,反之亦然。如图4-15:
图4-15
4.5.8 backspace键
在21序号的条件结构中进行当前操作以清除输入的错误键(如图4-16)。计算字符串的长度,然后把长度减1位后显示结果。
图4-16
4.6簇中的各元素在条件结构中代表的序号
表4-17
信号传感器执行机构 |
4.7去掉小数末尾的0的功能
图4-18 去掉小数后尾数为0的程序图
经过前面的运算,运算数据保持了6位数,很有可能会出现末尾小数为0的情况。利用while循环,检测result的最后一位是否是0,是0,则减去最后一位数再后赋值给本身;不是0,然后退出循环显示最后的数据,实现计算器去0的功能。
4.8框图结构
这样就基本上实现了计算器的基本功能,总的框图结构就出来了。(图4-19):
图4-19 该计算器的框图结构
4.9计算器的前面板结构
将字符串显示控件、布尔开关按钮、数值显示控件隐藏后,就得到了最后的计算器了。图4-20为简化后的计算器前面板:
图3-20 简化后的前面板
5.计算器的运行结果
计算器的加法运算,运算过程为5+1=6。具体操作过程:用鼠标点击数字键“5”,再点击常用键“+”号键,然后点击数字键“1”,最后点击“=”号键,运算结果就显示出来了,如图4-21:
.
图4-21 图4-22
计算器的减法运算,运算过程为9-5=4. 具体操作过程:用鼠标点击数字键“9”,再点击常用键“-”号键,然后点击数字键“5”,最后点击“=”号键,运算结果就显示出来了(图4-22)
图4-23 图4-24
图4-23是计算器的乘法运算,运算过程为3*5=15. 具体操作过程:用鼠标点击数字键“3”,再点击常用键“*”号键,然后点击数字键“5”,最后点击“=”号键,运算结果就显示出来了.
图4-24是计算器的除法运算,运算过程为8/4=2.具体操作过程:用鼠标点击数字键“8”,再点击常用键“/”号键,然后点击数字键“4”,最后点击“=”号键,运算结果就显示出来了.
图4-25是计算器的倒数运算,具体过程为: 用鼠标点击数字键“7”, 再点击常用键“1/x”键, 最后点击“=”号键,运算结果就显示出来了.
图4-25 图4-26
图4-26是计算器的开方运算,具体过程为: 用鼠标点击数字键“6”, 再点击常用键“sqrt”键, 最后点击“=”号键,运算结果就显示出来了.
6.总 结
当程序设计完成后要在前面板中将各个键准确的找出来实在是件令人头疼的
事,刚开始每个键都不能使用,过了一段时间之后才能出现一些数字了,然后我
就开始试每个键的作用,最后才将每个键都确定下来了。这些工作都完成后,整
个程序才可以像正常计算器一样工作。这让我非常高兴,因为这是我努力出来的
结果。
本次论文,让我对虚拟仪器开发平台LabVIEW了解更深入了。这次的设计让我学到了很多,为我今后的学习积累了一定的宝贵 经验,撰写论文也是对专业知识的一种学习,它使我运用已有的专业基础知识,把知识转化为能力设计出我需要的程序,培养了我的解决实际问题的能力。
通过这次课程设计我发现光有纯粹的理论知识,没有实践,是不能完成本次设计的,而只有实践没有理论知识的指导,也是不可取的,只有把理论付诸实践,并将理论与实践相结合,才能设计出一个满意的作品。理论结合实践既有助于完成理论知识的巩固,又有助于加强我们的动手能力和解决问题的能力
当然,本次课题研究也让我认识到了LabVIEW软件的局限性。那就是它对于硬件的依赖非常严重,没有硬件的支撑,LabVIEW很多作用都会无法得以体现。