// Basic command-line calculator
// This program performs five basic operations on two integers
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;

int main(int argc, char **argv)
{

  if(argc ==1 ) {
     cout << "Usage: calc <value1> <operator> <value2> ..." << endl;
     return 0;
  }

  if(argc < 4) {
    cout << "Missing parameter. " << endl;
    return 1;
  }

  if(argc > 4) {
    cout << "Too many parameters." << endl;
    return 2;
  }

  double  x = atof(argv[1]);  // 1st par. number1
  char   op = argv[2][0];     // 2nd par. operator
  double  y = atof(argv[3]);  // 3rd par. number2
  double  z;

  switch(op) {
    case '+':  z = x + y; break;
    case '-':  z = x - y; break;
    case 'x':  z = x * y; break;
    case '/':  z = x / y; break;
    case '^':  z = pow(x, y); break;
    default :
               z = 0.0;
               cout << "Invalid operator: " << op << endl;
               return 3;
  }
  cout << x << op << y << " = " << z << endl;

  return 0;
}
