Labview-2 计算器

  Labview 实现简单的计算器,以下程序使用了较多的对‘属性节点->值’,的操作,是由于笔者之前使用该方式较少,想要强化记忆。而对于同一个变量值的操作有:全局变量、局部变量、引用,属性节点->值。这几种方式的优劣以及使用情景以后再做讨论。

  程序前面板主要控件如以下截图,其中操作符、输入缓存,输入值1、输入值2用来存储输入值。

                                

  程序主要使用了事件结构与while循环。这里能够将前面板的输入分为几类:数字输入(包括小数点)、操作符输入、清空(C)、等于(=)、历史记录。其中数字输入事件如图二所示,这里不仅要对输入值有响应,还要获取输入值,这里通过事件结构的 控件引用->创建->布尔类的属性->布尔文本->文本  来获取输入按钮的值。也可通过标签文本来获取输入值,但是使用这种方式需要使前面板的控件显示标签,不利于美观。

  分析计算过程:输入值1 【+、-、*、/】输入值2 = , 由于输入值位数不定,因此需要通过字符串连接将输入的值连接并存入 输入缓存中,而输入缓存的值在事件结构接收到操作符后传入输入值1,操作符事件如图三所示,在该事件分支中进行 输入缓存->输入值1的操作,并清空输入缓存,并将使用 操作符 记录前面板输入的操作符,输入值2 的值在等于(=)事件分支中进行赋值,如图四所示。等于(=)事件分支中对输入的字符串进行操作,将输入值1,输入值2 分别通过 分数/指数字符串至数字转换 函数转换为float类型,加、减、乘、除操作通过操作符变量与条件结构进行选择。

  输入及计算结果的显示,每次输入值都要进行记录,因此在每一个事件中都要通过字符串连接将输入值连接到显示字符串控件中。每次新的计算都会对显示进行一次清空操作,并将上一次的计算存入历史记录中(如图四所示),而新的计算过程通过判断当前显示中是否包含 ‘=’ 来判断(如图二所示)。历史记录的显示与否通过历史记录按钮对应的事件进行控制,具体操作是在历史记录事件中控制历史记录字符串的属性节点->可见。清空操作事件对全部显示控件进行清空(传入空字符)。

  当前该程序仍存在很大的缺陷,如小数点的错误输入的判断,以及只能够完成两个数据的运算。可以通过将 输入值 与 操作符 字符串 更换为 字符串数组 来实现 任意几个数据的运算操作

图二

图三

图四

 github 计算器源代码:https://github.com/JYNPB/Labview.git

猜你喜欢

转载自www.cnblogs.com/JYNNO1/p/10417002.html