请教如何编写一个计算器
请教如何编写一个计算器具体要求
1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回 菜单。
例如:输入:2
+
5
输出:7
2)实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下:
例如:输入:2+5
输出:7
需要详细解释
谢谢
各位帮个忙
// Calculator.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; double gResult = 0.0; void CharCaculator() { double a; cin>>a; char b; cin>>b; double c; cin>>c; if ('+' == b) gResult = a+c; else if ('-' == b) gResult = a-c; else if ('*' == b) gResult = a*c; else if ('/' == b && b!=0.0) gResult = a/b; else cout<<"input error!"<<endl; } void StringCaculator() { cin.unsetf(ios::skipws); char a[100]; int count(1); int index(0); char op; double num1(0.0),num2(0.0); cin.getline(a,100); for (int i = 0;i<100;i++) { if ('+' == a[i] || '-' == a[i] || '*' == a[i]|| '/' == a[i]) { for (int m = 1;m < (i-index+1);m++) num1+=(a[index+m-1]-'0')*pow(0.1,m); op = a[i]; index = i+1; } if ('.' == a[i]) { if (1 == count) { for (int m = 0;m < (i-index);m++) num1+=(a[i-m-1]-'0')*pow(10.0,m); count++; } else if (2 == count) { for (int m = 0;m < (i-index);m++) num2+=(a[i-m-1]-'0')*pow(10.0,m); count++; } index = i+1; } if ('\0' == a[i]) { for (int m = 1;m < (i-index+1);m++) num2+=(a[index+m-1]-'0')*pow(0.1,m); break; } } if ('+' == op) gResult = num1+num2; else if ('-' == op) gResult = num1-num2; else if ('*' == op) gResult = num1*num2; else if ('/' == op && op!=0.0) gResult = num1/num2; } int _tmain(int argc, _TCHAR* argv[]) { StringCaculator(); cout<<"Result:"<<gResult<<endl; CharCaculator(); cout<<"Result:"<<gResult<<endl; int a; cin>>a; return 0; }