VC++实现标准型计算器步骤及源码
最近一段时间一直在做这个东西,刚刚拿到题目的时候认为这是一个简单的程序,可是随着编写程序的深入,发现这也不是一个很简单的程序,主要是需要考虑到一些连续加减以及混合运算的情况。
首先介绍一下这个小计算器的功能。其实也没有什么新的功能啦,只是有一些简单的+、-、*、/运算,能够完成混合运算,是一个标准型的计算器。
建立文件
(1)建立应用程序外壳
创建一个新的AppWizard项目,命名为shiyan,选择Dialog based;其他都选用默认属性,单击Finish完成生成应用程序的步骤。
进入对话框界面以后,按下图所示布置显示框和功能按钮,这个小计算器一共需要10个数字键,9个功能键两个文本框。(下面的显示窗口是在测试程序时用的跟踪窗口,一般的计算器可以删去)。
(2)设置窗口属性
将上面的显示框属性设置成为CString型,下面的跟踪显示框设置成为Double型,并且绑定两个变量给他们。分别是m_text(显示框),m_show(跟踪显示框)ID改成IDC_text,IDC_show。数字键的ID号更改成为IDC_OnX,Caption改为相应的数字。
(3)设置公有变量
这个程序中我用的公共变量比较得多,主要是因为我是新手吗!!下面是所有公有变量的列表:
-
int numb;
-
int h; //.计数
-
double temp4;
-
double temp1;
-
double temp3;
-
double temp2;
-
CString ss;
-
char sign;
-
int a; //减法计数
-
int b; //乘法计数
-
int c; //除法计数
-
int d; //加法计数
要给公有变量赋值需要在 OnInitDialog()函数中赋值,而这个函数就是在运行对话框时首先要运行的初始化函数,现在给需要赋初值的公有变量赋初值。
-
sign= 0;
-
CString ss= "0";
-
temp4= 0;
-
temp2= 0;
-
a=b=c=d= 0;
-
h= 0;
-
numb= 0;
(3)编写按钮程序
数字键
双击你所要编写的数字键进入相应的按键程序编写,例如1建,双击后编写程序:
-
void CShiyanDlg::OnOn1()
-
{
-
UpdateData( 1);//上传数据开启
-
if(numb==1)//判断是否已经按下=号建
-
{
-
ss= "";
-
m_text;
-
numb= 0;
-
}
-
int a;
-
a=ss.GetLength(); //截取当前显示框字符串长度
-
ss.Insert(a, "1");//插入字符
-
m_text=ss;
-
UpdateData( 0);//上传数据关闭
-
// TODO: Add your control notification handler code here
-
}
“+”号键程序:
-
void CShiyanDlg::Onadd()
-
{
-
h= 0;
-
a=b=c= 0;
-
d++;
-
UpdateData( 1);
-
temp1=atof(ss);
-
if((sign=='-')||(sign=='*')||(sign=='/'))
-
{
-
switch(sign)//change
-
{
-
case'-':
-
{
-
temp1=atof(ss);
-
temp4=temp4-temp1;
-