多功能计算器的C语言实现.doc_第1页
多功能计算器的C语言实现.doc_第2页
多功能计算器的C语言实现.doc_第3页
多功能计算器的C语言实现.doc_第4页
免费预览已结束,剩余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);printf(#按键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, double 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。/只要不按+、-、*、/键,表示不作为,否则,表示作为。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=strchr(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 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(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,myoffset);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;r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论