VC++6.0vc 计算器器任务

VC++6.0MFC计算器
VC++6.0MFC计算器
求一个模拟简单计算器程序
该计算器使用使用数字按钮控件输入数据,并有加、减、乘、除、平方根和倒数,删除,清0,退格,浮点计算功能,要进行混合运算。请各位高手和大虾帮帮忙啊!!先谢谢啦!!请把相关文件发我邮箱里
我做好了!
发给我一下
谢谢,祝你生日快乐
其他回答 (1)
我以前做的计算器倒数和退格没有做!
没推格不行阿,这是我们老师所要求的
那我有空的话,去加一个咯!
谢谢,有空去加个计算器倒数和退格!可我真的很希望你明天就能给我阿!
看情况吧!我明天要去参加学校的心里话剧!
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号等 级:新手上路
帖 子:12
等 级:论坛游民
帖 子:222
专家分:95
对一楼的程序又做了改进: ⑴用C语言书写,与TC兼容⑵改进了程序使代码更短[CODE]/*--------------------------------------
函数型计算器
(C语言精简版)
---------------------------------------*/#include &stdio.h&#include &stdlib.h&#include &string.h&#include &ctype.h&#include &math.h&
double(*func[])()={sin,cos,tan,sqrt,asin,acos,atan,log10,log,exp};char*fname[]={"sin","cos","tan","sqrt","arcsin","arccos","arctan","lg","ln","exp",NULL};
double calc(char *epr,char **pe){
char op[10]={+1};
int iop=1;//运算符栈
char fn[10];
int ifn=0;//函数名栈
double ST[10]={0};
int ist=1;//浮点数栈
char*pp=epr,*qq,ch,sta=0;
pp+=strspn(pp," \t");
if(*pp=='+')op[0]=+1,pp++;else
if(*pp=='-')op[0]=-1,pp++;
int j,length=1;
pp+=strspn(pp," \t");
ch=tolower(*pp);
if((sta=='y'||sta=='p')&& (ch=='('))exit(1);
if((sta=='y'||sta==')')&& (ch=='p'))exit(2);
if(sta=='y'&&(isalpha(ch)&&ch!='p')){ch='*';length=0;}
if(sta=='x'&&(isalpha(ch)||ch=='(')){ch='*';length=0;}
if(sta==')'&&(isalpha(ch)||ch=='(')){ch='*';length=0;}
switch(ch)
case'\n': case'=': case ')':
op[iop++]=0;//视它们为最低优先级的运算符
ST[ist++]=calc(pp+1,pe);
length=*pe-
op[iop++]=+1; ;
op[iop++]=-1; ;
op[iop++]=+2; ;
op[iop++]=-2; ;
op[iop++]=+3; ;
if(strnicmp(pp,"Pi",2))exit(3);
if(sta=='p')exit(4);
ST[ist++]=3.;
case's': case'c':
case'l': case'e':
for(j=0;(qq=fname[j])!=NULL;j++)
if(!strnicmp(pp,qq,strlen(qq)))
if(qq==NULL)exit(5);
fn[ifn++]=j+0x7;
length=strlen(qq);
xx=strtod(pp,&qq);
if(pp==qq)exit(6);
if(sta=='x'||sta=='y')exit(7);
if(sta=='p'||sta==')')exit(7);
ST[ist++]=
length=qq-
if(ist&iop) //刚刚输入的是数
xx=ST[ist-1];
while(ifn)//使得函数嵌套调用时可不加括号
xx=func[fn[--ifn]-0x7](xx);
ST[ist-1]=
else //刚刚输入的是四则(含幂)运算符或')'或NUL
while(op[0])
char old=0,now=op[iop-1];
if(iop & 1)old=op[iop-2];
if(abs(now)&abs(old))//优先级的考虑
if(+3==now && now==old)exit(8);
if(--ist==0)exit(9);
--op[iop-1]=
switch(old)
ST[ist-1] += ST[ist];
ST[ist-1] -= ST[ist];
ST[ist-1] *= ST[ist];
ST[ist-1] /= ST[ist];
ST[ist-1] = pow(ST[ist-1],ST[ist]);
while(ch!=')'&& ch!='='&& ch!='\n'&& ch!='\0');
return ST[0];}
int main( ){
char src[128],*
printf("待求表达式? ");
fgets(src,128,stdin);
printf("%.16lf\n",calc(src,&end));
return 0;}[/CODE]
[此贴子已经被作者于 18:43:08编辑过]
等 级:论坛游民
帖 子:222
专家分:95
您解压后得到的EXE文件是将三楼的代码在VC6.0
Release模式下编译、连接的产物,如果用TC对它
编译、连接,估计生成的EXE文件更小。
[此贴子已经被作者于 20:16:59编辑过]
附件: 只有本站会员才能下载或查看附件,请
等 级:论坛游民
帖 子:222
专家分:95
/*--------------------------------------
四则(含括号)表达式计算器
例如:75/3+25*3= 100.000000
3*(10-(5+(-2))*2)=12.000000
---------------------------------------*/#include &stdio.h&#include&stdlib.h&#include&string.h&int main( ){
double calc(char*,char**);
while(1){char src[128],*
printf("Expression: ");gets(src);
printf("%.16lf\n",calc(src,&end));}
return 0;}double calc(char *epr,char **pe){
op[10]={1};
int iop=1;
ST[10]={0};
int ist=1;
char*pp=epr,*qq,
pp+=strspn(pp," \t");
if(*pp=='+')op[0]=+1,pp++;else
if(*pp=='-')op[0]=-1,pp++;
int length=1;
pp+=strspn(pp," \t");
switch(ch=*pp)
case'\n': case'=': case')':
op[iop++] =0;
ST[ist++]=calc(pp+1,pe);
length=*pe-
op[iop++]=+1;
op[iop++]=-1;
op[iop++]=+2;
op[iop++]=-2;
ST[ist++]=strtod(pp,&qq);
if(qq==pp)exit(1);
length=qq-
if(ist&=iop)
while(op[0])
char old=0,now=op[iop-1];
if(iop & 1)old=op[iop-2];
if(abs(now)&abs(old))
if(--ist==0)exit(2);
--op[iop-1]=
switch(old)
ST[ist-1] += ST[ist];
ST[ist-1] -= ST[ist];
ST[ist-1] *= ST[ist];
ST[ist-1] /= ST[ist];
while(ch!=')'&& ch!='='&& ch!='\n'&& ch!='\0');
*pe=return ST[0];}下面这个exe文件是TC下生成的,仅13K。
[此贴子已经被作者于 18:44:49编辑过]
附件: 只有本站会员才能下载或查看附件,请
版权所有,并保留所有权利。
Powered by , Processed in 0.024644 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedVC++6.0入门【第三章、MFC编程概述】_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
VC++6.0入门【第三章、MFC编程概述】
V​C​+​+.入​门​【​第​三​章​、​M​F​C​编​程​概​述​】
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢vc++6.0平台下利用MFC编写计算器源代码能实现 加减乘除 括号运算就行 &br/&
vc++6.0平台下利用MFC编写计算器源代码能实现 加减乘除 括号运算就行
30分就想要源代码。你太抠了。
团队这个弄错了
我还有个不是团队的是80分
总共也没有多少分呢.....
我以前做了一个计算器,你拿去吧,还做了键盘响应的。速度采纳
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号

我要回帖

更多关于 vc 6.0 win8.1 的文章

 

随机推荐