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();	
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM