多功能计算器的C语言实现

上传人:油条 文档编号:113640153 上传时间:2019-11-09 格式:DOC 页数:5 大小:42.50KB
返回 下载 相关 举报
多功能计算器的C语言实现_第1页
第1页 / 共5页
多功能计算器的C语言实现_第2页
第2页 / 共5页
多功能计算器的C语言实现_第3页
第3页 / 共5页
多功能计算器的C语言实现_第4页
第4页 / 共5页
多功能计算器的C语言实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《多功能计算器的C语言实现》由会员分享,可在线阅读,更多相关《多功能计算器的C语言实现(5页珍藏版)》请在金锄头文库上搜索。

1、多功能计算器的C语言实现题目:设计一个多功能计算软件实现功能:具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按C清屏,按R返回 菜单。例如:输入:2+5输出:7C语言实现:#include#include#include#define MaxLength 50void Show_screen()printf(#n);printf(#依次输入操作数1、运算符和操作数2,例如:2+5。 #n);printf(#按回车键显示运算结果,其可作为下一个输入的操作数。#n);prin

2、tf(#按键c清除屏幕,按键r返回菜单。 #n);printf(#n);double myadd(double x, double y)double sum;sum=x+y;if(sum-(int)sum=0)printf(%.0f,sum);elseprintf(%.6f,sum);return sum;double mysub(double x, double y)double sub;sub=x-y;if(sub-(int)sub=0)printf(%.0f,sub);elseprintf(%.6f,sub);return sub;double mymul(double x, doubl

3、e y)double mul;mul=x*y;if(mul-(int)mul=0)printf(%.0f,mul);elseprintf(%.6f,mul);return mul;double mydiv(double x, double y)double div;div=x/y;if(div-(int)div=0)printf(%.0f,div);elseprintf(%.6f,div);return div;int main()int myoffset;int flag;/判断是否将上次计算结果作为下次运算操作数1的标志,是的话值为1。/只要不按+、-、*、/键,表示不作为,否则,表示作为

4、。char *check_add,*check_sub,*check_mul,*check_div;char myinputMaxLength;char tempxMaxLength,tempyMaxLength;static double res;/保存计算结果Show_screen();/暂不考虑字符串合法性及溢出while(scanf(%s,myinput)/printf(请输入运算表达式:n);check_add=strchr(myinput, +);check_sub=strchr(myinput,-);check_mul=strchr(myinput,*);check_div=st

5、rchr(myinput,/);/判断flagif(myinput0=+|myinput0=-|myinput0=*|myinput0=/)flag=1;elseflag=0;/调用清屏操作,Linux下有所不同if(myinput0=c|myinput0=C)system(clear);/Windows下使用下面一行代码/system(CLS);/返回菜单else if(myinput0=r|myinput0=R)Show_screen();/匹配加法else if(check_add)if(flag=0)myoffset=(unsigned int)check_add-(unsigned

6、int)myinput;strncpy(tempx,myinput,myoffset);strcpy(tempy,check_add+1);tempxmyoffset=0;tempystrlen(myinput)-myoffset-1=0;res=myadd(atof(tempx),atof(tempy);elsestrcpy(tempy,check_add+1);res=myadd(res,atof(tempy);else if(check_mul)if(flag=0)myoffset=(unsigned int)check_mul-(unsigned int)myinput;strncpy

7、(tempx,myinput,myoffset);strcpy(tempy,check_mul+1);tempxmyoffset=0;tempystrlen(myinput)-myoffset-1=0;res=mymul(atof(tempx),atof(tempy);elsestrcpy(tempy,check_mul+1);res=mymul(res, atof(tempy);else if(check_div)if(flag=0)myoffset=(unsigned int)check_div-(unsigned int)myinput;strncpy(tempx,myinput,myo

8、ffset);strcpy(tempy,check_div+1);tempxmyoffset=0;tempystrlen(myinput)-myoffset-1=0;res=mydiv(atof(tempx),atof(tempy);elsestrcpy(tempy,check_div+1);res=mydiv(res, atof(tempy);/考虑到负数的存在,减法最后判断else if(check_sub)if(flag=0)myoffset=(unsigned int)check_sub-(unsigned int)myinput;strncpy(tempx,myinput,myoffset);strcpy(tempy,check_sub+1);tempxmyoffset=0;tempystrlen(myinput)-myoffset-1=0;res=mysub(atof(tempx),atof(tempy);elsestrcpy(tempy,check_sub+1);res=mysub(res, atof(tempy);elseprintf(输入有误!程序将关闭!n);break;return 0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号