// cacl.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include "Math.h" int fun; //fun是运算符如:+,-,*,/ int ForS; //指示此时输入的是
//第一个数还是第二个数
bool firx,secx; //指示此时是否在输入小数部分
//即是否按过了小数点
double first,second; //第一第二个数
double firstz,secondz; //第一第二个数的整数部分
double firstx,secondx; //第一第二个数的小数部分
int firxw,secxw; //第一第二个数的小数部分的位数
int firzorf,seczorf; //指示是否是负数
//既是否按过+/-键
bool EnterSec; //是否输入了第二个数;
double x;
double result; //结果
double mfir,msec; // 记住上次参加运算的第一二个数
bool sfmf,sfms,sfmfun; //指示是否此时还记的上次的数和运算符
int mfun; //记住上次的运算符
void C() //按C
{
x=0.0; //恢复默认值,下同
first=0.0;second=0.0;
firstz=0;firstx=0.0;
secondz=0;secondx=0.0;
firx=false;secx=false;
firxw=0;secxw=0;
firzorf=1;seczorf=1;
ForS=1;
mfir=0.0;msec=0.0;
mfun=0;
sfmf=false;sfms=false;sfmfun=false;
EnterSec=false;
} void D() //按D键
{
if(ForS==1) //如果此时在输入第一个数
{
if(firx==false) //如果此时在输入整数部分
{ if(firstz<10) //如果整数部分小于10
{
firstz=0; //改为0
firzorf=1; //置符号为正
}
else
{
int y1=(int)firstz;//y1为一与整数部分相等的数
y1/=10; //去掉个位数
firstz=y1;
}
}
else //如果在输入小数部分
{
if(firxw==1) //此时小数部分只有一位
{
firstx=0.0;firxw=0;firx=false;//小数部分清为0
}
else
{
int y2=(int)(firstx*pow(10,firxw)); //取一整数与小数点所有的数表示的整数相等,如123等于0.123的小数部分表示的数
y2/=10;firxw--; //去掉最后一位
firstx=y2*pow(10,(-1)*firxw);
}
}
first=firzorf*(firstz+firstx); //计算出第一个数
x=first;
//显示;
}
else if(ForS==2) //如果在输入第二个数,处理方法同第一个数
{
if(secx==false)
{
if(secondz<10)
{
secondz=0;
seczorf=1;
}
else
{
int y3=(int)secondz;
y3/=10;
secondz=y3;
}
}
else
{
if(secxw==1)
{
secondx=0.0;secxw=0;secx=false;
}
else
{
int y4=(int)(secondx*pow(10,secxw));
y4/=10;secxw--;
secondx=y4*pow(10,(-1)*secxw);
}
}
second=seczorf*(secondz+secondx);
x=second;
//显示;
} } void AddNum(int i) //输入数字是时的处理函数
{
if(ForS==1)
{
if(firx==false) //整数数部分
{
firstz*=10;firstz+=i;
}
else //小数部分
{
firxw++;firstx+=pow(10,(-1)*firxw)*i;
}
first=firzorf*(firstz+firstx);
// #include "stdafx.h"
#include "Math.h" int fun; //fun是运算符如:+,-,*,/ int ForS; //指示此时输入的是
//第一个数还是第二个数
bool firx,secx; //指示此时是否在输入小数部分
//即是否按过了小数点
double first,second; //第一第二个数
double firstz,secondz; //第一第二个数的整数部分
double firstx,secondx; //第一第二个数的小数部分
int firxw,secxw; //第一第二个数的小数部分的位数
int firzorf,seczorf; //指示是否是负数
//既是否按过+/-键
bool EnterSec; //是否输入了第二个数;
double x;
double result; //结果
double mfir,msec; // 记住上次参加运算的第一二个数
bool sfmf,sfms,sfmfun; //指示是否此时还记的上次的数和运算符
int mfun; //记住上次的运算符
void C() //按C
{
x=0.0; //恢复默认值,下同
first=0.0;second=0.0;
firstz=0;firstx=0.0;
secondz=0;secondx=0.0;
firx=false;secx=false;
firxw=0;secxw=0;
firzorf=1;seczorf=1;
ForS=1;
mfir=0.0;msec=0.0;
mfun=0;
sfmf=false;sfms=false;sfmfun=false;
EnterSec=false;
} void D() //按D键
{
if(ForS==1) //如果此时在输入第一个数
{
if(firx==false) //如果此时在输入整数部分
{ if(firstz<10) //如果整数部分小于10
{
firstz=0; //改为0
firzorf=1; //置符号为正
}
else
{
int y1=(int)firstz;//y1为一与整数部分相等的数
y1/=10; //去掉个位数
firstz=y1;
}
}
else //如果在输入小数部分
{
if(firxw==1) //此时小数部分只有一位
{
firstx=0.0;firxw=0;firx=false;//小数部分清为0
}
else
{
int y2=(int)(firstx*pow(10,firxw)); //取一整数与小数点所有的数表示的整数相等,如123等于0.123的小数部分表示的数
y2/=10;firxw--; //去掉最后一位
firstx=y2*pow(10,(-1)*firxw);
}
}
first=firzorf*(firstz+firstx); //计算出第一个数
x=first;
//显示;
}
else if(ForS==2) //如果在输入第二个数,处理方法同第一个数
{
if(secx==false)
{
if(secondz<10)
{
secondz=0;
seczorf=1;
}
else
{
int y3=(int)secondz;
y3/=10;
secondz=y3;
}
}
else
{
if(secxw==1)
{
secondx=0.0;secxw=0;secx=false;
}
else
{
int y4=(int)(secondx*pow(10,secxw));
y4/=10;secxw--;
secondx=y4*pow(10,(-1)*secxw);
}
}
second=seczorf*(secondz+secondx);
x=second;
//显示;
} } void AddNum(int i) //输入数字是时的处理函数
{
if(ForS==1)
{
if(firx==false) //整数数部分
{
firstz*=10;firstz+=i;
}
else //小数部分
{
firxw++;firstx+=pow(10,(-1)*firxw)*i;
}
first=firzorf*(firstz+firstx);
