Here's an example for program 2.
It'n not clean code. I had nothing better to do this afternoon, so I've made this in half an hour.
Code:
#include <iostream>
#include <math.h>
using namespace std;
float calculate(float num1, float num2, char operand);
void stripInput(char* input, float& num1, float& num2, char& operand);
char* subString(const char* str, char* substr, int start, int end=-1);
int main()
{
char input[256];
do {
cin.getline(input,256);
float num1, num2;
char operand;
if(strcmp(input,"q") != 0)
{
stripInput(input, num1, num2, operand);
cout << num1 << operand << num2 << " = " << calculate(num1,num2,operand) << endl;
}
}while(strcmp(input,"q") != 0);
}
float calculate(float num1, float num2, char operand)
{
switch(operand)
{
case '+':
return num1+num2;
break;
case '-':
return num1-num2;
break;
case '*':
return num1*num2;
break;
case '/':
return num1/num2;
break;
case '^':
return (float)pow((double)num1,(double)num2);
break;
default:
cout << "Error - Invalid Operator" << endl;
break;
}
return 0;
}
void stripInput(char* input, float& num1, float& num2, char& operand)
{
char* substr;
int i;
for( i=0;
i < strlen(input) &&
(input[i] != '+' &&
input[i] != '-' &&
input[i] != '*' &&
input[i] != '/' &&
input[i] != '^');
++i);
char tmp[256];
num1 = atof(subString(input, tmp, 0, i));
num2 = atof(subString(input, tmp, i+1));
operand = input[i];
}
char* subString(const char* str, char* substr, int start, int end)
{
if(end == -1)
end=strlen(str);
int count=0;
for(int i = start; i < end; ++i)
substr[count++] = str[i];
substr[count]='\0';
return substr;
}
Bookmarks
Algorithms and Data Structures
Java tutorials
Algorithms Forum