使用CVI实现计算器模型的代码## 标题
程序员小白第一篇CSDN就这个亚子啦,使用CVI实现一个计算器模型,代码量不大也有备注。大家看懂是没有问题的,运行也是没有问题的,可以实现连续运算,提供给大家,不足之处请在评论区中告诉我吧,我会再加以改进的。(憋了半小时就憋出这点文字)
#include <formatio.h>
#include <ansi_c.h>
#include <cvirte.h>
#include <userint.h>
#include “Calculator.h”
static int panelHandle, ctrlarray;
static char str1[32]; // 参数 1 的字符串
static char str2[32]; // 参数 2 的字符串
static double strValue1; // 参数 1 的值
static double strValue2; // 参数 2 的值
static int flag; // 加减乘除的标志
static int mflag;//运算状态 0不可运算 1准备开始运算 2结束运算
/*************************************
显示函数
**************************************/
void SetValue (void)
{
SetCtrlVal(panelHandle, PANEL_SCREEN, “”);
SetCtrlVal(panelHandle, PANEL_SCREEN, str1);
}
int main (int argc, char argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; / out of memory */
if ((panelHandle = LoadPanel (0, “Calculator.uir”, PANEL)) < 0)
return -1;
ctrlarray = GetCtrlArrayFromResourceID (panelHandle, OPER_ARRAY);
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
/*************************************
面板退出
**************************************/
int CVICALLBACK PanelCB (int panel, int event, void *callbackData,
int eventData1, int eventData2)
{
switch (event)
{
case EVENT_GOT_FOCUS:
break;
case EVENT_LOST_FOCUS:
break;
case EVENT_CLOSE:
QuitUserInterface (0);
break;
}
return 0;
}
/*************************************
清除
**************************************/
int CVICALLBACK ClearButtonCB (int panel, int control, int event,
void *callbackData, int ev