c语言vc6计算器设计,vc6.0实现计算器的编写,在线等,谢谢

我想问一下怎么实现科学计算。就比如说1+2*3 先计算乘除法

以下是我的部分程序,谢谢大家

加减乘除里的代码是一样的。

void CMyDlg::Onadd()

{

// TODO: Add your control notification handler code here

char cs[30];

double add;

m_Edit.GetWindowText(cs,30);

add=atof((LPCTSTR)cs);  //将字符型换成浮点型

switch(control)            //每次计算之前前进行之前的运算

{

case 0:   result=add;break;             //第一个数应存储

case 1:   result=result+add;break;

case 2:   result=result-add;break;

case 3:   result=result*add;break;

case 4:

{

if(add==0)

{

MessageBox("除数不能为0!请重新输入");

char ed[50];

_gcvt(result,50,ed);

m_Edit.SetWindowText(ed);

Num=' ';

control=0;                  //control赋初值

return;

}

else

{

result=result/add;

break;

}

}

}

control=1;

char ed[50];

_gcvt(result,50,ed);

m_Edit.SetWindowText(ed);  m_Edit.SetWindowText("+");

Num=' ';

UpdateData(FALSE);

}

这里是等于号里边的代码

void CMyDlg::Ondeng()

{

// TODO: Add your control notification handler code here

char cs[30],seq[50];

double equal;

switch(control)

{

case 1:

{

m_Edit.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

result=result+equal;

_gcvt(result,6,seq);

m_Edit.SetWindowText(seq);

Num=' ';

result=0;

control=0;

break;

}

case 2:

{

m_Edit.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

result=result-equal;

_gcvt(result,6,seq);

m_Edit.SetWindowText(seq);

Num=' ';

result=0;

control=0;

break;

}

case 3:

{

m_Edit.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

result=result*equal;

_gcvt(result,6,seq);

m_Edit.SetWindowText(seq);

Num=' ';

result=0;

control=0;

break;

}

case 4:

{

m_Edit.GetWindowText(cs,30);

equal=atof((LPCTSTR)cs);

if(equal==0)

{

MessageBox("除数不能为0!请重新输入");

char ed[50];

_gcvt(result,6,ed);

m_Edit.SetWindowText(ed);

Num=' ';

control=0;                  //control回到初值

return;

}

else

{

result=result/equal;

_gcvt(result,6,seq);

m_Edit.SetWindowText(seq);

Num=' ';

result=0;

control=0;

break;

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值