C++实现简易计算器
2022/2/5 11:42:46
本文主要是介绍C++实现简易计算器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C++实现简易计算器
实现功能:加减乘除乘方开方六种基本运算
开方采用二分法完成,精度控制在0.0000001内
加减乘除其实没必要写函数,写函数是强迫症为了保证画风统一
#include<iostream> #include<cstring> #include<float.h> using namespace std; double myAdd(double x,double y){ //加法 return x + y; } double myReduce(double x,double y){ //减法 return x - y; } double myMultipy(double x,double y){ //乘法 return x * y; } double myDivide(double x,double y){ //除法 return x / y; } double myPower(double x,double n){ //乘方,只支持正整数幂 double result = 1; if(n > 0 && n == (int)n){ for(int i=0;i<n;i++){ result = result*x; } return result; }else{ cout<<"抱歉,简易计算器仅支持正整数的幂运算"<<endl; } } double myAbsolute(double x){ if(x >= 0){ return x; }else{ return -x; } } double myRoot(double x,double n){ //开方运算 if(n > 0 && n == (int)n){ double mid,low,high; double pMid; //中值的n次方 high = x; low = 0; for(;;){ mid = (high + low) / 2; pMid = myPower(mid,n); //power mid if( (x == pMid) || (myAbsolute(x - pMid) < 0.0000001)){ break; }else if(x > pMid){ low = mid; mid = (high + mid) / 2; }else{ // x < pMid high = mid; mid = (mid + low) / 2; } } return mid; }else{ cout<<"抱歉,简易计算器仅支持正整数根的开方运算"<<endl; } } void calculate(){ double left,right; string op; cout<<"请依次输入您的左运算数、运算符和右运算数"<<endl; cin>>left>>op>>right; if(op == "+"){ cout<<myAdd(left,right)<<endl; }else if(op == "-"){ cout<<myReduce(left,right)<<endl; }else if(op == "×"){ cout<<myMultipy(left,right)<<endl; }else if(op == "÷"){ cout<<myDivide(left,right)<<endl; }else if(op == "^"){ cout<<myPower(left,right)<<endl; }else if(op == "√"){ cout<<myRoot(right,left)<<endl; }else{ cout<<"抱歉,简易计算器暂不支持这种运算"<<endl; } } int main(){ while(1){ calculate(); } }
这篇关于C++实现简易计算器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享