1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
// SwitchCalculator - use the switch state ment to implement a calculator
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
void op1(int nOperand1, int nOperand2, char cOperator,int nOperand3,char cOperator2)
{
int result;
switch (cOperator)
{
case '+':
result = nOperand1 + nOperand2;
break;
case '-':
result = nOperand1 - nOperand2;
break;
case '*':
case 'x':
case 'X':
result = nOperand1 * nOperand2;
break;
case '/':
result = nOperand1 / nOperand2;
break;
case '%':
result = nOperand1 % nOperand2;
break;
default:
cout << " is not understood";
}
switch (cOperator2)
{
case '+':
result = result + nOperand3;
break;
case '-':
result = result - nOperand3;
break;
case '*':
case 'x':
case 'X':
result = result * nOperand3;
break;
case '/':
result = result / nOperand3;
break;
case '%':
result = result % nOperand3;
break;
default:
cout << " is not understood";
}
cout << result << endl;
}
void op2(int nOperand2, int nOperand3, char cOperator2,int nOperand1,char cOperator)
{
int result;
switch (cOperator2)
{
case '+':
result = nOperand2 + nOperand3;
break;
case '-':
result = nOperand2 - nOperand3;
break;
case '*':
case 'x':
case 'X':
result = nOperand2 * nOperand3;
break;
case '/':
result = nOperand2 / nOperand3;
break;
case '%':
result = nOperand2 % nOperand3;
break;
default:
cout << " is not understood";
}
switch (cOperator)
{
case '+':
result = result + nOperand1;
break;
case '-':
result = result - nOperand1;
break;
case '*':
case 'x':
case 'X':
result = result * nOperand1;
break;
case '/':
result = result / nOperand1;
break;
case '%':
result = result % nOperand1;
break;
default:
cout << " is not understood";
}
cout << result << endl;
}
int main(int nNumberofArgs, char* pszArgs[])
{
int nOperand1;
int nOperand2;
int nOperand3;
char cOperator;
char cOperator2;
cout << "Enter 'value1 op value2 op2 value3'\n"
<< "where op is +, -, *, / or %:" << endl;
cin >> nOperand1 >> cOperator >> nOperand2 >> cOperator2 >> nOperand3;
cout << nOperand1 << " "
<< cOperator << " "
<< nOperand2 << " "
<< cOperator2 << " "
<< nOperand3 << " = ";
if(cOperator == '*' || cOperator == '/')
{
op1(nOperand1,nOperand2,cOperator,nOperand3,cOperator2);
}
else
{
op2(nOperand2,nOperand3,cOperator2,nOperand1,cOperator);
}
cout << endl;
system("PAUSE");
return 0;
}
|