请教如何编写一个计算器
请教如何编写一个计算器具体要求
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;
}